On 1/19/11 1:05 AM, Matthew Sacks wrote: > Nice! Did this inherently resolve > https://issues.apache.org/jira/browse/KITTY-3?
Not yet, but it will. p > On Jan 17, 2011, at 9:53 AM, [email protected] wrote: > >> Author: pidster >> Date: Mon Jan 17 17:53:28 2011 >> New Revision: 1060024 >> >> URL: http://svn.apache.org/viewvc?rev=1060024&view=rev >> Log: >> Use Commons CLI / CliBuilder and JLine >> >> Modified: >> incubator/kitty/trunk/src/main/java/org/apache/kitty/CmdShell.groovy >> incubator/kitty/trunk/src/main/java/org/apache/kitty/Main.groovy >> >> Modified: >> incubator/kitty/trunk/src/main/java/org/apache/kitty/CmdShell.groovy >> URL: >> http://svn.apache.org/viewvc/incubator/kitty/trunk/src/main/java/org/apache/kitty/CmdShell.groovy?rev=1060024&r1=1060023&r2=1060024&view=diff >> ============================================================================== >> --- incubator/kitty/trunk/src/main/java/org/apache/kitty/CmdShell.groovy >> (original) >> +++ incubator/kitty/trunk/src/main/java/org/apache/kitty/CmdShell.groovy Mon >> Jan 17 17:53:28 2011 >> @@ -1,3 +1,4 @@ >> + >> /* >> * Licensed to the Apache Software Foundation (ASF) under one or more >> * contributor license agreements. See the NOTICE file distributed with >> @@ -15,11 +16,10 @@ >> * limitations under the License. >> */ >> >> - >> package org.apache.kitty >> >> -import java.io.BufferedReader >> -import java.io.InputStreamReader >> +import jline.ConsoleReader >> +import jline.History >> >> import org.apache.kitty.client.Client >> import org.apache.kitty.utils.Constants >> @@ -38,13 +38,16 @@ import org.apache.kitty.utils.Help >> */ >> class CmdShell { >> >> - def static final PROMPT = "kitty>" >> + def static final PROMPT = "kitty> " >> + >> static String HOST = "localhost" >> + >> static String PORT = "9024" >> + >> static Client client >> + >> def static remote >> - static InputStreamReader inReader; >> - static BufferedReader bReader; >> + >> static commands = [ >> "help", >> "connect", >> @@ -74,18 +77,33 @@ class CmdShell { >> } >> >> static startShell() { >> - def input >> - inReader = new InputStreamReader(System.in) >> - bReader = new BufferedReader(inReader) >> + >> client = new Client() >> >> - while (!(input.equals("exit"))) { >> - print PROMPT >> - input = getUserInput() >> - inputHandler(input) >> + def history = new History() >> + def reader = new ConsoleReader() >> + >> + reader.setBellEnabled(false) >> + reader.setUseHistory(true) >> + reader.setDefaultPrompt(PROMPT) >> + reader.setHistory(history) >> + >> + LOOP: while (true) { >> + def input = reader.readLine().trim() >> + >> + if (input.length() == 0) >> + continue >> + >> + if (["exit", "quit"].contains(input.tokenize().get(0))) >> + break LOOP >> + >> + try { >> + inputHandler(input) >> + } >> + catch (Exception e) { >> + println e.getMessage() >> + } >> } >> - inReader.close() >> - bReader.close() >> } >> >> static inputHandler(String input) { >> @@ -97,7 +115,7 @@ class CmdShell { >> input = params[0] >> } >> else { >> - params = {input} >> + params = { input } >> } >> >> if (commands.contains(input)) { >> @@ -199,12 +217,6 @@ class CmdShell { >> } >> } >> >> - static String getUserInput() { >> - def userInput >> - userInput = bReader.readLine() >> - return userInput; >> - } >> - >> static cmdHelp() { >> Help h = new Help() >> println h.toString() >> >> Modified: incubator/kitty/trunk/src/main/java/org/apache/kitty/Main.groovy >> URL: >> http://svn.apache.org/viewvc/incubator/kitty/trunk/src/main/java/org/apache/kitty/Main.groovy?rev=1060024&r1=1060023&r2=1060024&view=diff >> ============================================================================== >> --- incubator/kitty/trunk/src/main/java/org/apache/kitty/Main.groovy >> (original) >> +++ incubator/kitty/trunk/src/main/java/org/apache/kitty/Main.groovy Mon Jan >> 17 17:53:28 2011 >> @@ -1,42 +1,58 @@ >> /* >> -* Licensed to the Apache Software Foundation (ASF) under one or more >> -* contributor license agreements. See the NOTICE file distributed with >> -* this work for additional information regarding copyright ownership. >> -* The ASF licenses this file to You under the Apache License, Version 2.0 >> -* (the "License"); you may not use this file except in compliance with >> -* the License. You may obtain a copy of the License at >> -* >> -* http://www.apache.org/licenses/LICENSE-2.0 >> -* >> -* Unless required by applicable law or agreed to in writing, software >> -* distributed under the License is distributed on an "AS IS" BASIS, >> -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. >> -* See the License for the specific language governing permissions and >> -* limitations under the License. >> -*/ >> + * Licensed to the Apache Software Foundation (ASF) under one or more >> + * contributor license agreements. See the NOTICE file distributed with >> + * this work for additional information regarding copyright ownership. >> + * The ASF licenses this file to You under the Apache License, Version 2.0 >> + * (the "License"); you may not use this file except in compliance with >> + * the License. You may obtain a copy of the License at >> + * >> + * http://www.apache.org/licenses/LICENSE-2.0 >> + * >> + * Unless required by applicable law or agreed to in writing, software >> + * distributed under the License is distributed on an "AS IS" BASIS, >> + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. >> + * See the License for the specific language governing permissions and >> + * limitations under the License. >> + */ >> >> >> package org.apache.kitty >> >> /** >> -* <pre> >> -* <b>Description</b> >> -* <p> >> -* This is the entry point to the remote management framework. >> -* </p> >> -* </pre> >> -* >> -* @version $Id$ >> -* >> -*/ >> + * <pre> >> + * <b>Description</b> >> + * <p> >> + * This is the entry point to the remote management framework. >> + * </p> >> + * </pre> >> + * >> + * @version $Id$ >> + * >> + */ >> class Main { >> - >> - def config >> - >> - public init() >> - { >> - config = new ConfigSlurper().parse(new >> File('kittyConfig.groovy')).toString() >> - //TODO >> - } >> >> + static final String KITTY_USAGE = "java -jar apache-kitty.jar <arg>" >> + >> + static main(args) { >> + >> + def cli = new CliBuilder(usage: KITTY_USAGE) >> + cli.h(longOpt: 'help', 'Show help') >> + cli.i(longOpt: 'interactive', 'Launch in an interactive prompt >> (default)') >> + cli.s(longOpt: 'script', 'Launch inline for scripted access') >> + >> + /* >> + cli.d(longOpt: 'debug', 'Display debug information on output') >> + cli.q(longOpt: 'quiet', 'Restrict output to bare minimum') >> + cli.v(longOpt: 'verbose', 'Display extra information on >> output') >> + */ >> + >> + def opt = cli.parse(args) >> + >> + if (opt?.h) { >> + cli.usage() >> + return >> + } >> + >> + CmdShell.startShell() >> + } >> } >> >> > >
0x62590808.asc
Description: application/pgp-keys
signature.asc
Description: OpenPGP digital signature
