From 2fd8811954728fdc5ced93e6165fb0218c16f31c Mon Sep 17 00:00:00 2001 From: Lasse Server Date: Sun, 9 Jul 2023 11:49:22 +0200 Subject: [PATCH] Now possible to update the yaml file --- create_credentials.py | 39 ++++++++++++++++++++++++++++++++------- 1 file changed, 32 insertions(+), 7 deletions(-) diff --git a/create_credentials.py b/create_credentials.py index 16ec536..8dcac11 100644 --- a/create_credentials.py +++ b/create_credentials.py @@ -1,29 +1,53 @@ import streamlit_authenticator as stauth from sys import argv +import yaml def credentials(username, email, name, pwd): pwd = stauth.Hasher([pwd]).generate()[0] - credentials = f''' + credentials = { + 'text': f''' {username}: email: {email} name: {name} password: {pwd} -''' +''', + 'data': {username: + {'email': email, + 'name': name, + 'pwd': pwd} + } + } return credentials +def update(c): + print(c['text']) + if input('Update credentials file? (y/n)') in ['y', 'yes']: + try: + with open('credentials.yaml','r') as f: + cur_yaml = yaml.safe_load(f) # Note the safe_load + cur_yaml['credentials']['usernames'].update(c['data']) + + if cur_yaml: + with open('credentials.yaml','w') as f: + yaml.safe_dump(cur_yaml, f) # Also note the safe_dump + + except FileNotFoundError: + print('Found no yaml file') + if len(argv) == 2: if argv[1] == 'help': print('username, email, name, pwd') exit() pwd = argv[1] - r = stauth.Hasher([pwd]).generate()[0] + print(stauth.Hasher([pwd]).generate()[0]) elif len(argv) == 5: username = argv[1] email = argv[2] name = argv[3] pwd = argv[4] - r = credentials(username, email, name, pwd) + c = credentials(username, email, name, pwd) + update(c) else: pwd = input('Password: ').strip() @@ -31,8 +55,9 @@ else: if username != '': email = input('Email: ') name = input('Name: ') - r = credentials(username, email, name, pwd) + c = credentials(username, email, name, pwd) + update(c) else: - r = stauth.Hasher([pwd]).generate()[0] + print(stauth.Hasher([pwd]).generate()[0]) + -print(r)