add readline completion (+ fixes)
This commit is contained in:
parent
c002381b9e
commit
7be296856a
1 changed files with 21 additions and 5 deletions
26
mncli.py
26
mncli.py
|
@ -3,6 +3,7 @@ import sys
|
||||||
from itertools import imap
|
from itertools import imap
|
||||||
import os.path
|
import os.path
|
||||||
from pprint import pprint
|
from pprint import pprint
|
||||||
|
import atexit
|
||||||
|
|
||||||
from dirset import DirSet
|
from dirset import DirSet
|
||||||
from messagenet import Messagenet
|
from messagenet import Messagenet
|
||||||
|
@ -42,20 +43,33 @@ def main():
|
||||||
conf.update(json.load(open(sys.argv[1])))
|
conf.update(json.load(open(sys.argv[1])))
|
||||||
user, password = read_pass_file(conf['credfile'])
|
user, password = read_pass_file(conf['credfile'])
|
||||||
with Messagenet() as mn: # conf['browserdriver'])
|
with Messagenet() as mn: # conf['browserdriver'])
|
||||||
mn.login(user, password)
|
|
||||||
# readline {{{2
|
# readline {{{2
|
||||||
try:
|
try:
|
||||||
import readline
|
import readline
|
||||||
readline.read_init_file()
|
readline.read_init_file()
|
||||||
readline.read_history_file(os.path.join(
|
|
||||||
os.path.dirname(os.path.realpath(__file__)),
|
|
||||||
'.mncli_history'))
|
|
||||||
except ImportError: # readline not supported on your system
|
except ImportError: # readline not supported on your system
|
||||||
pass
|
pass
|
||||||
except:
|
except:
|
||||||
print "Some error with readline; who cares"
|
print "Some error with readline; who cares"
|
||||||
|
histfile = os.path.join(os.path.dirname(__file__),
|
||||||
|
'.mncli_history')
|
||||||
|
if os.path.exists(histfile):
|
||||||
|
readline.read_history_file(histfile)
|
||||||
|
atexit.register(readline.write_history_file, histfile)
|
||||||
|
|
||||||
|
def _completer(text, state):
|
||||||
|
commands = ('help', 'quit', 'calllog', 'forward', 'currency')
|
||||||
|
options = [c for c in commands if c.startswith(text)]
|
||||||
|
if readline.get_begidx() != 0:
|
||||||
|
return None
|
||||||
|
if state < len(options):
|
||||||
|
return options[state]
|
||||||
|
return None
|
||||||
|
readline.parse_and_bind('tab: complete')
|
||||||
|
readline.set_completer(_completer)
|
||||||
# }}}
|
# }}}
|
||||||
|
|
||||||
|
mn.login(user, password)
|
||||||
print "messagenet command-line. type help for help. type quit for quit"
|
print "messagenet command-line. type help for help. type quit for quit"
|
||||||
while True:
|
while True:
|
||||||
try:
|
try:
|
||||||
|
@ -91,6 +105,8 @@ def main():
|
||||||
else:
|
else:
|
||||||
print " Invalid command '%s'; type 'help' to get help" % cmd
|
print " Invalid command '%s'; type 'help' to get help" % cmd
|
||||||
|
|
||||||
# save_calls(calls, conf['datadir'])
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
main()
|
||||||
|
|
||||||
# vim: set fdm=marker:
|
# vim: set fdm=marker:
|
||||||
|
|
Loading…
Reference in a new issue