Command Line Execution Extension for bld https://github.com/rife2/bld-exec
Find a file
2024-02-25 18:50:02 -08:00
.github/workflows Fixed pages workflow 2023-11-27 10:39:31 -08:00
.idea Bumped to bld 1.8.0 2024-01-30 23:17:58 -08:00
.vscode Improved Visual Studio Code support 2024-02-25 18:49:37 -08:00
config Added opton to add a List via the command method 2023-08-27 16:46:47 -07:00
lib/bld Version 0.9.1 2024-01-30 23:22:08 -08:00
src Bumped JUnit versions 2024-02-25 18:50:02 -08:00
.gitignore Added opton to add a List via the command method 2023-08-27 16:46:47 -07:00
bld Initial commit 2023-08-27 09:37:13 -07:00
bld.bat Initial commit 2023-08-27 09:37:13 -07:00
LICENSE.txt Initial commit 2023-08-27 09:37:13 -07:00
README.md Bumped to bld 1.8.0 2024-01-30 23:17:58 -08:00

bld Command Line Execution Extension

License Java bld Release Snapshot GitHub CI

To install, please refer to the extensions documentation.

To execute a command at the command line, add the following to your build file:

@BuildCommand
public void startServer() throws Exception {
    new ExecOperation()
            .fromProject(this)
            .command("./start.sh", "--port", "8080")
            .execute();
}

Failure Modes

Use the fail function to specify whether data returned to the standard streams and/or an abnormal exit value constitute a failure.

@BuildCommand
public void startServer() throws Exception {
    final List<String> cmds;
    if (System.getProperty("os.name").toLowerCase().contains("windows")) {
        cmds = List.of("cmd", "/c", "stop.bat");
    } else {
        cmds = List.of("./stop.sh");
    }
    new ExecOperation()
            .fromProject(this)
            .command(cmds)
            .fail(ExecFail.STDERR)
            .execute();
}

The following predefined values are available:

Name Failure When
ExecFail.EXIT Exit value > 0
ExecFail.NORMAL Exit value > 0 or any data to the standard error stream (stderr)
ExecFail.OUTPUT Any data to the standard output stream (stdout) or stderr.
ExecFail.STDERR Any data to stderr.
ExecFail.STDOUT Any data to stdout.
ExecFail.ALL Any of the conditions above.
ExecFail.NONE Never fails.

ExecFail.NORMAL is the default value.

Working Directory

You can also specify the working directory:

@BuildCommand
public void startServer() throws Exception {
    new ExecOperation()
            .fromProject(this)
            .command("touch", "foo.txt")
            .workDir(System.getProperty("java.io.tmpdir"))
            .execute();
}

Please check the ExecOperation documentation for all available configuration options.