[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