From 8e0e96da0134d83e3e086979dd1e86042bc8b785 Mon Sep 17 00:00:00 2001 From: meejah Date: Tue, 29 May 2018 15:51:59 -0600 Subject: [PATCH] improve user experience on config errors --- src/allmydata/scripts/tahoe_daemonize.py | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/allmydata/scripts/tahoe_daemonize.py b/src/allmydata/scripts/tahoe_daemonize.py index 3c511c9c6..e04408fc0 100644 --- a/src/allmydata/scripts/tahoe_daemonize.py +++ b/src/allmydata/scripts/tahoe_daemonize.py @@ -8,6 +8,7 @@ from allmydata.scripts.default_nodedir import _default_nodedir from allmydata.util import fileutil from allmydata.node import read_config from allmydata.util.encodingutil import listdir_unicode, quote_local_unicode_path +from allmydata.util.configutil import UnknownConfigError from twisted.application.service import Service @@ -125,8 +126,15 @@ class DaemonizeTheRealService(Service): except KeyError: raise ValueError("unknown nodetype %s" % self.nodetype) - srv = service_factory() - srv.setServiceParent(self.parent) + try: + srv = service_factory() + srv.setServiceParent(self.parent) + except UnknownConfigError as e: + sys.stderr.write("\nConfiguration error:\n{}\n\n".format(e)) + reactor.stop() + except Exception as e: + sys.stderr.write("\nError building service:\n{}\n\n".format(e)) + reactor.stop() from twisted.internet import reactor reactor.callWhenRunning(start)