Loading cccli/cli.py +8 −8 Original line number Diff line number Diff line Loading @@ -9,7 +9,7 @@ CloudControl CLI main module import cccli from cccli.exception import * from cccli.printer import Printer, color from cccli.commands import Commands, Alias from cccli.commands import Commands, Aliases from cccli.handler import CliHandler from cccli.tagdisplay import TagDisplay from sjrpc.core.exceptions import * Loading @@ -27,7 +27,7 @@ class Cli(object): def __init__(self, settings): self.settings = settings self.rpc = None self.alias = Alias() self.aliases = Aliases() self.tagdisplay = TagDisplay() self.prompt = "" Loading Loading @@ -59,8 +59,8 @@ class Cli(object): self.commands = Commands(self) self.printer.debug("Loaded commands: %d"%len(self.commands)) # load alias self.alias.load(self.settings.get("alias", "")) self.printer.debug("Loaded aliases: %d"%len(self.alias)) self.aliases.load(self.settings.get("alias", None)) self.printer.debug("Loaded aliases: %d"%len(self.aliases)) # load tagdisplay self.tagdisplay.load(self.settings.get("tagdisplay", "")) # connecting Loading Loading @@ -111,9 +111,9 @@ class Cli(object): if len(argv) == 0: continue # alias subsitution if argv[0] in self.alias: if argv[0] in self.aliases: oldargv = argv[1:] argv = shlex.split(self.alias[argv[0]]) argv = shlex.split(self.aliases[argv[0]]) argv.extend(oldargv) self._exec_command(argv) except KeyboardInterrupt: Loading Loading @@ -177,5 +177,5 @@ class Cli(object): if len(texte) > 0 and texte[0] == "!": return () if len(texte) > 0 and texte[0] == "?": return [ "?%s"%c for c in list(self.commands) + self.alias.keys() if c.startswith(texte[1:]) ] return [ c for c in list(self.commands) + self.alias.keys() if c.startswith(texte) ] return [ "?%s"%c for c in list(self.commands) + self.aliases.keys() if c.startswith(texte[1:]) ] return [ c for c in list(self.commands) + self.aliases.keys() if c.startswith(texte) ] cccli/command/alias.py +14 −8 Original line number Diff line number Diff line Loading @@ -21,7 +21,7 @@ class Command_alias(OptionCommand): self.parse_args(argv) _value = None if len(self.args) == 0: _alias = self.cli.alias.keys() _alias = self.cli.aliases.keys() elif len(self.args) == 1: _alias = [ self.args[0] ] elif len(self.args) == 2: Loading @@ -32,14 +32,17 @@ class Command_alias(OptionCommand): # 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]))) if a in self.cli.aliases: self.printer.out("%s \"%s\""%(a, re.sub("\"", "\\\"", self.cli.aliases[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", "")) self.cli.aliases[_alias] = _value try: self.cli.aliases.save(self.cli.settings.get("alias", None)) except Exception as e: raise cmdError(e) class Command_unalias(OptionCommand): Loading @@ -55,8 +58,11 @@ class Command_unalias(OptionCommand): if len(self.args) != 1: raise cmdBadArgument() # check alias existance if self.args[0] not in self.cli.alias: if self.args[0] not in self.cli.aliases: 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", "")) del self.cli.aliases[self.args[0]] try: self.cli.aliases.save(self.cli.settings.get("alias", None)) except Exception as e: raise cmdError(e) cccli/commands.py +4 −7 Original line number Diff line number Diff line Loading @@ -59,11 +59,11 @@ class Commands(object): h = self.cmds[argv0](self.cli, argv0).help() return h if h is not None else "" class Alias(dict): ''' Alias wrapper''' class Aliases(dict): ''' Aliases manager''' def load(self, filename): '''load alias from file''' if os.access(filename, os.R_OK): if filename is not None: fparser = ConfigParser.RawConfigParser() fparser.read(filename) if fparser.has_section("alias"): Loading @@ -72,7 +72,7 @@ class Alias(dict): def save(self, filename): '''save alias on file''' if os.access(filename, os.R_OK or os.W_OK): if filename is not None: fparser = ConfigParser.RawConfigParser() fparser.read(filename) fparser.remove_section("alias") Loading @@ -80,6 +80,3 @@ class Alias(dict): for n,v in self.items(): fparser.set("alias", n, v) fparser.write(open(filename, "w")) Loading
cccli/cli.py +8 −8 Original line number Diff line number Diff line Loading @@ -9,7 +9,7 @@ CloudControl CLI main module import cccli from cccli.exception import * from cccli.printer import Printer, color from cccli.commands import Commands, Alias from cccli.commands import Commands, Aliases from cccli.handler import CliHandler from cccli.tagdisplay import TagDisplay from sjrpc.core.exceptions import * Loading @@ -27,7 +27,7 @@ class Cli(object): def __init__(self, settings): self.settings = settings self.rpc = None self.alias = Alias() self.aliases = Aliases() self.tagdisplay = TagDisplay() self.prompt = "" Loading Loading @@ -59,8 +59,8 @@ class Cli(object): self.commands = Commands(self) self.printer.debug("Loaded commands: %d"%len(self.commands)) # load alias self.alias.load(self.settings.get("alias", "")) self.printer.debug("Loaded aliases: %d"%len(self.alias)) self.aliases.load(self.settings.get("alias", None)) self.printer.debug("Loaded aliases: %d"%len(self.aliases)) # load tagdisplay self.tagdisplay.load(self.settings.get("tagdisplay", "")) # connecting Loading Loading @@ -111,9 +111,9 @@ class Cli(object): if len(argv) == 0: continue # alias subsitution if argv[0] in self.alias: if argv[0] in self.aliases: oldargv = argv[1:] argv = shlex.split(self.alias[argv[0]]) argv = shlex.split(self.aliases[argv[0]]) argv.extend(oldargv) self._exec_command(argv) except KeyboardInterrupt: Loading Loading @@ -177,5 +177,5 @@ class Cli(object): if len(texte) > 0 and texte[0] == "!": return () if len(texte) > 0 and texte[0] == "?": return [ "?%s"%c for c in list(self.commands) + self.alias.keys() if c.startswith(texte[1:]) ] return [ c for c in list(self.commands) + self.alias.keys() if c.startswith(texte) ] return [ "?%s"%c for c in list(self.commands) + self.aliases.keys() if c.startswith(texte[1:]) ] return [ c for c in list(self.commands) + self.aliases.keys() if c.startswith(texte) ]
cccli/command/alias.py +14 −8 Original line number Diff line number Diff line Loading @@ -21,7 +21,7 @@ class Command_alias(OptionCommand): self.parse_args(argv) _value = None if len(self.args) == 0: _alias = self.cli.alias.keys() _alias = self.cli.aliases.keys() elif len(self.args) == 1: _alias = [ self.args[0] ] elif len(self.args) == 2: Loading @@ -32,14 +32,17 @@ class Command_alias(OptionCommand): # 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]))) if a in self.cli.aliases: self.printer.out("%s \"%s\""%(a, re.sub("\"", "\\\"", self.cli.aliases[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", "")) self.cli.aliases[_alias] = _value try: self.cli.aliases.save(self.cli.settings.get("alias", None)) except Exception as e: raise cmdError(e) class Command_unalias(OptionCommand): Loading @@ -55,8 +58,11 @@ class Command_unalias(OptionCommand): if len(self.args) != 1: raise cmdBadArgument() # check alias existance if self.args[0] not in self.cli.alias: if self.args[0] not in self.cli.aliases: 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", "")) del self.cli.aliases[self.args[0]] try: self.cli.aliases.save(self.cli.settings.get("alias", None)) except Exception as e: raise cmdError(e)
cccli/commands.py +4 −7 Original line number Diff line number Diff line Loading @@ -59,11 +59,11 @@ class Commands(object): h = self.cmds[argv0](self.cli, argv0).help() return h if h is not None else "" class Alias(dict): ''' Alias wrapper''' class Aliases(dict): ''' Aliases manager''' def load(self, filename): '''load alias from file''' if os.access(filename, os.R_OK): if filename is not None: fparser = ConfigParser.RawConfigParser() fparser.read(filename) if fparser.has_section("alias"): Loading @@ -72,7 +72,7 @@ class Alias(dict): def save(self, filename): '''save alias on file''' if os.access(filename, os.R_OK or os.W_OK): if filename is not None: fparser = ConfigParser.RawConfigParser() fparser.read(filename) fparser.remove_section("alias") Loading @@ -80,6 +80,3 @@ class Alias(dict): for n,v in self.items(): fparser.set("alias", n, v) fparser.write(open(filename, "w"))