X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;f=org.argeo.slc.agent%2Fsrc%2Fmain%2Fjava%2Forg%2Fargeo%2Fslc%2Fcli%2FSlcMain.java;h=10636f3d4191815a8a97d102dce1e10d8598828e;hb=60a3b9e541a6a085393fac1e0e677081ed98583e;hp=fd6a402093ff21cd411996b79a464a97089a2278;hpb=62fb595fc62eb935f582aecab5fb94dfe9bb5169;p=gpl%2Fargeo-slc.git diff --git a/org.argeo.slc.agent/src/main/java/org/argeo/slc/cli/SlcMain.java b/org.argeo.slc.agent/src/main/java/org/argeo/slc/cli/SlcMain.java index fd6a40209..10636f3d4 100644 --- a/org.argeo.slc.agent/src/main/java/org/argeo/slc/cli/SlcMain.java +++ b/org.argeo.slc.agent/src/main/java/org/argeo/slc/cli/SlcMain.java @@ -1,6 +1,5 @@ package org.argeo.slc.cli; -import java.io.File; import java.util.Properties; import org.apache.commons.cli.CommandLine; @@ -15,7 +14,6 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.argeo.slc.core.SlcException; import org.argeo.slc.logging.Log4jUtils; -import org.springframework.core.io.FileSystemResource; public class SlcMain { public enum Mode { @@ -37,8 +35,17 @@ public class SlcMain { "use value for given property").create('p'); private final static Option scriptOpt = OptionBuilder.withLongOpt("script") - .withArgName("script").hasArg().withType(File.class) - .withDescription("SLC script to execute").create('s'); + .withArgName("script").hasArg().withDescription( + "SLC script to execute").create('s'); + + private final static Option targetsOpt = OptionBuilder.withLongOpt( + "targets").withArgName("targets").hasArg().withDescription( + "Targets to execute").create('t'); + + private final static Option runtimeOpt = OptionBuilder.withLongOpt( + "runtime").withArgName("runtime").hasArg().withDescription( + "Runtime to use, either a full path or relative to slc app conf dir: " + + "/runtime//.xml").create('r'); private final static Options options; @@ -48,13 +55,17 @@ public class SlcMain { options = new Options(); options.addOption(modeOpt); options.addOption(scriptOpt); + options.addOption(targetsOpt); options.addOption(propertyOpt); + options.addOption(runtimeOpt); } public static void main(String[] args) { Mode mode = null; Properties properties = new Properties(); - File script = null; + String script = null; + String targets = null; + String runtimeStr = null; try { @@ -75,7 +86,11 @@ public class SlcMain { throw new SlcException("Mode " + Mode.single + " requires option '" + scriptOpt.getLongOpt() + "'"); - script = (File) cl.getOptionObject(scriptOpt.getOpt()); + script = cl.getOptionValue(scriptOpt.getOpt()); + + // Targets + if (cl.hasOption(targetsOpt.getOpt())) + targets = cl.getOptionValue(targetsOpt.getOpt()); } // Properties @@ -85,6 +100,13 @@ public class SlcMain { } } + // Runtime + if (cl.hasOption(runtimeOpt.getOpt())) { + runtimeStr = cl.getOptionValue(runtimeOpt.getOpt()); + } else { + runtimeStr = "default"; + } + } catch (ParseException e) { System.err.println("Problem with command line arguments. " + e.getMessage()); @@ -102,16 +124,19 @@ public class SlcMain { initLogging(properties); if (log.isDebugEnabled()) { log.debug("Mode: " + mode); + log.debug("Runtime: " + runtimeStr); log.debug("User properties: " + properties); if (script != null) - log.debug("Script: " + script.getAbsolutePath()); + log.debug("Script: " + script); + if (targets != null) + log.debug("Targets: " + targets); } // Execution if (mode.equals(Mode.single)) { DefaultSlcRuntime runtime = new DefaultSlcRuntime(); - runtime.executeScript(new FileSystemResource(script), properties, - null); + runtime.executeScript(runtimeStr, script, targets, properties, + null, null); } }