home *** CD-ROM | disk | FTP | other *** search
- import java.io.DataInputStream;
- import java.io.IOException;
-
- class ProcessThread extends Thread {
- Monolog output;
- boolean busy = true;
- String done;
- ProcessThread waitThread;
- String test;
-
- public ProcessThread(String var1, Monolog var2, String var3) {
- super(var1);
- this.output = var2;
- this.done = var3;
- }
-
- public boolean isBusy() {
- return this.busy;
- }
-
- private void output(String var1) {
- if (this.output == null) {
- System.out.println(var1);
- } else {
- this.output.output(var1 + "\n");
- }
- }
-
- public void run() {
- if (this.waitThread != null) {
- try {
- while(this.waitThread.isBusy()) {
- Thread.sleep(100L);
- }
- } catch (InterruptedException var1) {
- }
- }
-
- if (this.test == null || this.waitThread.getOutput().indexOf(this.test) == -1) {
- this.output.show();
- this.command(((Thread)this).getName());
- this.busy = false;
- }
- }
-
- private boolean command(String var1) {
- Runtime var3 = Runtime.getRuntime();
- this.output(var1);
-
- try {
- Process var2 = var3.exec(var1);
- DataInputStream var4 = new DataInputStream(var2.getErrorStream());
- DataInputStream var5 = new DataInputStream(var2.getInputStream());
- PrintThread var6 = new PrintThread("StdOut", var5, this.output);
- PrintThread var7 = new PrintThread("StdErr", var4, this.output);
- ((Thread)var6).start();
- ((Thread)var7).start();
-
- try {
- while(((Thread)var6).isAlive() || ((Thread)var7).isAlive()) {
- Thread.sleep(100L, 0);
- Thread.sleep(100L, 0);
- }
- } catch (InterruptedException var8) {
- }
- } catch (IOException var9) {
- this.output(BrowserOptions.messages.getString("IOExceptio"));
- }
-
- this.output(this.done);
- return true;
- }
-
- public static void main(String[] var0) {
- if (var0.length < 1) {
- System.out.println("Usage: java ProcessThread <cmd> [<args>]");
- System.exit(0);
- }
-
- String var1 = "";
-
- for(int var2 = 0; var2 < var0.length; ++var2) {
- var1 = var1 + var0[var2] + " ";
- }
-
- ProcessThread var3 = new ProcessThread(var1, (Monolog)null, BrowserOptions.messages.getString("Done"));
- var3.run();
- }
-
- public String getOutput() {
- return this.output.getText();
- }
-
- public ProcessThread(String var1, Monolog var2, String var3, ProcessThread var4, String var5) {
- super(var1);
- this.output = var2;
- this.done = var3;
- this.waitThread = var4;
- this.test = var5;
- }
- }
-