nilmrun/scripts/nilmrun_server.py

59 lines
1.9 KiB
Python
Raw Permalink Normal View History

#!/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',
2020-08-05 16:59:56 -04:00
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',
2013-07-04 13:49:15 -04:00
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:
2020-08-03 16:54:33 -04:00
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
2020-08-03 16:54:33 -04:00
print("Server URL: http://%s:%d/" % ( host, args.port))
print("----")
server.start(blocking = True)
if not args.quiet:
2020-08-03 16:54:33 -04:00
print("Shutting down")
if __name__ == "__main__":
main()