package de.ugoe.cs.util.console.defaultcommands; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStreamReader; import java.util.List; import java.util.logging.Level; import de.ugoe.cs.util.console.Command; import de.ugoe.cs.util.console.CommandExecuter; import de.ugoe.cs.util.console.Console; /** *

* Command to execute a batch of {@link Command}s. The batch is defined as a * text file, where each line defines one command. *

* * @author Steffen Herbold * @version 1.0 */ public class CMDexec implements Command { /* * (non-Javadoc) * * @see de.ugoe.cs.util.console.Command#run(java.util.List) */ public void run(List parameters) { String script; try { script = (String) parameters.get(0); } catch (Exception e) { throw new IllegalArgumentException(); } try { String[] commands; File f = new File(script); FileInputStream fis = new FileInputStream(f); InputStreamReader reader = new InputStreamReader(fis, "UTF-8"); char[] buffer = new char[(int) f.length()]; reader.read(buffer); commands = (new String(buffer)).split("\n"); for (String command : commands) { Console.traceln(Level.INFO, "Executing \"" + command.trim() + "\""); CommandExecuter.getInstance().exec(command); } reader.close(); } catch (FileNotFoundException e) { Console.printerrln(e.getMessage()); } catch (IOException e) { Console.printerrln(e.getMessage()); } } /* * (non-Javadoc) * * @see databasebuilder.console.commands.Command#help() */ @Override public String help() { return "exec "; } }