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

View file

@ -21,6 +21,7 @@ import rife.bld.operations.AbstractOperation;
import rife.bld.operations.exceptions.ExitStatusException;
import java.io.File;
import java.nio.file.Path;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
@ -57,8 +58,7 @@ public class ExecOperation extends AbstractOperation<ExecOperation> {
* @see #command(Collection)
*/
public ExecOperation command(String... arg) {
args_.addAll(List.of(arg));
return this;
return command(List.of(arg));
}
/**
@ -199,6 +199,17 @@ public class ExecOperation extends AbstractOperation<ExecOperation> {
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.
*

View file

@ -100,7 +100,16 @@ class ExecOperationTest {
.fromProject(new BaseProject())
.command("echo", FOO)
.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();
}