Skip to content

Commit 5a5392f

Browse files
committed
Reimplemented deis shortcuts command.
1 parent b788551 commit 5a5392f

1 file changed

Lines changed: 37 additions & 23 deletions

File tree

client/deis.py

Lines changed: 37 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@
4444

4545
from __future__ import print_function
4646
from collections import namedtuple
47+
from collections import OrderedDict
4748
from cookielib import MozillaCookieJar
4849
from datetime import datetime
4950
from getpass import getpass
@@ -2035,41 +2036,54 @@ def releases_rollback(self, args):
20352036
else:
20362037
raise ResponseError(response)
20372038

2039+
def shortcuts(self, args):
2040+
"""
2041+
Show valid shortcuts for client commands.
2042+
2043+
Usage: deis shortcuts
2044+
"""
2045+
print('Valid shortcuts are:\n')
2046+
for shortcut, command in SHORTCUTS.items():
2047+
if ':' not in shortcut:
2048+
print("{:<10} -> {}".format(shortcut, command))
2049+
print('\nUse `deis help [command]` to learn more')
2050+
2051+
SHORTCUTS = OrderedDict([
2052+
('create', 'apps:create'),
2053+
('destroy', 'apps:destroy'),
2054+
('info', 'apps:info'),
2055+
('calculate', 'apps:calculate'),
2056+
('run', 'apps:run'),
2057+
('open', 'apps:open'),
2058+
('logs', 'apps:logs'),
2059+
('register', 'auth:register'),
2060+
('login', 'auth:login'),
2061+
('logout', 'auth:logout'),
2062+
('ps', 'containers:list'),
2063+
('scale', 'containers:scale'),
2064+
('converge', 'formations:converge'),
2065+
('ssh', 'nodes:ssh'),
2066+
('rollback', 'releases:rollback'),
2067+
('sharing', 'perms:list'),
2068+
('sharing:list', 'perms:list'),
2069+
('sharing:add', 'perms:create'),
2070+
('sharing:remove', 'perms:delete'),
2071+
])
2072+
20382073

20392074
def parse_args(cmd):
20402075
"""
20412076
Parse command-line args applying shortcuts and looking for help flags
20422077
"""
2043-
shortcuts = {
2044-
'register': 'auth:register',
2045-
'login': 'auth:login',
2046-
'logout': 'auth:logout',
2047-
'create': 'apps:create',
2048-
'destroy': 'apps:destroy',
2049-
'ps': 'containers:list',
2050-
'info': 'apps:info',
2051-
'scale': 'containers:scale',
2052-
'converge': 'formations:converge',
2053-
'calculate': 'apps:calculate',
2054-
'ssh': 'nodes:ssh',
2055-
'open': 'apps:open',
2056-
'logs': 'apps:logs',
2057-
'rollback': 'releases:rollback',
2058-
'run': 'apps:run',
2059-
'sharing': 'perms:list',
2060-
'sharing:list': 'perms:list',
2061-
'sharing:add': 'perms:create',
2062-
'sharing:remove': 'perms:delete',
2063-
}
20642078
if cmd == 'help':
20652079
cmd = sys.argv[-1]
20662080
help_flag = True
20672081
else:
20682082
cmd = sys.argv[1]
20692083
help_flag = False
20702084
# swap cmd with shortcut
2071-
if cmd in shortcuts:
2072-
cmd = shortcuts[cmd]
2085+
if cmd in SHORTCUTS:
2086+
cmd = SHORTCUTS[cmd]
20732087
# change the cmdline arg itself for docopt
20742088
if not help_flag:
20752089
sys.argv[1] = cmd

0 commit comments

Comments
 (0)