diff --git a/src/Config.py b/src/Config.py index a73143db..e811b512 100644 --- a/src/Config.py +++ b/src/Config.py @@ -165,6 +165,8 @@ class Config(object): action.add_argument('message', help='Message to sign') action.add_argument('privatekey', help='Private key') + action = self.subparsers.add_parser("getConfig", help='Return json-encoded info') + # Config parameters self.parser.add_argument('--verbose', help='More detailed logging', action='store_true') self.parser.add_argument('--debug', help='Debug mode', action='store_true') @@ -408,4 +410,29 @@ class Config(object): open(self.config_file, "w").write("\n".join(lines)) + def getServerInfo(self): + from Plugin import PluginManager + + info = { + "platform": sys.platform, + "fileserver_ip": self.fileserver_ip, + "fileserver_port": self.fileserver_port, + "ui_ip": self.ui_ip, + "ui_port": self.ui_port, + "version": self.version, + "rev": self.rev, + "language": self.language, + "debug": self.debug, + "plugins": PluginManager.plugin_manager.plugin_names + } + + try: + info["ip_external"] = sys.modules["main"].file_server.port_opened + info["tor_enabled"] = sys.modules["main"].file_server.tor_manager.enabled + info["tor_status"] = sys.modules["main"].file_server.tor_manager.status + except: + pass + + return info + config = Config(sys.argv) diff --git a/src/main.py b/src/main.py index e74bc71c..4014d19a 100644 --- a/src/main.py +++ b/src/main.py @@ -481,6 +481,10 @@ class Actions(object): except Exception, err: print "Unknown response (%s): %s" % (err, res) + def getConfig(self): + import json + print json.dumps(config.getServerInfo(), indent=2, ensure_ascii=False) + actions = Actions() # Starts here when running zeronet.py