public Command setTimeLimit(double value, TimeUnit timeUnit) { return setTimeLimit(new Duration(value, timeUnit)); }
public static void createTar(File sourceDirectory, File tarFile) throws CommandFailedException { Preconditions.checkNotNull(sourceDirectory, "sourceDirectory is null"); Preconditions.checkArgument(sourceDirectory.isDirectory(), "sourceDirectory is not a directory: " + sourceDirectory.getAbsolutePath()); Preconditions.checkNotNull(tarFile, "tarFile is null"); tarFile.getParentFile().mkdirs(); new Command("tar", "zcf", tarFile.getAbsolutePath(), sourceDirectory.getName()) .setDirectory(sourceDirectory.getParent()) .setTimeLimit(5, TimeUnit.MINUTES) .execute(executor); }
public static void createSymbolicLink(File source, File target) throws CommandFailedException { Preconditions.checkNotNull(source, "source is null"); Preconditions.checkArgument(source.exists(), "source does not exist: " + source.getAbsolutePath()); Preconditions.checkNotNull(target, "source is null"); Preconditions.checkArgument(!target.exists(), "target already exists: " + target.getAbsolutePath()); target.getParentFile().mkdirs(); new Command("ln", "-s", source.getAbsolutePath(), target.getAbsolutePath()) .setDirectory(target.getParent()) .setTimeLimit(5, TimeUnit.MINUTES) .execute(executor); }
public static void extractTar(File tarFile, File targetDirectory, Duration timeLimit) throws CommandFailedException { Preconditions.checkNotNull(tarFile, "tarFile is null"); Preconditions.checkNotNull(targetDirectory, "targetDirectory is null"); Preconditions.checkArgument(targetDirectory.isDirectory(), "targetDirectory is not a directory: " + targetDirectory.getAbsolutePath()); new Command("tar", "zxf", tarFile.getAbsolutePath()) .setDirectory(targetDirectory) .setTimeLimit(timeLimit) .execute(executor); }
private Command createCommand(String commandName, Deployment deployment, Duration timeLimit) { File launcherScript = new File(new File(deployment.getDeploymentDir(), "bin"), "launcher"); Command command = new Command(launcherScript.getAbsolutePath(), commandName) .setDirectory(deployment.getDataDir()) .setTimeLimit(timeLimit) .addEnvironment("HOME", deployment.getDataDir().getAbsolutePath()); return command; }