|
44 | 44 |
|
45 | 45 | from __future__ import print_function |
46 | 46 | from collections import namedtuple |
| 47 | +from collections import OrderedDict |
47 | 48 | from cookielib import MozillaCookieJar |
48 | 49 | from datetime import datetime |
49 | 50 | from getpass import getpass |
@@ -2035,41 +2036,54 @@ def releases_rollback(self, args): |
2035 | 2036 | else: |
2036 | 2037 | raise ResponseError(response) |
2037 | 2038 |
|
| 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 | + |
2038 | 2073 |
|
2039 | 2074 | def parse_args(cmd): |
2040 | 2075 | """ |
2041 | 2076 | Parse command-line args applying shortcuts and looking for help flags |
2042 | 2077 | """ |
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 | | - } |
2064 | 2078 | if cmd == 'help': |
2065 | 2079 | cmd = sys.argv[-1] |
2066 | 2080 | help_flag = True |
2067 | 2081 | else: |
2068 | 2082 | cmd = sys.argv[1] |
2069 | 2083 | help_flag = False |
2070 | 2084 | # swap cmd with shortcut |
2071 | | - if cmd in shortcuts: |
2072 | | - cmd = shortcuts[cmd] |
| 2085 | + if cmd in SHORTCUTS: |
| 2086 | + cmd = SHORTCUTS[cmd] |
2073 | 2087 | # change the cmdline arg itself for docopt |
2074 | 2088 | if not help_flag: |
2075 | 2089 | sys.argv[1] = cmd |
|
0 commit comments