Skip to content

Commit

Permalink
Add more options to basic_auth/put_user.py
Browse files Browse the repository at this point in the history
  • Loading branch information
mdwint committed May 19, 2021
1 parent 22cff25 commit a7d6e4b
Showing 1 changed file with 32 additions and 5 deletions.
37 changes: 32 additions & 5 deletions basic_auth/put_user.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
import getpass
import json
import secrets
import sys
from dataclasses import asdict

import boto3
Expand All @@ -12,17 +13,40 @@

def get_arg_parser():
p = argparse.ArgumentParser()
p.add_argument("domain")
p.add_argument("username")
p.add_argument("--salt-nbytes", type=int, default=32)
p.add_argument("--overwrite", action="store_true")
p.add_argument("domain", help="S3PyPI domain")
p.add_argument("username", help="Username")
pw = p.add_mutually_exclusive_group()
pw.add_argument(
"--password-stdin", action="store_true", help="Read password from stdin"
)
pw.add_argument(
"--random-password",
metavar="N",
type=int,
default=0,
help="Generate a random password of N bytes",
)
p.add_argument(
"--salt-nbytes",
metavar="N",
type=int,
default=32,
help="Length of the random salt in bytes",
)
p.add_argument("--overwrite", action="store_true", help="Overwrite existing users")
return p


def main():
args = get_arg_parser().parse_args()

password = getpass.getpass()
if args.password_stdin:
password = sys.stdin.read().strip("\n")
elif args.random_password:
password = secrets.token_urlsafe(args.random_password)
else:
password = getpass.getpass()

salt = secrets.token_urlsafe(args.salt_nbytes)

user = User(
Expand All @@ -32,6 +56,9 @@ def main():
)
put_user(args.domain, user, args.overwrite)

if args.random_password:
print(password)


def put_user(domain: str, user: User, overwrite: bool = False):
data = asdict(user)
Expand Down

0 comments on commit a7d6e4b

Please sign in to comment.