bld-exec/README.md

3.1 KiB
Executable file

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")
            .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();
}