aboutsummaryrefslogtreecommitdiff
path: root/main.py
diff options
context:
space:
mode:
authorChristian Cleberg <hello@cleberg.net>2024-11-06 23:23:27 -0600
committerChristian Cleberg <hello@cleberg.net>2024-11-06 23:23:27 -0600
commit6dde4dd0bc5e5f91f89587c75a30c9ef7a24494c (patch)
tree6cf4b78ddd63a4606e19fcad423ed2e19ad2a268 /main.py
parentb5a5fadff88615c8da8a9feb80c86fd8adb238f5 (diff)
downloadyoshi-cli-6dde4dd0bc5e5f91f89587c75a30c9ef7a24494c.tar.gz
yoshi-cli-6dde4dd0bc5e5f91f89587c75a30c9ef7a24494c.tar.bz2
yoshi-cli-6dde4dd0bc5e5f91f89587c75a30c9ef7a24494c.zip
package as a cli app
Diffstat (limited to 'main.py')
-rw-r--r--main.py133
1 files changed, 0 insertions, 133 deletions
diff --git a/main.py b/main.py
deleted file mode 100644
index 913103d..0000000
--- a/main.py
+++ /dev/null
@@ -1,133 +0,0 @@
-"""
-This script uses argparse to parse command line arguments.
-
-It imports the required modules and sets up a parser with basic options for demonstration purposes.
-"""
-
-import argparse
-import crypto
-import database
-import process
-
-if __name__ == '__main__':
- parser = argparse.ArgumentParser(
- description='Manage your username and passwords via a convenient CLI vault.'
- )
-
- # Top-level arguments
- group_one = parser.add_mutually_exclusive_group()
- group_one.add_argument(
- '-n', '--new',
- help='Create a new account.',
- action='store_true'
- )
- group_one.add_argument(
- '-l', '--list',
- help='List all saved accounts.',
- action='store_true'
- )
- group_one.add_argument(
- '-e', '--edit',
- help='Edit a saved account.',
- action='store_true'
- )
- group_one.add_argument(
- '-d', '--delete',
- help='Delete a saved account.',
- action='store_true'
- )
- group_one.add_argument(
- '--purge',
- help=(
- 'Purge all accounts and delete the vault. '
- '(Caution: this will irreversibly destroy your data.)'
- ),
- action='store_true'
- )
- group_one.add_argument(
- '--encrypt',
- help='Encrypt the vault.',
- action='store_true'
- )
- group_one.add_argument(
- '--decrypt',
- help='Decrypt the vault.',
- action='store_true'
- )
-
- # Encryption flags
- group_two = parser.add_mutually_exclusive_group()
- group_two.add_argument(
- '-g', '--generate',
- help=(
- 'When using the --encrypt option, generate a new encryption key.'
- ),
- action='store_true'
- )
- group_two.add_argument(
- '-k', '--keyfile',
- help='Path to existing key file.',
- action='store',
- nargs=1,
- type=str
- )
-
- # Edit flags
- group_three = parser.add_argument_group()
- group_three.add_argument(
- '-u', '--uuid',
- help=(
- 'When using the --edit or --delete options, provide the account UUID.'
- ),
- action='store',
- nargs=1,
- type=str
- )
- group_three.add_argument(
- '-f', '--field',
- help=(
- 'When using the --edit option, specify the field to edit (integer index).'
- ),
- action='store',
- nargs=1,
- type=int
- )
-
- args = parser.parse_args()
-
- if args.decrypt:
- if args.keyfile:
- key = crypto.load_key(args.keyfile[0])
- else:
- key = input('Please enter your decryption key: ')
- crypto.decrypt(key)
- elif args.encrypt:
- if args.generate:
- key = crypto.generate_key()
- print(
- 'WRITE THIS KEY DOWN SOMEWHERE SAFE. YOU WILL NOT BE ABLE TO DECRYPT '
- 'YOUR DATA WITHOUT IT!'
- )
- print(key.decode())
- print('\n')
- else:
- if args.keyfile:
- key = crypto.load_key(args.keyfile[0])
- else:
- key = input('Please enter your encryption key: ')
- crypto.encrypt(key)
- elif database.check_table():
- if args.new:
- process.create_account()
- elif args.list:
- process.list_accounts()
- elif args.edit:
- process.edit_account(args.uuid[0], args.field[0])
- elif args.delete:
- process.delete_account(args.uuid[0])
- elif args.purge:
- process.purge_accounts()
- else:
- raise TypeError(
- 'Please specify a command or use the --help flag for more information.'
- )