package org.nishen.alma.toolkit;
import java.util.Map;
import org.nishen.alma.toolkit.tasks.Task;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.google.inject.Inject;
import com.google.inject.name.Named;
public class ToolkitApplication
{
private static final Logger log = LoggerFactory.getLogger(ToolkitApplication.class);
private String[] args = null;
private Map<String, Task> tasks = null;
@Inject
private ToolkitApplication(@Named("app.cmdline") final String[] args, Map<String, Task> tasks)
{
this.args = args;
this.tasks = tasks;
}
public void run()
{
log.debug("task manager execution starting");
if (args == null || args.length == 0)
{
System.out.println("java -jar alma-toolkit.jar task-name [task-options]\n");
for (String taskname : tasks.keySet())
{
Task task = tasks.get(taskname);
System.out.println("Available task: " + taskname);
System.out.println("Command line options:");
for (String s : task.getUsageOptions().keySet())
{
System.out.println("\t" + s + " " + task.getUsageOptions().get(s));
}
System.out.println();
}
return;
}
if (log.isDebugEnabled())
{
for (String a : args)
log.debug("cmdline: {}", a);
for (String n : tasks.keySet())
log.debug("task name: {}", n);
}
String taskname = args[0].toLowerCase();
Task task = tasks.get(taskname);
if (task == null)
{
System.out.println("task not available: " + taskname);
return;
}
System.out.println("executing task starting: " + taskname);
task.run();
System.out.println("executing task complete: " + taskname);
log.debug("task manager execution complete");
}
}