|
10 | 10 | import glob
|
11 | 11 | import subprocess
|
12 | 12 | import os
|
13 |
| -import argparse |
14 | 13 | import webbrowser
|
15 | 14 | import nzbhydra
|
16 | 15 |
|
|
28 | 27 | import nzbhydra.config as config
|
29 | 28 |
|
30 | 29 | import requests
|
| 30 | +import configargparse |
31 | 31 |
|
32 | 32 | requests.packages.urllib3.disable_warnings()
|
33 | 33 |
|
@@ -164,6 +164,7 @@ def run(arguments):
|
164 | 164 |
|
165 | 165 | host = config.settings.main.host if arguments.host is None else arguments.host
|
166 | 166 | port = config.settings.main.port if arguments.port is None else arguments.port
|
| 167 | + nzbhydra.urlBase = config.settings.main.urlBase if arguments.urlbase is None else arguments.urlbase |
167 | 168 |
|
168 | 169 | socksproxy = config.settings.main.socksProxy if arguments.socksproxy is None else arguments.socksproxy
|
169 | 170 | if socksproxy:
|
@@ -196,6 +197,8 @@ def run(arguments):
|
196 | 197 | f.host = config.settings.main.host
|
197 | 198 | f.port = port
|
198 | 199 | f.scheme = "https" if config.settings.main.ssl else "http"
|
| 200 | + if nzbhydra.urlBase is not None: |
| 201 | + f.path = nzbhydra.urlBase + "/" |
199 | 202 | logger.notice("Starting web app on %s:%d" % (f.host, port))
|
200 | 203 | if not arguments.nobrowser and config.settings.main.startupBrowser:
|
201 | 204 | if arguments.restarted:
|
@@ -225,18 +228,19 @@ def _stop_worker_threads():
|
225 | 228 |
|
226 | 229 | if __name__ == '__main__':
|
227 | 230 |
|
228 |
| - parser = argparse.ArgumentParser(description='NZBHydra') |
229 |
| - parser.add_argument('--config', action='store', help='Settings file to load', default="settings.cfg") |
230 |
| - parser.add_argument('--database', action='store', help='Database file to load', default="nzbhydra.db") |
| 231 | + parser = configargparse.ArgParser(description='NZBHydra') |
| 232 | + parser.add_argument('--config', action='store', env_var="hydra_config", help='Settings file to load. Can also be set using the environment variable "hydra_config"', default="settings.cfg") |
| 233 | + parser.add_argument('--database', action='store', env_var="hydra_database", help='Database file to load. Can also be set using the environment variable "hydra_database"', default="nzbhydra.db") |
231 | 234 | parser.add_argument('--logfile', action='store', help='Log file. If set overwrites config value', default=None)
|
232 |
| - parser.add_argument('--host', '-H', action='store', help='Host to run on') |
233 |
| - parser.add_argument('--port', '-p', action='store', help='Port to run on', type=int) |
234 |
| - parser.add_argument('--nobrowser', action='store_true', help='Don\'t open URL on startup', default=False) |
| 235 | + parser.add_argument('--host', '-H', action='store', env_var="hydra_host", help='Host to run on. Can also be set using the environment variable "hydra_host"') |
| 236 | + parser.add_argument('--port', '-p', action='store', env_var="hydra_port", help='Port to run on. Can also be set using the environment variable "hydra_port"', type=int) |
| 237 | + parser.add_argument('--urlbase', '-u', action='store', env_var="hydra_urlbase", help='URL base (e.g. "/nzbhydra"). Can also be set using the environment variable "hydra_urlbase"', default=None) |
| 238 | + parser.add_argument('--nobrowser', action='store_true', env_var="hydra_nobrowser", help='Don\'t open URL on startup', default=False) |
235 | 239 | parser.add_argument('--daemon', '-D', action='store_true', help='Run as daemon. *nix only', default=False)
|
236 | 240 | parser.add_argument('--pidfile', action='store', help='PID file. Only relevant with daemon argument', default="nzbhydra.pid")
|
237 | 241 | parser.add_argument('--quiet', '-q', action='store_true', help='Quiet (no output)', default=False)
|
238 |
| - parser.add_argument('--restarted', action='store_true', help=argparse.SUPPRESS, default=False) |
239 |
| - parser.add_argument('--clearloganddb', action='store_true', help=argparse.SUPPRESS, default=False) |
| 242 | + parser.add_argument('--restarted', action='store_true', help=configargparse.SUPPRESS, default=False) |
| 243 | + parser.add_argument('--clearloganddb', action='store_true', help=configargparse.SUPPRESS, default=False) |
240 | 244 | parser.add_argument('--socksproxy', action='store', help='SOCKS proxy to use in format socks5://user:pass@host:port', default=None)
|
241 | 245 |
|
242 | 246 | args, unknown = parser.parse_known_args()
|
|
0 commit comments