|
- #!/usr/bin/env python3
-
- import nilmrun.server
- import argparse
- import os
- import socket
-
- def main():
- """Main entry point for the 'nilmrun-server' command line script"""
-
- parser = argparse.ArgumentParser(
- description = 'Run the NilmRun server',
- formatter_class = argparse.ArgumentDefaultsHelpFormatter)
- parser.add_argument("-v", "--version", action="version",
- version=nilmrun.__version__)
-
- group = parser.add_argument_group("Standard options")
- group.add_argument('-a', '--address',
- help = 'Only listen on the given address',
- default = '0.0.0.0')
- group.add_argument('-p', '--port', help = 'Listen on the given port',
- type = int, default = 12381)
- group.add_argument('-q', '--quiet', help = 'Silence output',
- action = 'store_true')
- group.add_argument('-t', '--traceback',
- help = 'Provide tracebacks in client errors',
- action = 'store_true', default = False)
-
- args = parser.parse_args()
-
- # Configure the server
- if args.quiet:
- embedded = True
- else:
- embedded = False
- server = nilmrun.server.Server(host = args.address,
- port = args.port,
- force_traceback = args.traceback)
-
- # Print info
- if not args.quiet:
- print("NilmRun version: %s" % nilmrun.__version__)
- print(("Note: This server does not do any authentication! " +
- "Anyone who can connect can run arbitrary commands."))
- if args.address == '0.0.0.0' or args.address == '::':
- host = socket.getfqdn()
- else:
- host = args.address
- print("Server URL: http://%s:%d/" % ( host, args.port))
- print("----")
-
- server.start(blocking = True)
-
- if not args.quiet:
- print("Shutting down")
-
- if __name__ == "__main__":
- main()
|