package org.gudy.azureus2.platform.unix;
import java.io.*;
import org.gudy.azureus2.core3.config.COConfigurationManager;
public class ScriptAfterShutdown
{
private static PrintStream sysout;
public static void main(String[] args) {
// Set transitory so not everything gets loaded up. (such as the AEDiagnostic's tidy flag)
System.setProperty("transitory.startup", "1");
// Since stdout will be in a shell script, redirect any stdout not coming
// from us to stderr
sysout = System.out;
try {
System.setOut(new PrintStream(new FileOutputStream("/dev/stderr")));
} catch (FileNotFoundException e) {
}
String extraCmds = COConfigurationManager.getStringParameter(
"scriptaftershutdown", null);
if (extraCmds != null) {
boolean exit = COConfigurationManager.getBooleanParameter(
"scriptaftershutdown.exit", false);
if (exit) {
COConfigurationManager.removeParameter("scriptaftershutdown.exit");
}
COConfigurationManager.removeParameter("scriptaftershutdown");
COConfigurationManager.save();
sysout.println(extraCmds);
if (exit) {
sysout.println("exit");
}
} else {
log("No shutdown tasks to do");
}
}
public static void addExtraCommand(String s) {
String extraCmds = COConfigurationManager.getStringParameter(
"scriptaftershutdown", null);
if (extraCmds == null) {
extraCmds = s + "\n";
} else {
extraCmds += s + "\n";
}
COConfigurationManager.setParameter("scriptaftershutdown", extraCmds);
}
public static void setRequiresExit(boolean requiresExit) {
if (requiresExit) {
COConfigurationManager.setParameter("scriptaftershutdown.exit", true);
}
}
private static void log(String string) {
sysout.println("echo \"" + string.replaceAll("\"", "\\\"") + "\"");
}
}