From 110297ffb832f02cc8867a8534b149a6cdaf0945 Mon Sep 17 00:00:00 2001 From: Maurizio Porrato Date: Mon, 11 Feb 2019 14:35:51 +0000 Subject: [PATCH] Use argparse --- eufy.py | 23 ++++++++++++++++++----- 1 file changed, 18 insertions(+), 5 deletions(-) diff --git a/eufy.py b/eufy.py index aa4d8b0..1535faf 100755 --- a/eufy.py +++ b/eufy.py @@ -1,6 +1,6 @@ #!/usr/bin/env python3 -import cmd +from cmd import Cmd from datetime import datetime, time from inspect import getargspec from shlex import shlex @@ -143,7 +143,7 @@ def lexer(f): return g -class Eufy(cmd.Cmd): +class Eufy(Cmd): prompt = 'eufy> ' @@ -215,9 +215,22 @@ class Eufy(cmd.Cmd): 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() - 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()