[Debian-live-changes] r2448 - dists/trunk/live-magic/livemagic/model

lamby-guest at alioth.debian.org lamby-guest at alioth.debian.org
Tue Jul 10 16:14:57 UTC 2007


Author: lamby-guest
Date: 2007-07-10 16:14:57 +0000 (Tue, 10 Jul 2007)
New Revision: 2448

Modified:
   dists/trunk/live-magic/livemagic/model/key_var_config_file.py
   dists/trunk/live-magic/livemagic/model/live_helper_configuration.py
Log:


Modified: dists/trunk/live-magic/livemagic/model/key_var_config_file.py
===================================================================
--- dists/trunk/live-magic/livemagic/model/key_var_config_file.py	2007-07-10 16:02:47 UTC (rev 2447)
+++ dists/trunk/live-magic/livemagic/model/key_var_config_file.py	2007-07-10 16:14:57 UTC (rev 2448)
@@ -76,15 +76,21 @@
                 # Mutate to file type
                 val_type = self.spec.get(key, 'string')
                 typed_val = {
+                    'int' : self._parse_int,
+                    'list' : self._parse_list,
                     'string' : lambda k, v: v,
-                    'int' : self._parse_int,
-                    'boolean' : lambda k, v: {'enabled' : True, 'disabled' : False, 'yes' : True, 'no' : False}[v],
-                    'list' : lambda k, v: list_observer(v.split(' '), self._stale.add, k),
+                    'boolean' : lambda k, v: {'enabled' : True, 'disabled' : False, 'yes' : True, 'no' : False}.get(v, None),
                 }[val_type](key, val)
                 self.__dict__[key] = typed_val
 
             lineno += 1
 
+    def _parse_list(self, k, v):
+        if v == '':
+            return list_observer([], self._stale.add, k)
+        else:
+            return list_observer(v.split(' '), self._stale.add, k)
+
     def _parse_int(self, k, v):
         if v == '':
             return None
@@ -104,20 +110,27 @@
             lines = f.readlines()
 
             for k in self._stale:
-                # Escape value
                 val = getattr(self, k)
 
+                # Escape value
                 if type(val) in (list, list_observer):
                     for from_, to in self.escapes:
                         val = map(lambda x: x.replace(from_, to), val)
-                    line = '%s="%s"\n' % (k, " ".join(val))
-                else:
+                    val = map(str.strip, val)
+                elif type(val) is str:
                     for from_, to in self.escapes:
                         val = val.replace(from_, to)
-                    line = '%s="%s"\n' % (k, val)
 
-                print "saving", k, "with line", line
+                # Format value depending on its type
+                line_value = {
+                    list : lambda v: " ".join(val),
+                    bool : lambda v: {True: 'enabled', False: 'disabled'}.get(val, None),
+                    str : lambda v: v,
+                    type(None) : lambda v: "",
+                }[type(val)](val)
 
+                line = '%s="%s"\n' % (k, line_value)
+
                 try:
                     # Overwrite original line in file
                     lines[self._line_numbers[k] - 1] = line

Modified: dists/trunk/live-magic/livemagic/model/live_helper_configuration.py
===================================================================
--- dists/trunk/live-magic/livemagic/model/live_helper_configuration.py	2007-07-10 16:02:47 UTC (rev 2447)
+++ dists/trunk/live-magic/livemagic/model/live_helper_configuration.py	2007-07-10 16:14:57 UTC (rev 2448)
@@ -2,7 +2,7 @@
 import tempfile
 import yaml
 
-from os.path import join
+from os.path import join, dirname
 
 from key_var_config_file import KeyVarConfigFile
 from folder_of_files import FolderOfFiles
@@ -16,7 +16,8 @@
         self._load_observers = []
         self.first_load = True
 
-        self.spec = yaml.load(file("spec.yaml").read())
+        yaml_filename = join(dirname(__file__), 'spec.yaml')
+        self.spec = yaml.load(file(yaml_filename).read())
 
         if dir is None:
             self.new()




More information about the Debian-live-changes mailing list