From dda674ad1c489bb47fb130aea2d9698a60c94b86 Mon Sep 17 00:00:00 2001 From: John Turner Date: Fri, 26 Sep 2025 02:50:23 -0400 Subject: allow specifying secret key as an environment variable or file --- pypaste/server/__main__.py | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/pypaste/server/__main__.py b/pypaste/server/__main__.py index de48f80..be83ba2 100644 --- a/pypaste/server/__main__.py +++ b/pypaste/server/__main__.py @@ -32,6 +32,15 @@ def get_route(s: str) -> str: return s +def secret_key(s: str) -> str: + try: + key = os.environ[s] + except KeyError: + key = Path(s).read_text().strip() + + return key + + async def main() -> int: parser = ArgumentParser() subparsers = parser.add_subparsers(dest="command") @@ -54,7 +63,7 @@ async def main() -> int: s3parser.add_argument("--region", required=True) s3parser.add_argument("--bucket", required=True) s3parser.add_argument("--access-key", required=True) - s3parser.add_argument("--secret-key", type=Path, required=True) + s3parser.add_argument("--secret-key", type=secret_key, required=True) subparsers.add_parser("sqlite") @@ -102,19 +111,13 @@ async def main() -> int: match args.command: case "s3": - try: - secret_key = args.secret_key.read_text().strip() - except Exception as e: - log_error(f"failed to load secret key from {args.secret_key}: {e}") - return 1 - storage: Storage = S3( connection, args.endpoint, args.region, args.bucket, args.access_key, - secret_key, + args.secret_key, ) await storage.setup() -- cgit v1.2.3