44 }
45
46 String historyFileName = System.getProperty(ConsoleRunner.property, null);
47
48 String mainClass = argList.remove(0);
49 ConsoleReader reader = new ConsoleReader();
50
51 if (historyFileName != null) {
52 reader.setHistory(new FileHistory(new File(Configuration.getUserHome(),
53 String.format(".jline-%s.%s.history", mainClass, historyFileName))));
54 }
55 else {
56 reader.setHistory(new FileHistory(new File(Configuration.getUserHome(),
57 String.format(".jline-%s.history", mainClass))));
58 }
59
60 String completors = System.getProperty(ConsoleRunner.class.getName() + ".completers", "");
61 List<Completer> completorList = new ArrayList<Completer>();
62
63 for (StringTokenizer tok = new StringTokenizer(completors, ","); tok.hasMoreTokens();) {
64 Object obj = Class.forName(tok.nextToken()).newInstance();
65 completorList.add((Completer) obj);
66 }
67
68 if (completorList.size() > 0) {
69 reader.addCompleter(new ArgumentCompleter(completorList));
70 }
71
72 ConsoleReaderInputStream.setIn(reader);
73
74 try {
75 Class<?> type = Class.forName(mainClass);
76 Method method = type.getMethod("main", String[].class);
77 method.invoke(null);
78 }
79 finally {
80 // just in case this main method is called from another program
81 ConsoleReaderInputStream.restoreIn();
82 }
83 }
|
44 }
45
46 String historyFileName = System.getProperty(ConsoleRunner.property, null);
47
48 String mainClass = argList.remove(0);
49 ConsoleReader reader = new ConsoleReader();
50
51 if (historyFileName != null) {
52 reader.setHistory(new FileHistory(new File(Configuration.getUserHome(),
53 String.format(".jline-%s.%s.history", mainClass, historyFileName))));
54 }
55 else {
56 reader.setHistory(new FileHistory(new File(Configuration.getUserHome(),
57 String.format(".jline-%s.history", mainClass))));
58 }
59
60 String completors = System.getProperty(ConsoleRunner.class.getName() + ".completers", "");
61 List<Completer> completorList = new ArrayList<Completer>();
62
63 for (StringTokenizer tok = new StringTokenizer(completors, ","); tok.hasMoreTokens();) {
64 @SuppressWarnings("deprecation")
65 Object obj = Class.forName(tok.nextToken()).newInstance();
66 completorList.add((Completer) obj);
67 }
68
69 if (completorList.size() > 0) {
70 reader.addCompleter(new ArgumentCompleter(completorList));
71 }
72
73 ConsoleReaderInputStream.setIn(reader);
74
75 try {
76 Class<?> type = Class.forName(mainClass);
77 Method method = type.getMethod("main", String[].class);
78 method.invoke(null);
79 }
80 finally {
81 // just in case this main method is called from another program
82 ConsoleReaderInputStream.restoreIn();
83 }
84 }
|