// Path: jetty-console-api/src/main/java/org/simplericity/jettyconsole/api/DefaultStartOption.java
// public class DefaultStartOption implements StartOption {
//     private String name;
// 
//     public DefaultStartOption(String name) {
//         this.name = name;
//     }
// 
//     public String getName() {
//         return name;
//     }
// 
//     public String validate() {
//         return null;
//     }
// 
//     public String validate(String value) {
//         return null;
//     }
// 
// }
// 
// Path: jetty-console-api/src/main/java/org/simplericity/jettyconsole/api/JettyConsolePluginBase.java
// public abstract class JettyConsolePluginBase implements JettyConsolePlugin {
// 
//     private List<StartOption> startOptions = new ArrayList<StartOption>();
//     private String pluginUid;
// 
//     public JettyConsolePluginBase(String pluginUid) {
//         this.pluginUid = pluginUid;
//     }
// 
//     protected JettyConsolePluginBase(Class<? extends JettyConsolePluginBase> pluginClass) {
//         this(pluginClass.getName());
//     }
// 
//     protected void addStartOptions(StartOption... startOptions) {
//         this.startOptions.addAll(Arrays.asList(startOptions));
//     }
//     public void beforeStart(WebAppContext context) {
//         
//     }
// 
//     public void configureConsole(Configuration configuration) {
//         
//     }
// 
//     public void bootstrap() {
//         
//     }
// 
//     public void customizeConnector(ServerConnector connector) {
//         
//     }
// 
//     public void customizeServer(Server server) {
//         
//     }
// 
//     public void beforeStop(WebAppContext context) {
//         
//     }
// 
//     public List<StartOption> getStartOptions() {
//         return startOptions;
//     }
// }
// 
// Path: jetty-console-api/src/main/java/org/simplericity/jettyconsole/api/StartOption.java
// public interface StartOption {
// 
//     String getName();
// 
//     String validate(String arg);
// 
//     String validate();
// }


import org.eclipse.jetty.util.IO;
import org.simplericity.jettyconsole.api.DefaultStartOption;
import org.simplericity.jettyconsole.api.JettyConsolePluginBase;
import org.simplericity.jettyconsole.api.StartOption;
import java.io.*;
import java.net.URL;
import java.net.URLDecoder;
            final URL startStopCnfResource = getClass().getResource("startstop.cnf");


            try {
                System.out.println("Creating start/stop script '" + sh.getName() +"'");
                String ss = produceStartScript(serviceName);
                writeToFile(sh,  new ByteArrayInputStream(ss.getBytes("ascii")));

                makeExecutable(sh);

                System.out.println("Creating default configuration file '" + cnf.getName() + "' (please edit)");
                String cnfS = IO.toString(startStopCnfResource.openStream());
                cnfS = String.format(cnfS, serviceName, System.getProperty("java.home"), System.getProperty("user.name"));
                writeToFile(cnf, new ByteArrayInputStream(cnfS.getBytes("ascii")));

            } catch (IOException e) {
                throw new RuntimeException(e);
            } catch (InterruptedException e) {
                throw new RuntimeException(e);
            }
            System.exit(0);

            return null;
        }




    };

// Path: jetty-console-api/src/main/java/org/simplericity/jettyconsole/api/DefaultStartOption.java
// public class DefaultStartOption implements StartOption {
//     private String name;
// 
//     public DefaultStartOption(String name) {
//         this.name = name;
//     }
// 
//     public String getName() {
//         return name;
//     }
// 
//     public String validate() {
//         return null;
//     }
// 
//     public String validate(String value) {
//         return null;
//     }
// 
// }
// 
// Path: jetty-console-api/src/main/java/org/simplericity/jettyconsole/api/JettyConsolePluginBase.java
// public abstract class JettyConsolePluginBase implements JettyConsolePlugin {
// 
//     private List<StartOption> startOptions = new ArrayList<StartOption>();
//     private String pluginUid;
// 
//     public JettyConsolePluginBase(String pluginUid) {
//         this.pluginUid = pluginUid;
//     }
// 
//     protected JettyConsolePluginBase(Class<? extends JettyConsolePluginBase> pluginClass) {
//         this(pluginClass.getName());
//     }
// 
//     protected void addStartOptions(StartOption... startOptions) {
//         this.startOptions.addAll(Arrays.asList(startOptions));
//     }
//     public void beforeStart(WebAppContext context) {
//         
//     }
// 
//     public void configureConsole(Configuration configuration) {
//         
//     }
// 
//     public void bootstrap() {
//         
//     }
// 
//     public void customizeConnector(ServerConnector connector) {
//         
//     }
// 
//     public void customizeServer(Server server) {
//         
//     }
// 
//     public void beforeStop(WebAppContext context) {
//         
//     }
// 
//     public List<StartOption> getStartOptions() {
//         return startOptions;
//     }
// }
// 
// Path: jetty-console-api/src/main/java/org/simplericity/jettyconsole/api/StartOption.java
// public interface StartOption {
// 
//     String getName();
// 
//     String validate(String arg);
// 
//     String validate();
// }


// Path: jetty-console-plugins/jetty-console-startstop-plugin/src/main/java/org/simplericity/jettyconsole/startstop/StartStopScriptPlugin.java
import org.eclipse.jetty.util.IO;
import org.simplericity.jettyconsole.api.DefaultStartOption;
import org.simplericity.jettyconsole.api.JettyConsolePluginBase;
import org.simplericity.jettyconsole.api.StartOption;
import java.io.*;
import java.net.URL;
import java.net.URLDecoder;

            final URL startStopCnfResource = getClass().getResource("startstop.cnf");


            try {
                System.out.println("Creating start/stop script '" + sh.getName() +"'");
                String ss = produceStartScript(serviceName);
                writeToFile(sh,  new ByteArrayInputStream(ss.getBytes("ascii")));

                makeExecutable(sh);

                System.out.println("Creating default configuration file '" + cnf.getName() + "' (please edit)");
                String cnfS = IO.toString(startStopCnfResource.openStream());
                cnfS = String.format(cnfS, serviceName, System.getProperty("java.home"), System.getProperty("user.name"));
                writeToFile(cnf, new ByteArrayInputStream(cnfS.getBytes("ascii")));

            } catch (IOException e) {
                throw new RuntimeException(e);
            } catch (InterruptedException e) {
                throw new RuntimeException(e);
            }
            System.exit(0);

            return null;
        }




    };

     private StartOption showStartStopScript = new DefaultStartOption("showStartScript") {