git://git.onelab.eu
/
sface.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
4d4d8e5
)
fix save_config for fields that were not in sfi_config before saving
author
Barış Metin
<Talip-Baris.Metin@sophia.inria.fr>
Sat, 11 Sep 2010 02:34:45 +0000
(
04:34
+0200)
committer
Barış Metin
<Talip-Baris.Metin@sophia.inria.fr>
Sat, 11 Sep 2010 02:34:45 +0000
(
04:34
+0200)
sface/config.py
patch
|
blob
|
history
diff --git
a/sface/config.py
b/sface/config.py
index
cb29cbb
..
fdede6e
100644
(file)
--- a/
sface/config.py
+++ b/
sface/config.py
@@
-38,6
+38,11
@@
class Config:
if tuple[1]==sfi: return tuple[0]
return None
if tuple[1]==sfi: return tuple[0]
return None
+ def sfi_name(self, field):
+ for tuple in Config.supported:
+ if tuple[0] == field: return tuple[1]
+ return None
+
def field_default (self, field):
for tuple in Config.supported:
if tuple[0]==field: return tuple[2]
def field_default (self, field):
for tuple in Config.supported:
if tuple[0]==field: return tuple[2]
@@
-84,33
+89,45
@@
class Config:
if self.debug:
print msg
for k in self.fields():
if self.debug:
print msg
for k in self.fields():
- print "%-20s: %r"%(k,
getattr(self,
k))
+ print "%-20s: %r"%(k,
self.get(
k))
def save_config(self):
configfile = self.filename()
tmpfile = configfile + ".tmp"
out = open(tmpfile, "w")
def save_config(self):
configfile = self.filename()
tmpfile = configfile + ".tmp"
out = open(tmpfile, "w")
- lineno=0
- fields=self.fields()
+ lineno = 0
+ written_fields = []
+ fields = self.fields()
for line in open(configfile):
lineno += 1
try:
sfi, val = line.split('=')
sfi = sfi.strip()
val = val.strip()
for line in open(configfile):
lineno += 1
try:
sfi, val = line.split('=')
sfi = sfi.strip()
val = val.strip()
- field
=
self.sfi_field(sfi)
+ field
=
self.sfi_field(sfi)
if field:
if field:
- newval=getattr(self,field)
- if not self.is_bool_field(field): newval="'%s'"%newval
+ written_fields.append(field)
+ newval = self.get(field)
+ if not self.is_bool_field(field):
+ newval="'%s'"%newval
line = "%s = %s\n" % (sfi, newval)
except:
if self.debug:
import traceback
print 'line',lineno,'ignored',line
out.write(line)
line = "%s = %s\n" % (sfi, newval)
except:
if self.debug:
import traceback
print 'line',lineno,'ignored',line
out.write(line)
- out.close()
+ # append other field in the end
+ new_fields = [f for f in fields if f not in written_fields]
+ for field in new_fields:
+ sfi = self.sfi_name(field)
+ val = self.get(field)
+ if not self.is_bool_field(field):
+ val="'%s'" % val
+ out.write("%s = %s\n" % (sfi, val))
+
+ out.close()
os.unlink(configfile)
os.rename(tmpfile, configfile)
os.unlink(configfile)
os.rename(tmpfile, configfile)