From b0bc30b4ed7e18fd315606f6197832b14ffe802f Mon Sep 17 00:00:00 2001
From: darrida <darridapy@gmail.com>
Date: Thu, 5 Mar 2020 07:58:41 -0600
Subject: [PATCH] Update pykeypass.py

---
 pykeypass.py | 40 ++++++++++++++++++++++------------------
 1 file changed, 22 insertions(+), 18 deletions(-)

diff --git a/pykeypass.py b/pykeypass.py
index 5f829df..0072168 100644
--- a/pykeypass.py
+++ b/pykeypass.py
@@ -33,23 +33,28 @@ def pykeypass_setup():
     - Copies Keepass.exe to .pykeypass folder in home directory
     - Creates pykeypass.kdbx in .pykeypass folder in hom directory
     """
-    if os.path.exists(pykeypass_app) == False:
-        Path(pykeypass_folder).mkdir(parents=True, exist_ok=True)
-        shutil.copyfile(Path.cwd() / 'thirdparty' / 'keepass_portable' / 'keepass.exe', pykeypass_app)
-    if os.path.exists(pykeypass_db):
-        confirmation = input('WARNING: If an app database already exists, this process will delete it and create a fresh one.\nProceed? (y/n) ')
-    else:
-        confirmation = 'y'
-    if confirmation == 'y':
-        click.echo('STEP 1: Create pykeypass app database.')
-        new_password = getpass.getpass('Create a pykeypass password: ')
-        keepass.create_database(pykeypass_db, password=new_password)
-        kp = PyKeePass(pykeypass_db, password=new_password)
-        click.echo("DONE: pykeypass app database created.\n"
-                   "Setup keepass databases by using:\n"
-                   "- 'pykeypass open <new_name> -s'\n")
-    else:
-        click.echo('pykeypass setup cancelled.')
+    try:
+        if os.path.exists(pykeypass_app) == False:
+            Path(pykeypass_folder).mkdir(parents=True, exist_ok=True)
+            shutil.copyfile(Path.cwd() / 'thirdparty' / 'keepass_portable' / 'keepass.exe', pykeypass_app)
+        if os.path.exists(pykeypass_db):
+            confirmation = input('WARNING: If an app database already exists, this process will delete it and create a fresh one.\nProceed? (y/n) ')
+        else:
+            confirmation = 'y'
+        if confirmation == 'y':
+            click.echo('STEP 1: Create pykeypass app database.')
+            new_password = getpass.getpass('Create a pykeypass password: ')
+            keepass.create_database(pykeypass_db, password=new_password)
+            kp = PyKeePass(pykeypass_db, password=new_password)
+            click.echo("DONE: pykeypass app database created.\n"
+                    "Setup keepass databases by using:\n"
+                    "- 'pykeypass open <new_name> -s'\n")
+        else:
+            click.echo('pykeypass setup cancelled.')
+    except FileNotFoundError as e:
+        click.echo("""ERROR: pykeypass app not setup. To setup, perform one of the following:
+(1) Run 'install.bat' from pykeypass app folder.
+(2) Open CMD/terminal in root of pykeypass app directory and run 'pykeypass setup' (all other functionality is global)""")
 
 
 @cli.command('open', help='Launches functionality for a specific Keepass database.')
@@ -129,7 +134,6 @@ def keepass_open(database, setup, path, options, input_password=None):
                 password = getpass.getpass('pykeepass password: ') if input_password == None else input_password
                 kp = keepass.PyKeePass(pykeypass_db, password=password)
                 entry = kp.find_entries(title=f'{database}', first=True)
-                print(entry)
                 if entry.get_custom_property('key') != None:
                     key_file = entry.get_custom_property('key')
                     subprocess.Popen(f'{pykeypass_app} "{entry.url}" -pw:{entry.password} -keyfile:"{key_file}"',