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() { @SuppressWarnings("resource") // closing the scanner closes system.in 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)); @SuppressWarnings("resource") // closing the scanner closes system.in 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(); } }