The dialog also informs about the risk of unauthorized strangers (mis)using the printer if an unsecured OctoPrint installation is made available on the internet.
65 lines
2.4 KiB
Python
Executable file
65 lines
2.4 KiB
Python
Executable file
#!/usr/bin/env python
|
|
import sys
|
|
from octoprint.daemon import Daemon
|
|
from octoprint.server import Server
|
|
|
|
class Main(Daemon):
|
|
def __init__(self, pidfile, configfile, basedir, host, port, debug):
|
|
Daemon.__init__(self, pidfile)
|
|
|
|
self._configfile = configfile
|
|
self._basedir = basedir
|
|
self._host = host
|
|
self._port = port
|
|
self._debug = debug
|
|
|
|
def run(self):
|
|
octoprint = Server(self._configfile, self._basedir, self._host, self._port, self._debug)
|
|
octoprint.run()
|
|
|
|
def main():
|
|
import argparse
|
|
|
|
parser = argparse.ArgumentParser(prog="run")
|
|
|
|
parser.add_argument("-d", "--debug", action="store_true", dest="debug",
|
|
help="Enable debug mode")
|
|
|
|
parser.add_argument("--host", action="store", type=str, dest="host",
|
|
help="Specify the host on which to bind the server")
|
|
parser.add_argument("--port", action="store", type=int, dest="port",
|
|
help="Specify the port on which to bind the server")
|
|
|
|
parser.add_argument("-c", "--config", action="store", dest="config",
|
|
help="Specify the config file to use. OctoPrint needs to have write access for the settings dialog to work. Defaults to ~/.octoprint/config.yaml")
|
|
parser.add_argument("-b", "--basedir", action="store", dest="basedir",
|
|
help="Specify the basedir to use for uploads, timelapses etc. OctoPrint needs to have write access. Defaults to ~/.octoprint")
|
|
|
|
parser.add_argument("--daemon", action="store", type=str, choices=["start", "stop", "restart"],
|
|
help="Daemonize/control daemonized OctoPrint instance (only supported under Linux right now)")
|
|
parser.add_argument("--pid", action="store", type=str, dest="pidfile", default="/tmp/octoprint.pid",
|
|
help="Pidfile to use for daemonizing, defaults to /tmp/octoprint.pid")
|
|
|
|
parser.add_argument("--iknowwhatimdoing", action="store_true", dest="allowRoot",
|
|
help="Allow OctoPrint to run as user root")
|
|
|
|
args = parser.parse_args()
|
|
|
|
if args.daemon:
|
|
if sys.platform == "darwin" or sys.platform == "win32":
|
|
print >> sys.stderr, "Sorry, daemon mode is only supported under Linux right now"
|
|
sys.exit(2)
|
|
|
|
daemon = Main(args.pidfile, args.config, args.basedir, args.host, args.port, args.debug)
|
|
if "start" == args.daemon:
|
|
daemon.start()
|
|
elif "stop" == args.daemon:
|
|
daemon.stop()
|
|
elif "restart" == args.daemon:
|
|
daemon.restart()
|
|
else:
|
|
octoprint = Server(args.config, args.basedir, args.host, args.port, args.debug, args.allowRoot)
|
|
octoprint.run()
|
|
|
|
if __name__ == "__main__":
|
|
main()
|