diff --git a/RNS/Utilities/rnsd.py b/RNS/Utilities/rnsd.py index 46f837b..b286729 100755 --- a/RNS/Utilities/rnsd.py +++ b/RNS/Utilities/rnsd.py @@ -29,7 +29,7 @@ import time from RNS._version import __version__ -def program_setup(configdir, verbosity = 0, quietness = 0, service = False): +def program_setup(configdir, verbosity = 0, quietness = 0, service = False, interactive=False): targetverbosity = verbosity-quietness if service: @@ -47,8 +47,9 @@ def program_setup(configdir, verbosity = 0, quietness = 0, service = False): # RNS.Reticulum.get_instance().shared_instance_interface.server.daemon_threads = True RNS.log("Started rnsd version {version}".format(version=__version__), RNS.LOG_NOTICE) - while True: - time.sleep(1) + if interactive: import code; code.interact(local=globals()) + else: + while True: time.sleep(1) def main(): try: @@ -57,6 +58,7 @@ def main(): parser.add_argument('-v', '--verbose', action='count', default=0) parser.add_argument('-q', '--quiet', action='count', default=0) parser.add_argument('-s', '--service', action='store_true', default=False, help="rnsd is running as a service and should log to file") + parser.add_argument('-i', '--interactive', action='store_true', default=False, help="drop into interactive shell after initialisation") parser.add_argument("--exampleconfig", action='store_true', default=False, help="print verbose configuration example to stdout and exit") parser.add_argument("--version", action="version", version="rnsd {version}".format(version=__version__)) @@ -71,7 +73,7 @@ def main(): else: configarg = None - program_setup(configdir = configarg, verbosity=args.verbose, quietness=args.quiet, service=args.service) + program_setup(configdir = configarg, verbosity=args.verbose, quietness=args.quiet, service=args.service, interactive=args.interactive) except KeyboardInterrupt: print("")