Use argparse

This commit is contained in:
Maurizio Porrato 2019-02-11 14:35:51 +00:00
parent b43c7bae97
commit 110297ffb8
1 changed files with 18 additions and 5 deletions

23
eufy.py
View File

@ -1,6 +1,6 @@
#!/usr/bin/env python3 #!/usr/bin/env python3
import cmd from cmd import Cmd
from datetime import datetime, time from datetime import datetime, time
from inspect import getargspec from inspect import getargspec
from shlex import shlex from shlex import shlex
@ -143,7 +143,7 @@ def lexer(f):
return g return g
class Eufy(cmd.Cmd): class Eufy(Cmd):
prompt = 'eufy> ' prompt = 'eufy> '
@ -215,9 +215,22 @@ class Eufy(cmd.Cmd):
if __name__ == '__main__': if __name__ == '__main__':
import sys from argparse import ArgumentParser, FileType
parser = ArgumentParser(description='Eufy RoboVac 11s CLI tool')
parser.add_argument('-f', '--file', type=FileType('r'), help='read commands from file')
parser.add_argument('command', nargs='*')
args = parser.parse_args()
eufy = Eufy() eufy = Eufy()
if len(sys.argv) > 1:
eufy.cmdqueue = ' '.join(sys.argv[1:]).split(',') + ['quit'] if args.file:
eufy.cmdqueue.extend(args.file.readlines())
if args.command:
eufy.cmdqueue.extend(' '.join(args.command).split(','))
if eufy.cmdqueue:
eufy.cmdqueue.append('quit')
eufy.cmdloop() eufy.cmdloop()