diff options
author | Ruben Pollan <meskio@sindominio.net> | 2017-03-17 00:34:12 +0100 |
---|---|---|
committer | Ruben Pollan <meskio@sindominio.net> | 2017-03-17 00:42:13 +0100 |
commit | 09bf881b4f457f731c5a49e88822bc731eda2c96 (patch) | |
tree | 1c164fd3381cfe68d05a5f09f7f52f3756615b5a /src/leap/bitmask/cli | |
parent | 4fe2ad820ab46f522682bcaece55a400c7038378 (diff) |
[feat] report the real status of the VPN
Diffstat (limited to 'src/leap/bitmask/cli')
-rw-r--r-- | src/leap/bitmask/cli/command.py | 23 | ||||
-rw-r--r-- | src/leap/bitmask/cli/mail.py | 20 | ||||
-rw-r--r-- | src/leap/bitmask/cli/vpn.py | 6 |
3 files changed, 29 insertions, 20 deletions
diff --git a/src/leap/bitmask/cli/command.py b/src/leap/bitmask/cli/command.py index 068f19b..4bee325 100644 --- a/src/leap/bitmask/cli/command.py +++ b/src/leap/bitmask/cli/command.py @@ -51,6 +51,29 @@ def default_dict_printer(result): print(Fore.RESET + key.ljust(10) + color + value + Fore.RESET) +def print_status(status, depth=0): + for name, v in [(' status', status)] + status['childrenStatus'].items(): + line = Fore.RESET + name.ljust(12) + if v['status'] in ('on', 'starting'): + line += Fore.GREEN + elif v['status'] == 'failure': + line += Fore.RED + line += v['status'] + if v['error']: + line += Fore.RED + " (" + v['error'] + ")" + line += Fore.RESET + print(line) + + for k, v in status.items(): + if k in ('status', 'childrenStatus', 'error'): + continue + if k == 'up': + k = '↑↑↑ ' + elif k == 'down': + k = '↓↓↓ ' + print(Fore.RESET + k.ljust(12) + Fore.CYAN + str(v) + Fore.RESET) + + class Command(object): """A generic command dispatcher. Any command in the class attribute `commands` will be dispached and diff --git a/src/leap/bitmask/cli/mail.py b/src/leap/bitmask/cli/mail.py index fd44383..1624606 100644 --- a/src/leap/bitmask/cli/mail.py +++ b/src/leap/bitmask/cli/mail.py @@ -57,22 +57,4 @@ SUBCOMMANDS: uid = self.cfg.get('bonafide', 'active', default=None) self.data += ['status', uid] - return self._send(self._print_status) - - def _print_status(self, status, depth=0): - for name, v in [('mail', status)] + status['childrenStatus'].items(): - line = Fore.RESET + name.ljust(10) - if v['status'] in ('on', 'starting'): - line += Fore.GREEN - elif v['status'] == 'failure': - line += Fore.RED - line += v['status'] - if v['error']: - line += Fore.RED + " (" + v['error'] + ")" - line += Fore.RESET - print(line) - - for k, v in status.items(): - if k in ('status', 'childrenStatus', 'error'): - continue - print(Fore.RESET + k.ljust(10) + Fore.CYAN + str(v) + Fore.RESET) + return self._send(command.print_status) diff --git a/src/leap/bitmask/cli/vpn.py b/src/leap/bitmask/cli/vpn.py index 6982515..e413e89 100644 --- a/src/leap/bitmask/cli/vpn.py +++ b/src/leap/bitmask/cli/vpn.py @@ -43,7 +43,7 @@ SUBCOMMANDS: '''.format(name=command.appname) - commands = ['stop', 'status', 'install', 'uninstall', + commands = ['stop', 'install', 'uninstall', 'enable', 'disable'] def start(self, raw_args): @@ -68,6 +68,10 @@ SUBCOMMANDS: return self._send(command.default_dict_printer) + def status(self, raw_args): + self.data += ['status'] + return self._send(command.print_status) + def check(self, raw_args): parser = argparse.ArgumentParser( description='Bitmask VPN check', |