diff --git a/eoptasks/eoptasks.py b/eoptasks/eoptasks.py index 39707fd..68ebd28 100755 --- a/eoptasks/eoptasks.py +++ b/eoptasks/eoptasks.py @@ -58,8 +58,9 @@ for group in servergroups: servers.append(Server(servername, group)) parser = argparse.ArgumentParser() +parser.add_argument('-l', '--list-servers', action='store_true') parser.add_argument('-k', dest='keywords', type=str) -parser.add_argument('cmd', type=str) +parser.add_argument('cmd', type=str, nargs='?', default=None) args = parser.parse_args() @@ -73,9 +74,19 @@ if args.keywords: else: selected_servers = servers -if not selected_servers: +if args.list_servers: + for server in sorted(selected_servers, key=lambda x: x.name): + print(server.name) sys.exit(0) +if not selected_servers: + sys.stderr.write('No matching servers\n') + sys.exit(1) + +if not args.cmd: + sys.stderr.write('Missing command\n') + sys.exit(1) + cmd = { 'apt.update': 'sudo apt update', 'apt.upgrade': 'sudo apt update && sudo apt upgrade -y',