summaryrefslogtreecommitdiff
path: root/src/main/java/com/c2kernel/process/ClientShell.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/com/c2kernel/process/ClientShell.java')
-rw-r--r--src/main/java/com/c2kernel/process/ClientShell.java82
1 files changed, 82 insertions, 0 deletions
diff --git a/src/main/java/com/c2kernel/process/ClientShell.java b/src/main/java/com/c2kernel/process/ClientShell.java
new file mode 100644
index 0000000..5bb1246
--- /dev/null
+++ b/src/main/java/com/c2kernel/process/ClientShell.java
@@ -0,0 +1,82 @@
+/*
+ * ClientShell.java
+ *
+ * Copyright (c) 2013, The CRISTAL Consortium. All rights reserved.
+ *
+ * CRISTAL kernel is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 3 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library. If not, see:
+ * http://www.gnu.org/licenses/
+ */
+
+package com.c2kernel.process;
+
+import java.util.Scanner;
+
+import com.c2kernel.entity.proxy.AgentProxy;
+import com.c2kernel.scripting.Script;
+
+public class ClientShell extends StandardClient {
+
+ AgentProxy user;
+ Script console;
+
+ public ClientShell(String username, String pass) throws Exception {
+ user = Gateway.connect(username, pass);
+ console = new Script("javascript", user, System.out);
+ }
+
+ public void run() {
+ Scanner scan = new Scanner(System.in);
+ System.out.print("> ");
+ while (scan.hasNextLine()) {
+ String command = scan.nextLine();
+ console.setScript(command);
+ try {
+ Object response = console.execute();
+ if (response == null)
+ System.out.println("Ok");
+ else
+ System.out.println(response);
+ } catch (Throwable ex) {
+ ex.printStackTrace();
+ }
+ System.out.print("> ");
+ }
+ close();
+ }
+
+ public static void main(String[] args) throws Exception {
+ Gateway.init(readC2KArgs(args));
+ Scanner scan = new Scanner(System.in);
+ int loginAttempts = 0;
+ ClientShell shell = null;
+ while (shell == null && loginAttempts++ < 3) {
+ System.out.print("User:");
+ String username = scan.nextLine();
+ System.out.print("Password:");
+ String pass = scan.nextLine();
+ try {
+ shell = new ClientShell(username, pass);
+ } catch (Exception ex) {
+ System.err.println(ex.getMessage());
+ }
+ }
+ if (shell == null) {
+ System.err.println("Bye");
+ System.exit(0);
+ }
+ shell.run();
+
+ }
+
+}