Added command timeout
This commit is contained in:
parent
b1c8c49fbc
commit
8b80ca1bc0
4 changed files with 19 additions and 5 deletions
|
@ -1,7 +1,7 @@
|
||||||
bld.downloadExtensionJavadoc=false
|
bld.downloadExtensionJavadoc=false
|
||||||
bld.downloadExtensionSources=true
|
bld.downloadExtensionSources=true
|
||||||
bld.extension-jacoco=com.uwyn.rife2:bld-jacoco-report:0.9.3
|
|
||||||
bld.extension-pmd=com.uwyn.rife2:bld-pmd:0.9.8
|
bld.extension-pmd=com.uwyn.rife2:bld-pmd:0.9.8
|
||||||
|
bld.extension-jacoco=com.uwyn.rife2:bld-jacoco-report:0.9.5
|
||||||
bld.repositories=MAVEN_CENTRAL,MAVEN_LOCAL,RIFE2_SNAPSHOTS,RIFE2_RELEASES
|
bld.repositories=MAVEN_CENTRAL,MAVEN_LOCAL,RIFE2_SNAPSHOTS,RIFE2_RELEASES
|
||||||
bld.downloadLocation=
|
bld.downloadLocation=
|
||||||
bld.sourceDirectories=
|
bld.sourceDirectories=
|
||||||
|
|
|
@ -35,13 +35,14 @@ public class ExecOperationBuild extends Project {
|
||||||
public ExecOperationBuild() {
|
public ExecOperationBuild() {
|
||||||
pkg = "rife.bld.extension";
|
pkg = "rife.bld.extension";
|
||||||
name = "ExecOperation";
|
name = "ExecOperation";
|
||||||
version = version(0, 9, 2);
|
version = version(0, 9, 3);
|
||||||
|
|
||||||
javaRelease = 17;
|
javaRelease = 17;
|
||||||
|
|
||||||
downloadSources = true;
|
downloadSources = true;
|
||||||
autoDownloadPurge = true;
|
autoDownloadPurge = true;
|
||||||
repositories = List.of(MAVEN_CENTRAL, RIFE2_RELEASES);
|
|
||||||
|
|
||||||
|
repositories = List.of(MAVEN_CENTRAL, RIFE2_RELEASES);
|
||||||
scope(compile)
|
scope(compile)
|
||||||
.include(dependency("com.uwyn.rife2", "bld", version(1, 9, 0)));
|
.include(dependency("com.uwyn.rife2", "bld", version(1, 9, 0)));
|
||||||
scope(test)
|
scope(test)
|
||||||
|
@ -73,7 +74,7 @@ public class ExecOperationBuild extends Project {
|
||||||
.license(
|
.license(
|
||||||
new PublishLicense()
|
new PublishLicense()
|
||||||
.name("The Apache License, Version 2.0")
|
.name("The Apache License, Version 2.0")
|
||||||
.url("http://www.apache.org/licenses/LICENSE-2.0.txt")
|
.url("https://www.apache.org/licenses/LICENSE-2.0.txt")
|
||||||
)
|
)
|
||||||
.scm(
|
.scm(
|
||||||
new PublishScm()
|
new PublishScm()
|
||||||
|
|
|
@ -38,6 +38,7 @@ public class ExecOperation extends AbstractOperation<ExecOperation> {
|
||||||
private final List<String> args_ = new ArrayList<>();
|
private final List<String> args_ = new ArrayList<>();
|
||||||
private final Set<ExecFail> fail_ = new HashSet<>();
|
private final Set<ExecFail> fail_ = new HashSet<>();
|
||||||
private BaseProject project_;
|
private BaseProject project_;
|
||||||
|
private int timeout = 30;
|
||||||
private String workDir_;
|
private String workDir_;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -98,7 +99,7 @@ public class ExecOperation extends AbstractOperation<ExecOperation> {
|
||||||
}
|
}
|
||||||
|
|
||||||
var proc = pb.start();
|
var proc = pb.start();
|
||||||
var err = proc.waitFor(30, TimeUnit.SECONDS);
|
var err = proc.waitFor(timeout, TimeUnit.SECONDS);
|
||||||
var stdout = readStream(proc.getInputStream());
|
var stdout = readStream(proc.getInputStream());
|
||||||
var stderr = readStream(proc.getErrorStream());
|
var stderr = readStream(proc.getErrorStream());
|
||||||
|
|
||||||
|
@ -180,6 +181,17 @@ public class ExecOperation extends AbstractOperation<ExecOperation> {
|
||||||
return lines;
|
return lines;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Configure the command timeout.
|
||||||
|
*
|
||||||
|
* @param timeout The timeout in seconds
|
||||||
|
* @return this operation instance
|
||||||
|
*/
|
||||||
|
public ExecOperation timeout(int timeout) {
|
||||||
|
this.timeout = timeout;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Configures the working directory.
|
* Configures the working directory.
|
||||||
*
|
*
|
||||||
|
|
|
@ -50,6 +50,7 @@ class ExecOperationTest {
|
||||||
tmpFile.deleteOnExit();
|
tmpFile.deleteOnExit();
|
||||||
new ExecOperation()
|
new ExecOperation()
|
||||||
.fromProject(new Project())
|
.fromProject(new Project())
|
||||||
|
.timeout(10)
|
||||||
.command("touch", tmpFile.getName())
|
.command("touch", tmpFile.getName())
|
||||||
.fail(ExecFail.NORMAL)
|
.fail(ExecFail.NORMAL)
|
||||||
.execute();
|
.execute();
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue