summaryrefslogtreecommitdiff
path: root/scripting/workben/installer/ExecCmd.java
diff options
context:
space:
mode:
Diffstat (limited to 'scripting/workben/installer/ExecCmd.java')
-rw-r--r--scripting/workben/installer/ExecCmd.java100
1 files changed, 100 insertions, 0 deletions
diff --git a/scripting/workben/installer/ExecCmd.java b/scripting/workben/installer/ExecCmd.java
new file mode 100644
index 000000000000..fa5f9a8b2dcd
--- /dev/null
+++ b/scripting/workben/installer/ExecCmd.java
@@ -0,0 +1,100 @@
+package installer;
+import java.util.*;
+import java.io.*;
+public class ExecCmd
+{
+
+ public boolean exec( String cmd, String[] env )
+ {
+ System.out.println("About to exectute " + cmd);
+ final Process p;
+ boolean result = false;
+ try
+ {
+ Runtime rt = Runtime.getRuntime();
+ p=rt.exec( cmd, env );
+ new Thread(new Runnable() {
+ public void run()
+ {
+ BufferedReader br_in = null;
+ try
+ {
+ br_in = new BufferedReader(new InputStreamReader(p.getInputStream()));
+ String buff = null;
+ while ((buff = br_in.readLine()) != null)
+ {
+ System.out.println("Process out :" + buff);
+ /*try
+ {
+ Thread.sleep(100);
+ }
+ catch(Exception e) {}*/
+ }
+ System.out.println("finished reading out");
+ }
+ catch (IOException ioe)
+ {
+ System.out.println("Exception caught printing javac result");
+ ioe.printStackTrace();
+ }
+ finally
+ {
+ if ( br_in != null )
+ {
+ try
+ {
+ br_in.close();
+ }
+ catch( Exception e ) {} // nothing can be done
+ }
+ }
+ } } ).start();
+
+ new Thread(new Runnable() {
+ public void run() {
+ BufferedReader br_err = null;
+ try {
+ br_err = new BufferedReader(new InputStreamReader(p.getErrorStream()));
+ String buff = null;
+ while ((buff = br_err.readLine()) != null) {
+ System.out.println("Process err :" + buff);
+ /*try {Thread.sleep(100); } catch(Exception e) {}*/
+ }
+ System.out.println("finished reading err");
+ } catch (IOException ioe) {
+ System.out.println("Exception caught printing javac result");
+ ioe.printStackTrace();
+ }
+ finally
+ {
+ if ( br_err != null )
+ {
+ try
+ {
+ br_err.close();
+ }
+ catch( Exception e ) {} // nothing can be done
+ }
+ }
+ } }).start();
+ int exitcode = p.waitFor();
+ if ( exitcode != 0 )
+ {
+ System.out.println("cmd [" + cmd + "] failed" );
+ result= false;
+ }
+ else
+ {
+ System.out.println("cmd [" + cmd + "] completed successfully");
+ result= true;
+ }
+ }
+ catch (Exception e) {
+ System.out.println("Exception");
+ e.printStackTrace();
+ }
+ System.out.println("command complete");
+ return result;
+ }
+}
+