summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn Turner <jturner.usa@gmail.com>2025-09-26 02:50:23 -0400
committerJohn Turner <jturner.usa@gmail.com>2025-09-26 02:50:23 -0400
commitdda674ad1c489bb47fb130aea2d9698a60c94b86 (patch)
tree17335de95eda3875654f5714dc5eb0310aab54be
parentc214f09291904187396975c3e8cda35db506e8e9 (diff)
downloadpypaste-dda674ad1c489bb47fb130aea2d9698a60c94b86.tar.gz
allow specifying secret key as an environment variable or file
-rw-r--r--pypaste/server/__main__.py19
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()