hsarjcli/src/de/hsadmin/jscli/CommandlineParser.java | ●●●●● patch | view | raw | blame | history | |
hsarjcli/src/de/hsadmin/jscli/JSONFormatter.java | ●●●●● patch | view | raw | blame | history | |
hsarjcli/src/de/hsadmin/jscli/Main.java | ●●●●● patch | view | raw | blame | history | |
hsarjcli/src/de/hsadmin/jscli/ScriptClient.java | ●●●●● patch | view | raw | blame | history |
hsarjcli/src/de/hsadmin/jscli/CommandlineParser.java
@@ -19,6 +19,7 @@ opts.addOption("r", "runas", true, "specify run-as user"); opts.addOption("e", "expr", true, "expression to execute"); opts.addOption("f", "file", true, "script file to execute"); opts.addOption("i", "interactive", false, "interactive shell"); PosixParser parser = new PosixParser(); try { if (args.length < 1) { @@ -51,6 +52,10 @@ return cmd.getOptionValue("file", null); } public boolean isInteractive() { return cmd.hasOption("interactive"); } public void printHelp() { HelpFormatter formatter = new HelpFormatter(); formatter.printHelp("hsscript", opts); hsarjcli/src/de/hsadmin/jscli/JSONFormatter.java
@@ -62,6 +62,7 @@ } public String format(Object object) { if (object == null) return ""; if (object instanceof List<?>) { return formatList((List<?>) object); } hsarjcli/src/de/hsadmin/jscli/Main.java
@@ -1,5 +1,6 @@ package de.hsadmin.jscli; import java.io.Console; import java.io.File; import java.io.FileNotFoundException; import java.io.FileReader; @@ -12,11 +13,8 @@ try { JSONFormatter formatter = new JSONFormatter(); CommandlineParser cmdParser = new CommandlineParser(args); ScriptClient scriptClient = new ScriptClient(cmdParser.getUser(), cmdParser.getRunAs()); String expr = cmdParser.getExpression(); if (expr != null && expr.length() > 0) { System.out.println(formatter.format(scriptClient.execute(expr))); } String runAs = cmdParser.getRunAs(); ScriptClient scriptClient = new ScriptClient(cmdParser.getUser(), runAs); String file = cmdParser.getFile(); if (file != null && file.length() > 0) { if ("-".equals(file)) { @@ -30,6 +28,29 @@ } } } String expr = cmdParser.getExpression(); if (expr != null && expr.length() > 0) { System.out.println(formatter.format(scriptClient.execute(expr))); } if (cmdParser.isInteractive()) { Console console = System.console(); if (console == null) { throw new JSCliException("fatal error: console not found"); } String command = console.readLine("%s@hsadmin>", runAs); while (!("bye".equals(command.trim()) || "exit".equals(command.trim()) || "quit".equals(command.trim()))) { try { console.printf("%s\n", formatter.format(scriptClient.execute(command))); } catch (Exception e) { console.printf("ERR: %s\n", e.getLocalizedMessage()); } command = console.readLine("%s@hsadmin>", runAs); while (command.endsWith("\\")) { command = command.substring(0, command.length() - 1) + console.readLine(">"); } } } } catch (JSCliException e) { System.err.println(e.getMessage()); System.exit(-1); hsarjcli/src/de/hsadmin/jscli/ScriptClient.java
@@ -51,12 +51,15 @@ if (parts.length == 2) { String module = parts[0]; String function = parts[1]; if ("delete".equals(function)) { function = "remove"; } try { engine.eval("if (typeof " + module + " === 'undefined') " + "{ var " + module + " = { }; };\n" + module + "['" + function + "'] = function(json) { " + "var mod = '" + module + "'; " + "var fct = '" + function + "'; " + ("remove".equals(function) ? "var fct = 'delete'; " : "var fct = '" + function + "'; ") + "var params = new ArrayList(); " + "params.add(casgrantingticket.getRunAs()); " + "params.add(casgrantingticket.getTicket()); " +