X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;f=runtime%2Forg.argeo.slc.support.equinox%2Fsrc%2Fmain%2Fjava%2Forg%2Fargeo%2Fslc%2Fequinox%2FExecutionCommandProvider.java;h=94ccf2649d54349d9c801edc827b29efccaed8ad;hb=bd07be7603d234ac496652aaa07ded77d4a2a292;hp=a63708286ce9bad66d75d4bab8b7679c5a49fecd;hpb=6c05406b172b751251acca37f37e2bb3a62ff03f;p=gpl%2Fargeo-slc.git diff --git a/runtime/org.argeo.slc.support.equinox/src/main/java/org/argeo/slc/equinox/ExecutionCommandProvider.java b/runtime/org.argeo.slc.support.equinox/src/main/java/org/argeo/slc/equinox/ExecutionCommandProvider.java index a63708286..94ccf2649 100644 --- a/runtime/org.argeo.slc.support.equinox/src/main/java/org/argeo/slc/equinox/ExecutionCommandProvider.java +++ b/runtime/org.argeo.slc.support.equinox/src/main/java/org/argeo/slc/equinox/ExecutionCommandProvider.java @@ -1,46 +1,60 @@ +/* + * Copyright (C) 2007-2012 Argeo GmbH + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ package org.argeo.slc.equinox; +import java.util.ArrayList; import java.util.List; -import org.argeo.slc.execution.ExecutionFlowDescriptor; -import org.argeo.slc.execution.ExecutionModule; +import org.argeo.slc.SlcException; +import org.argeo.slc.execution.SlcAgentCli; import org.eclipse.osgi.framework.console.CommandInterpreter; import org.eclipse.osgi.framework.console.CommandProvider; public class ExecutionCommandProvider implements CommandProvider { - private List executionModules; - - public Object _slc_execute(CommandInterpreter ci) { - String moduleName = ci.nextArgument(); - String executionName = ci.nextArgument(); - - ExecutionModule module = null; - for (ExecutionModule moduleT : executionModules) { - if(moduleT.getName().equals(moduleName)){ - // TODO: check version - module = moduleT; - break; - } + private SlcAgentCli agentCli; + + private String lastProcessUuid; + + public Object _slc(CommandInterpreter ci) { + List args = new ArrayList(); + String arg = null; + while ((arg = ci.nextArgument()) != null) + args.add(arg); + if (args.size() == 0) { + // TODO relaunch last process + ci.execute("help"); + throw new SlcException("Command not properly formatted"); } - ExecutionFlowDescriptor descriptor = new ExecutionFlowDescriptor(); - descriptor.setName(executionName); - if(module!=null) - module.execute(descriptor); - - return null; + lastProcessUuid = agentCli + .process(args.toArray(new String[args.size()])); + return lastProcessUuid; } public String getHelp() { StringBuffer buf = new StringBuffer(); buf.append("---SLC Execution Commands---\n"); - buf.append("\tslc_execute - Execute an execution flow\n"); + buf.append("\tslc [[ --arg value | --booleanArg ]]" + + " - executes an execution flow\n"); return buf.toString(); } - public void setExecutionModules(List executionModules) { - this.executionModules = executionModules; + public void setAgentCli(SlcAgentCli agentCli) { + this.agentCli = agentCli; } }