diff options
Diffstat (limited to 'src/leap/base/pluggableconfig.py')
| -rw-r--r-- | src/leap/base/pluggableconfig.py | 17 | 
1 files changed, 17 insertions, 0 deletions
| diff --git a/src/leap/base/pluggableconfig.py b/src/leap/base/pluggableconfig.py index b8615ad8..34c1e060 100644 --- a/src/leap/base/pluggableconfig.py +++ b/src/leap/base/pluggableconfig.py @@ -180,6 +180,8 @@ class PluggableConfig(object):          self.adaptors = adaptors          self.types = types          self._format = format +        self.mtime = None +        self.dirty = False      @property      def option_dict(self): @@ -319,6 +321,13 @@ class PluggableConfig(object):          serializable = self.prep_value(config)          adaptor.write(serializable, filename) +        if self.mtime: +            self.touch_mtime(filename) + +    def touch_mtime(self, filename): +        mtime = self.mtime +        os.utime(filename, (mtime, mtime)) +      def deserialize(self, string=None, fromfile=None, format=None):          """          load configuration from a file or string @@ -364,6 +373,12 @@ class PluggableConfig(object):              content = _try_deserialize()          return content +    def set_dirty(self): +        self.dirty = True + +    def is_dirty(self): +        return self.dirty +      def load(self, *args, **kwargs):          """          load from string or file @@ -373,6 +388,8 @@ class PluggableConfig(object):          """          string = args[0] if args else None          fromfile = kwargs.get("fromfile", None) +        mtime = kwargs.pop("mtime", None) +        self.mtime = mtime          content = None          # start with defaults, so we can | 
