diff --git a/src/picowatch.py b/src/picowatch.py index d13a27d..95346d0 100644 --- a/src/picowatch.py +++ b/src/picowatch.py @@ -848,45 +848,48 @@ while True: unmessage = input('>>> ').strip() for message in unmessage.split('&'): - match message.strip().split(' '): - case ['exit' | '\x18']: - sys.exit() - case ['help']: - print('TODO') - case ['whois']: - print('TODO') - case ['reboot']: - picowatch.terminal('help()') - case ['ls' | 'list', *source]: - picowatch.listing(source[0] if source else '/') - case ['cat' | 'code', source]: - picowatch.contents(source) - case ['rm' | 'delete', source]: - picowatch.delete(source) - case ['put' | 'upload', source]: - picowatch.upload(source) - case ['get' | 'download', source]: - picowatch.download(source) - case ['diff' | 'compare', filename]: - picowatch.compare(filename) - case ['status']: - picowatch.status(return_output=False) - case ['push']: - picowatch.push() - case ['mpy' | 'compile', filename]: - picowatch.compile(filename) - case ['install', package_name]: - pass - case ['test', filename]: - picowatch.test(filename) - case ['!']: - picowatch.test('main.py') - case ['!!']: - picowatch.launch('main.py') - case _: - if message.startswith('./'): - picowatch.launch(message[2:]) - elif message: - print(f'"{message}" is not recognized.') - except Exception as e: - print(str(e)) + try: + match message.strip().split(' '): + case ['exit']: + sys.exit('Picowatch Terminal disconnected!') + case ['help']: + print('TODO') + case ['whois']: + print('TODO') + case ['reboot']: + picowatch.terminal('help()') + case ['ls' | 'list', *source]: + picowatch.listing(source[0] if source else '/') + case ['cat' | 'code', source]: + picowatch.contents(source) + case ['rm' | 'delete', source]: + picowatch.delete(source) + case ['put' | 'upload', source]: + picowatch.upload(source) + case ['get' | 'download', source]: + picowatch.download(source) + case ['diff' | 'compare', filename]: + picowatch.compare(filename) + case ['status']: + picowatch.status(return_output=False) + case ['push']: + picowatch.push() + case ['mpy' | 'compile', filename]: + picowatch.compile(filename) + case ['install', package_name]: + pass + case ['test', filename]: + picowatch.test(filename) + case ['!']: + picowatch.test('main.py') + case ['!!']: + picowatch.launch('main.py') + case _: + if message.startswith('./'): + picowatch.launch(message[2:]) + elif message: + print(f'"{message}" is not recognized.') + except Exception as e: + print(str(e)) + except (KeyboardInterrupt, EOFError): + sys.exit('Picowatch Terminal disconnected!')