diff --git a/src/Config.py b/src/Config.py index bc5d82a1..32d48d65 100644 --- a/src/Config.py +++ b/src/Config.py @@ -385,10 +385,17 @@ class Config(object): for key, val in config.items(section): if section != "global": # If not global prefix key with section key = section + "_" + key + + to_end = key == "open_browser" # Prefer config value over argument + argv_extend = ["--%s" % key] if val: for line in val.strip().split("\n"): # Allow multi-line values - argv.insert(1, line) - argv.insert(1, "--%s" % key) + argv_extend.append(line) + + if to_end: + argv = argv[:-2] + argv_extend + argv[-2:] + else: + argv = argv[:1] + argv_extend + argv[1:] return argv # Expose arguments as class attributes diff --git a/src/Ui/UiServer.py b/src/Ui/UiServer.py index ecd53a0a..9026c4e8 100644 --- a/src/Ui/UiServer.py +++ b/src/Ui/UiServer.py @@ -137,15 +137,18 @@ class UiServer: self.log.info("Web interface: http://%s:%s/" % (config.ui_ip, config.ui_port)) self.log.info("--------------------------------------") - if config.open_browser: + if config.open_browser and config.open_browser != "False": logging.info("Opening browser: %s...", config.open_browser) import webbrowser - if config.open_browser == "default_browser": - browser = webbrowser.get() - else: - browser = webbrowser.get(config.open_browser) - url = "http://%s:%s/%s" % (config.ui_ip if config.ui_ip != "*" else "127.0.0.1", config.ui_port, config.homepage) - gevent.spawn_later(0.3, browser.open, url, new=2) + try: + if config.open_browser == "default_browser": + browser = webbrowser.get() + else: + browser = webbrowser.get(config.open_browser) + url = "http://%s:%s/%s" % (config.ui_ip if config.ui_ip != "*" else "127.0.0.1", config.ui_port, config.homepage) + gevent.spawn_later(0.3, browser.open, url, new=2) + except Exception as err: + print "Error starting browser: %s" % err self.server = WSGIServer((self.ip, self.port), handler, handler_class=UiWSGIHandler, log=self.log) self.server.sockets = {} diff --git a/src/main.py b/src/main.py index 1c5f432f..469e27fc 100644 --- a/src/main.py +++ b/src/main.py @@ -59,14 +59,17 @@ if config.action == "main": lock.write("%s" % os.getpid()) except IOError as err: print "Can't open lock file, your ZeroNet client is probably already running, exiting... (%s)" % err - if config.open_browser: + if config.open_browser and config.open_browser != "False": print "Opening browser: %s...", config.open_browser import webbrowser - if config.open_browser == "default_browser": - browser = webbrowser.get() - else: - browser = webbrowser.get(config.open_browser) - browser.open("http://%s:%s/%s" % (config.ui_ip if config.ui_ip != "*" else "127.0.0.1", config.ui_port, config.homepage), new=2) + try: + if config.open_browser == "default_browser": + browser = webbrowser.get() + else: + browser = webbrowser.get(config.open_browser) + browser.open("http://%s:%s/%s" % (config.ui_ip if config.ui_ip != "*" else "127.0.0.1", config.ui_port, config.homepage), new=2) + except Exception as err: + print "Error starting browser: %s" % err sys.exit() if os.path.isfile("%s/debug.log" % config.log_dir): # Simple logrotate