Commit 41093b1c authored by Seblu's avatar Seblu
Browse files

Aliases remplace Aliase

parent 58cd582b
Loading
Loading
Loading
Loading
+8 −8
Original line number Diff line number Diff line
@@ -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 *
@@ -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 = ""

@@ -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
@@ -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:
@@ -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) ]
+14 −8
Original line number Diff line number Diff line
@@ -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:
@@ -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):
@@ -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)
+4 −7
Original line number Diff line number Diff line
@@ -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"):
@@ -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")
@@ -80,6 +80,3 @@ class Alias(dict):
            for n,v in self.items():
                fparser.set("alias", n, v)
            fparser.write(open(filename, "w"))