diff options
| author | John Turner <jturner.usa@gmail.com> | 2025-09-26 02:50:23 -0400 |
|---|---|---|
| committer | John Turner <jturner.usa@gmail.com> | 2025-09-26 02:50:23 -0400 |
| commit | dda674ad1c489bb47fb130aea2d9698a60c94b86 (patch) | |
| tree | 17335de95eda3875654f5714dc5eb0310aab54be | |
| parent | c214f09291904187396975c3e8cda35db506e8e9 (diff) | |
| download | pypaste-dda674ad1c489bb47fb130aea2d9698a60c94b86.tar.gz | |
allow specifying secret key as an environment variable or file
| -rw-r--r-- | pypaste/server/__main__.py | 19 |
1 files 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() |
