2020-08-05 17:01:47 -04:00
|
|
|
#!/usr/bin/env python3
|
2013-07-02 12:04:04 -04:00
|
|
|
|
|
|
|
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__)
|
2013-07-02 12:04:04 -04:00
|
|
|
|
|
|
|
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)
|
2013-07-02 12:04:04 -04:00
|
|
|
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."))
|
2013-07-02 12:04:04 -04:00
|
|
|
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("----")
|
2013-07-02 12:04:04 -04:00
|
|
|
|
|
|
|
server.start(blocking = True)
|
|
|
|
|
|
|
|
if not args.quiet:
|
2020-08-03 16:54:33 -04:00
|
|
|
print("Shutting down")
|
2013-07-02 12:04:04 -04:00
|
|
|
|
|
|
|
if __name__ == "__main__":
|
|
|
|
main()
|