package hudson.plugins.buckminster;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import hudson.model.BuildListener;
/**
* A separate thread that reads the output stream of a given {@link Process} object and writes the results
* to the given {@link BuildListener}.
* @author Johannes Utzig
*
*/
public class ProcessStreamLogger extends Thread {
private Process process;
private BuildListener listener;
public ProcessStreamLogger(Process process, BuildListener listener) {
super();
this.process = process;
this.listener = listener;
}
@Override
public void run() {
BufferedReader reader = new BufferedReader(new InputStreamReader(
process.getInputStream()));
String result;
try {
while ((result = reader.readLine()) != null) {
listener.getLogger().println(result);
}
} catch (IOException e) {
listener.getLogger().println(e.toString());
e.printStackTrace(listener.getLogger());
}
}
}