diff --git a/cccli/cli.py b/cccli/cli.py index 9dbf8ff862bc1dd480146488a9604f8808d650bd..b9cb2e3ee134b4490e2311c3160828b49a11fb69 100644 --- a/cccli/cli.py +++ b/cccli/cli.py @@ -112,10 +112,8 @@ class Cli(object): if len(argv) == 0: continue # alias subsitution - if argv[0] in self.aliases: - oldargv = argv[1:] - argv = shlex.split(self.aliases[argv[0]]) - argv.extend(oldargv) + argv = self.aliases.substitute(argv) + # command execution self._exec_command(argv) except KeyboardInterrupt: self.printer.out("") diff --git a/cccli/commands.py b/cccli/commands.py index c91217515e1cd49fcc2140a689ed8510eb2c8f53..f424cbbce5b334e3f2b28921c4626461ccf3a5e5 100644 --- a/cccli/commands.py +++ b/cccli/commands.py @@ -7,6 +7,7 @@ CloudControl CLI commands module import re import ConfigParser import os +import shlex from cccli.exception import * from cccli.command import * @@ -98,3 +99,10 @@ class Aliases(dict): for n,v in self.items(): fparser.set("alias", n, v) fparser.write(open(filename, "w")) + + def substitute(self, argv): + if argv[0] in self: + oldargv = argv[1:] + argv = shlex.split(self[argv[0]]) + argv.extend(oldargv) + return argv