From: Brian Warner 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/architecture.txt?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"):