From 4d841d18ac6567d66a72429027c3d53779d37846 Mon Sep 17 00:00:00 2001
From: Seblu <sebastien.luttringer@smartjog.com>
Date: Mon, 14 Feb 2011 20:16:18 +0100
Subject: [PATCH] update way of saving history and tagdisplay settings

---
 cccli/cli.py                | 2 +-
 cccli/command/expert.py     | 2 +-
 cccli/command/tagdisplay.py | 5 ++++-
 cccli/printer.py            | 4 ++++
 cccli/tagdisplay.py         | 4 ++--
 5 files changed, 12 insertions(+), 5 deletions(-)

diff --git a/cccli/cli.py b/cccli/cli.py
index b9877e5..418ff90 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 1ed92d2..9ab46be 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 cc0bcd6..884554d 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 ef36e68..5364d3e 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 50fced8..aeb624e 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),
-- 
GitLab