| 37 | |
| 38 | |
| 39 | def parse_args(): |
| 40 | parser = argparse.ArgumentParser( |
| 41 | prog="domainfront-tunnel", |
| 42 | description="Local HTTP proxy that relays traffic through Google Apps Script.", |
| 43 | ) |
| 44 | parser.add_argument( |
| 45 | "-c", "--config", |
| 46 | default=os.environ.get("DFT_CONFIG", "config.json"), |
| 47 | help="Path to config file (default: config.json, env: DFT_CONFIG)", |
| 48 | ) |
| 49 | parser.add_argument( |
| 50 | "-p", "--port", |
| 51 | type=int, |
| 52 | default=None, |
| 53 | help="Override HTTP proxy port (env: DFT_HTTP_PORT, legacy: DFT_PORT)", |
| 54 | ) |
| 55 | parser.add_argument( |
| 56 | "--host", |
| 57 | default=None, |
| 58 | help="Override listen host (env: DFT_HOST)", |
| 59 | ) |
| 60 | parser.add_argument( |
| 61 | "--socks5-port", |
| 62 | type=int, |
| 63 | default=None, |
| 64 | help="Override SOCKS5 listen port (env: DFT_SOCKS5_PORT)", |
| 65 | ) |
| 66 | parser.add_argument( |
| 67 | "--disable-socks5", |
| 68 | action="store_true", |
| 69 | help="Deprecated: SOCKS5 listener is always enabled.", |
| 70 | ) |
| 71 | parser.add_argument( |
| 72 | "--log-level", |
| 73 | choices=["DEBUG", "INFO", "WARNING", "ERROR"], |
| 74 | default=None, |
| 75 | help="Override log level (env: DFT_LOG_LEVEL)", |
| 76 | ) |
| 77 | parser.add_argument( |
| 78 | "-v", "--version", |
| 79 | action="version", |
| 80 | version=f"%(prog)s {__version__}", |
| 81 | ) |
| 82 | parser.add_argument( |
| 83 | "--install-cert", |
| 84 | action="store_true", |
| 85 | help="Install the MITM CA certificate as a trusted root and exit.", |
| 86 | ) |
| 87 | parser.add_argument( |
| 88 | "--uninstall-cert", |
| 89 | action="store_true", |
| 90 | help="Remove the MITM CA certificate from trusted roots and exit.", |
| 91 | ) |
| 92 | parser.add_argument( |
| 93 | "--no-cert-check", |
| 94 | action="store_true", |
| 95 | help="Skip the certificate installation check on startup.", |
| 96 | ) |