Skip to content
Snippets Groups Projects
Commit 41093b1c authored by Seblu's avatar Seblu
Browse files

Aliases remplace Aliase

parent 58cd582b
No related branches found
No related tags found
No related merge requests found
......@@ -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) ]
......@@ -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)
......@@ -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"))
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment