Add "libreadlines"-like behavior to the shell command

Using the jline open-source library.

We save the history between invocations to ~/.nomulus_history

We add some simple completions:
- first argument completes to command name
- all other arguments complete to the command parameters, or filename

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=191501023
This commit is contained in:
guyben 2018-04-03 14:34:13 -07:00 committed by Ben McIlwain
parent 3684fa3366
commit cfd83ad4dc
5 changed files with 271 additions and 25 deletions

View file

@ -118,6 +118,7 @@ def domain_registry_repositories(
omit_javax_xml_bind_jaxb_api=False,
omit_javax_xml_soap_api=False,
omit_javax_xml_ws_jaxws_api=False,
omit_jline=False,
omit_joda_time=False,
omit_junit=False,
omit_org_apache_avro=False,
@ -350,6 +351,8 @@ def domain_registry_repositories(
javax_xml_soap_api()
if not omit_javax_xml_ws_jaxws_api:
javax_xml_ws_jaxws_api()
if not omit_jline:
jline()
if not omit_joda_time:
joda_time()
if not omit_junit:
@ -1906,6 +1909,18 @@ def javax_xml_ws_jaxws_api():
],
)
def jline():
java_import_external(
name = "jline",
licenses = ["notice"], # BSD
jar_sha256 = "b0d884980fab1df2f948c568f576c365f3379dc8bc930272fa508843d1f3652b",
jar_urls = [
"http://maven.ibiblio.org/maven2/jline/jline/1.0/jline-1.0.jar",
"http://repo1.maven.org/maven2/jline/jline/1.0/jline-1.0.jar",
],
)
def joda_time():
java_import_external(
name = "joda_time",