8497f4387c8e7bb0c8ef151fabb1f82ed3b0a3ad
[mir.git] / source / mircoders / producer / ScriptCallProducer.java
1 package mircoders.producer;
2
3 import mir.producer.*;
4 import java.io.*;
5
6 // ML: needs to be tested!
7
8 public class ScriptCallProducer implements mir.producer.Producer {
9   String script;
10
11   public ScriptCallProducer(String aScript) {
12     script = aScript;
13   }
14
15   public void produce( PrintWriter aLogger ) throws ProducerFailure {
16     Process process;
17     int returnValue;
18
19     aLogger.println("Executing " + script + ":");
20
21     try {
22       process = Runtime.getRuntime().exec(script);
23       returnValue = process.waitFor();
24       aLogger.println("Terminated successfully, return value = " + returnValue + ".");
25     }
26     catch (Throwable e) {
27       aLogger.println("Exception has occurred: " + e.getMessage() + ":");
28       e.printStackTrace(aLogger);
29       throw new ProducerFailure("Executing script failed",e);
30     }
31   }
32 }