Cleaned up API to match bld operations and options APIs

This commit is contained in:
Erik C. Thauvin 2024-08-27 13:24:44 -07:00
parent f563cffd3f
commit 9548ddea23
Signed by: erik
GPG key ID: 776702A6A2DA330E
3 changed files with 26 additions and 6 deletions

View file

@ -33,7 +33,7 @@ public class ExecOperationBuild extends Project {
public ExecOperationBuild() { public ExecOperationBuild() {
pkg = "rife.bld.extension"; pkg = "rife.bld.extension";
name = "ExecOperation"; name = "ExecOperation";
version = version(1, 0, 2); version = version(1, 0, 3, "SNAPSHOT");
javaRelease = 17; javaRelease = 17;
@ -44,8 +44,8 @@ public class ExecOperationBuild extends Project {
scope(compile) scope(compile)
.include(dependency("com.uwyn.rife2", "bld", version(2, 0, 1))); .include(dependency("com.uwyn.rife2", "bld", version(2, 0, 1)));
scope(test) scope(test)
.include(dependency("org.junit.jupiter", "junit-jupiter", version(5, 10, 3))) .include(dependency("org.junit.jupiter", "junit-jupiter", version(5, 11, 0)))
.include(dependency("org.junit.platform", "junit-platform-console-standalone", version(1, 10, 3))) .include(dependency("org.junit.platform", "junit-platform-console-standalone", version(1, 11, 0)))
.include(dependency("org.assertj", "assertj-core", version(3, 26, 3))); .include(dependency("org.assertj", "assertj-core", version(3, 26, 3)));
javadocOperation() javadocOperation()

View file

@ -21,6 +21,7 @@ import rife.bld.operations.AbstractOperation;
import rife.bld.operations.exceptions.ExitStatusException; import rife.bld.operations.exceptions.ExitStatusException;
import java.io.File; import java.io.File;
import java.nio.file.Path;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collection; import java.util.Collection;
import java.util.List; import java.util.List;
@ -57,8 +58,7 @@ public class ExecOperation extends AbstractOperation<ExecOperation> {
* @see #command(Collection) * @see #command(Collection)
*/ */
public ExecOperation command(String... arg) { public ExecOperation command(String... arg) {
args_.addAll(List.of(arg)); return command(List.of(arg));
return this;
} }
/** /**
@ -199,6 +199,17 @@ public class ExecOperation extends AbstractOperation<ExecOperation> {
return this; return this;
} }
/**
* Configures the working directory.
*
* @param dir the directory
* @return this operation instance
*/
public ExecOperation workDir(Path dir) {
return workDir(dir.toFile());
}
/** /**
* Configures the working directory. * Configures the working directory.
* *

View file

@ -100,7 +100,16 @@ class ExecOperationTest {
.fromProject(new BaseProject()) .fromProject(new BaseProject())
.command("echo", FOO) .command("echo", FOO)
.workDir(workDir); .workDir(workDir);
assertThat(op.workDir()).isEqualTo(workDir); assertThat(op.workDir()).as("as file").isEqualTo(workDir);
assertThatCode(op::execute).doesNotThrowAnyException();
var build = "build";
op = op.workDir(build);
assertThat(op.workDir()).as("as string").isEqualTo(new File(build));
assertThatCode(op::execute).doesNotThrowAnyException();
op = op.workDir(workDir.toPath());
assertThat(op.workDir()).as("as path").isEqualTo(workDir);
assertThatCode(op::execute).doesNotThrowAnyException(); assertThatCode(op::execute).doesNotThrowAnyException();
} }