diff --git a/cccli/cli.py b/cccli/cli.py index b9877e54cc7672d3d0350321a0093dd681975405..418ff90aa9af912ca4012175765c0878bc4929ca 100644 --- a/cccli/cli.py +++ b/cccli/cli.py @@ -70,7 +70,7 @@ class Cli(object): # parsing self._parse() # save history - self.printer.history.write(self.settings.get("history", "")) + self.printer.history.write(self.settings.get("history", None)) def _connect(self): '''Connect to a cloud control server''' diff --git a/cccli/command/expert.py b/cccli/command/expert.py index 1ed92d2e93fa1f3d6f435f2dcc35dfed6fdf7953..9ab46bebd8f9e0cd2859c1773d91892acd205e97 100644 --- a/cccli/command/expert.py +++ b/cccli/command/expert.py @@ -26,7 +26,7 @@ class Command_expert(Command): c = code.InteractiveConsole(local) c.interact("Use Ctrl+D to go back in CLI. Type dir() to see variables.") finally: - self.printer.history.write(self.cli.settings.get("expert", "")) + self.printer.history.write(self.cli.settings.get("expert", None)) self.printer.history.load(h) diff --git a/cccli/command/tagdisplay.py b/cccli/command/tagdisplay.py index cc0bcd60285b270431d188198a11e4261d006855..884554d997593e8f3d71be3b3b32ffa4075ad2e5 100644 --- a/cccli/command/tagdisplay.py +++ b/cccli/command/tagdisplay.py @@ -107,4 +107,7 @@ class Command_tagdisplay(OptionCommand): del db[tagname] else: db[tagname] = value - self.cli.tagdisplay.save(self.cli.settings.get("tagdisplay", "")) + try: + self.cli.tagdisplay.save(self.cli.settings.get("tagdisplay", None)) + except Exception as e: + raise cmdError(e) diff --git a/cccli/printer.py b/cccli/printer.py index ef36e6857089c5011243061d416e7c62926b687c..5364d3e3067f76daac612c3cc75e957dbce5e585 100644 --- a/cccli/printer.py +++ b/cccli/printer.py @@ -198,6 +198,8 @@ class History(object): def read(self, path): '''Load history from a file''' self.clear() + if path is None: + return try: self.readline.read_history_file(path) except IOError: @@ -205,6 +207,8 @@ class History(object): def write(self, path): '''Save history into path''' + if path is None: + return try: self.readline.write_history_file(path) except IOError: diff --git a/cccli/tagdisplay.py b/cccli/tagdisplay.py index 50fced81d56656dbe9ce897762f1b894f8fb997d..aeb624e239cc950045439991ec9b8cbb893fa79f 100644 --- a/cccli/tagdisplay.py +++ b/cccli/tagdisplay.py @@ -26,7 +26,7 @@ class TagDisplay(object): def load(self, filename): '''load tagdisplay settings from file''' - if os.access(filename, os.R_OK): + if filename is not None: fparser = ConfigParser.RawConfigParser() fparser.read(filename) self.__init__() @@ -41,7 +41,7 @@ class TagDisplay(object): def save(self, filename): '''save tagdisplay settings on file''' - if os.access(filename, os.R_OK or os.W_OK): + if filename is not None: fparser = ConfigParser.RawConfigParser() fparser.read(filename) for n,d in (("type", self.tagtype), ("color", self.tagcolor),