summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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()