From 01c4b4d896fc27439c10697754aa05f03f3b4d14 Mon Sep 17 00:00:00 2001 From: Seblu <sebastien.luttringer@smartjog.com> Date: Mon, 14 Feb 2011 13:00:13 +0100 Subject: [PATCH] Alias now use OptionCOmmand --- cccli/command/alias.py | 64 +++++++++++++++++++++++++++--------------- 1 file changed, 41 insertions(+), 23 deletions(-) diff --git a/cccli/command/alias.py b/cccli/command/alias.py index f39163f..3b30d04 100644 --- a/cccli/command/alias.py +++ b/cccli/command/alias.py @@ -6,39 +6,57 @@ CloudControl alias related command ''' from cccli.exception import * -from cccli.command.command import Command +from cccli.command.command import OptionCommand +import re -class Command_alias(Command): +class Command_alias(OptionCommand): '''Show or create alias''' + def __init__(self, cli, argv0): + OptionCommand.__init__(self, cli, argv0) + self.set_usage("%prog [options] [name] [value]") + def __call__(self, argv): - if len(argv) == 1: - for n, v in self.cli.alias.items(): - self.printer.out("%s=%s"%(n, v)) - elif len(argv) == 2: - if argv[1] not in self.cli.alias: - raise cmdBadArgument(argv[1]) - self.printer.out("%s=%s"%(argv[1], self.cli.alias[argv[1]])) - elif len(argv) == 3: - self.cli.alias[argv[1]] = argv[2] - self.cli.alias.save(self.cli.settings.get("alias", "")) + # args parse + self.parse_args(argv) + _value = None + if len(self.args) == 0: + _alias = self.cli.alias.keys() + elif len(self.args) == 1: + _alias = self.args[0] + elif len(self.args) == 2: + _alias = self.args[0] + _value = self.args[1] else: raise cmdBadArgument() - - def usage(self): - return "Usage: alias [name] [value]" + # printing + if _value is None: + for a in _alias: + if a in self.cli.alias: + self.printer.out("%s \"%s\""%(a, re.sub("\"", "\\\"", self.cli.alias[a]))) + else: + self.printer.warn("No alias %s"%a) + # editing + else: + self.cli.alias[_alias] = _value + self.cli.alias.save(self.cli.settings.get("alias", "")) -class Command_unalias(Command): +class Command_unalias(OptionCommand): '''Remove an alias''' + def __init__(self, cli, argv0): + OptionCommand.__init__(self, cli, argv0) + self.set_usage("%prog [options] [name]") + def __call__(self, argv): - if len(argv) != 2: + # parse args + self.parse_args(argv) + if len(self.args) != 1: raise cmdBadArgument() - if argv[1] not in self.cli.alias: - raise cmdBadArgument("%s: No such alias"%argv[1]) - del self.cli.alias[argv[1]] + # check alias existance + if self.args[0] not in self.cli.alias: + raise cmdBadArgument("%s: No such alias"%self.args[0]) + # deleting aliases + del self.cli.alias[self.args[0]] self.cli.alias.save(self.cli.settings.get("alias", "")) - - def usage(self): - return "Usage: unalias [name]" -- GitLab