aboutsummaryrefslogtreecommitdiff
path: root/main.py
diff options
context:
space:
mode:
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.'
- )