From: Brian Warner <warner@lothar.com>
Date: Tue, 28 Aug 2007 02:23:50 +0000 (-0700)
Subject: node: change get_or_create_config to strip whitespace and accept a filemode= argument
X-Git-Url: https://git.rkrishnan.org/listings/vdrive/htmlfontify-example.html?a=commitdiff_plain;h=1428079a845063b0ea8804c9d5d7e3752ad34f5a;p=tahoe-lafs%2Ftahoe-lafs.git

node: change get_or_create_config to strip whitespace and accept a filemode= argument
---

diff --git a/src/allmydata/node.py b/src/allmydata/node.py
index 40f48da2..aec6a70f 100644
--- a/src/allmydata/node.py
+++ b/src/allmydata/node.py
@@ -78,7 +78,7 @@ class Node(service.MultiService):
                 return None
             raise
 
-    def get_or_create_config(self, name, default_fn, mode="w"):
+    def get_or_create_config(self, name, default_fn, mode="w", filemode=None):
         """Try to get the (string) contents of a config file, and return it.
         Any leading or trailing whitespace will be stripped from the data.
 
@@ -95,10 +95,15 @@ class Node(service.MultiService):
                 value = default_fn()
             fn = os.path.join(self.basedir, name)
             try:
-                open(fn, mode).write(value)
+                f = open(fn, mode)
+                f.write(value)
+                f.close()
+                if filemode is not None:
+                    os.chmod(fn, filemode)
             except EnvironmentError, e:
                 self.log("Unable to write config file '%s'" % fn)
                 self.log(e)
+            value = value.strip()
         return value
 
     def write_config(self, name, value, mode="w"):