mirror of
https://github.com/tahoe-lafs/tahoe-lafs.git
synced 2025-02-20 17:52:50 +00:00
node.py: change get_or_create_config() to accept a function
This commit is contained in:
parent
56afda11d1
commit
89ceb49309
@ -103,6 +103,8 @@ class Client(node.Node, Referenceable):
|
||||
def tub_ready(self):
|
||||
self.log("tub_ready")
|
||||
|
||||
# we use separate get_config/write_config here because we want to
|
||||
# update the connection hints each time.
|
||||
my_old_name = None
|
||||
my_old_furl = self.get_config("myself.furl")
|
||||
if my_old_furl is not None:
|
||||
|
@ -78,14 +78,21 @@ class Node(service.MultiService):
|
||||
return None
|
||||
raise
|
||||
|
||||
def get_or_create_config(self, name, default, mode="w"):
|
||||
"""Try to get the (string) contents of a config file. If the file
|
||||
does not exist, create it with the given default value, and return
|
||||
the default value. Any leading or trailing whitespace will be
|
||||
stripped from the data."""
|
||||
def get_or_create_config(self, name, default_fn, mode="w"):
|
||||
"""Try to get the (string) contents of a config file, and return it.
|
||||
Any leading or trailing whitespace will be stripped from the data.
|
||||
|
||||
If the file does not exist, try to create it using default_fn, and
|
||||
then return the value that was written. If 'default_fn' is a string,
|
||||
use it as a default value. If not, treat it as a 0-argument callable
|
||||
which is expected to return a string.
|
||||
"""
|
||||
value = self.get_config(name)
|
||||
if value is None:
|
||||
value = default
|
||||
if isinstance(default_fn, (str, unicode)):
|
||||
value = default_fn
|
||||
else:
|
||||
value = default_fn()
|
||||
fn = os.path.join(self.basedir, name)
|
||||
try:
|
||||
open(fn, mode).write(value)
|
||||
|
Loading…
x
Reference in New Issue
Block a user