From e12f9ad19d65dda489c092bb5d6705833d2224a5 Mon Sep 17 00:00:00 2001 From: Kelven Yang Date: Fri, 10 Sep 2010 16:47:00 -0700 Subject: [PATCH] Allow Script to execute under a specified working directory --- utils/src/com/cloud/utils/script/Script.java | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/utils/src/com/cloud/utils/script/Script.java b/utils/src/com/cloud/utils/script/Script.java index 88f4c356543..264601a0c3e 100755 --- a/utils/src/com/cloud/utils/script/Script.java +++ b/utils/src/com/cloud/utils/script/Script.java @@ -52,6 +52,7 @@ public class Script implements Callable { private static final ScheduledExecutorService s_executors = Executors.newScheduledThreadPool(10, new NamedThreadFactory("Script")); + String _workDir; ArrayList _command; long _timeout; Process _process; @@ -105,6 +106,10 @@ public class Script implements Callable { _command.add(value); return this; } + + public void setWorkDir(String workDir) { + _workDir = workDir; + } protected String buildCommandLine(String[] command) { StringBuilder builder = new StringBuilder(); @@ -159,6 +164,9 @@ public class Script implements Callable { try { ProcessBuilder pb = new ProcessBuilder(command); pb.redirectErrorStream(true); + if(_workDir != null) + pb.directory(new File(_workDir)); + _process = pb.start(); if (_process == null) { _logger.warn("Unable to execute: " + buildCommandLine(command));