diff --git a/us2kr/cli.py b/us2kr/cli.py index da61c04..e33dcc3 100644 --- a/us2kr/cli.py +++ b/us2kr/cli.py @@ -95,6 +95,13 @@ def build_parser() -> argparse.ArgumentParser: "--client-secret", default=None, help="OAuth client secret (default: BLOGGER_CLIENT_SECRET)" ) auth.add_argument("--timeout", type=int, default=300, help="seconds to wait for the browser consent") + auth.add_argument( + "--port", + type=int, + default=0, + help="fixed loopback port (0 = random). Use with a *web application* OAuth client whose " + "authorized redirect URI is registered as http://127.0.0.1:", + ) return parser @@ -191,7 +198,7 @@ def cmd_blogger_auth(args: argparse.Namespace, settings: Settings) -> int: def log_message(self, *_args: object) -> None: # keep the terminal clean pass - server = HTTPServer(("127.0.0.1", 0), Handler) + server = HTTPServer(("127.0.0.1", args.port), Handler) port = server.server_address[1] redirect_uri = f"http://127.0.0.1:{port}" threading.Thread(target=server.serve_forever, daemon=True).start()