diff --git a/bin/sshyp b/bin/sshyp index c14e96d..03e3d3e 100755 --- a/bin/sshyp +++ b/bin/sshyp @@ -379,7 +379,7 @@ def sync(): # calls sshync to sync changes to the user's server try: _deletion_database = open(path.expanduser('~/.config/sshyp/deletion_database')).readlines() except (FileNotFoundError, IndexError): - print('\n\u001b[38;5;9merror: the deletion database does not exist or is corrupted.\u001b[0m\n') + print('\n\u001b[38;5;9merror: the deletion database does not exist or is corrupted\u001b[0m\n') _deletion_database = None s_exit(1) for _file in _deletion_database: @@ -407,7 +407,7 @@ def sync(): # calls sshync to sync changes to the user's server try: _folder_database = open(path.expanduser('~/.config/sshyp/folder_database')).readlines() except (FileNotFoundError, IndexError): - print('\n\u001b[38;5;9merror: the folder database does not exist or is corrupted.\u001b[0m\n') + print('\n\u001b[38;5;9merror: the folder database does not exist or is corrupted\u001b[0m\n') _folder_database = None s_exit(1) for _folder in _folder_database: @@ -429,6 +429,9 @@ def add_entry(): # adds a new entry _entry_name = entry_name_fetch('name of new entry: ') else: _entry_name = entry_name_fetch(2) + if Path(f"{directory}{_entry_name}.gpg").is_file(): + print(f"\n\u001b[38;5;9merror: entry ({_entry_name}) already exists\u001b[0m\n") + s_exit(1) if argument_list[1] == 'note' or argument_list[1] == '-n': _shm_folder, _shm_entry = shm_gen() system(f"nano {tmp_dir}{_shm_folder}/{_shm_entry}-n") @@ -467,10 +470,14 @@ def rename(): # renames an entry or folder _entry_name = entry_name_fetch('entry/folder to rename/relocate: ') else: _entry_name = entry_name_fetch(2) - if not Path(f"{directory}{_entry_name}.gpg").exists(): + if not Path(f"{directory}{_entry_name}.gpg").is_file() and not Path(f"{directory}{_entry_name}").is_dir(): print(f"\n\u001b[38;5;9merror: entry ({_entry_name}) does not exist\u001b[0m\n") s_exit(1) _new_name = str(input('new name: ')) + print(f"{directory}{_new_name}") + if Path(f"{directory}{_new_name}.gpg").is_file() or Path(f"{directory}{_new_name}").is_dir(): + print(f"\n\u001b[38;5;9merror: ({_new_name}) already exists\u001b[0m\n") + s_exit(1) if _entry_name.endswith('/'): move(f"{directory}{_entry_name}", f"{directory}{_new_name}") system(f"ssh -i '{path.expanduser('~/.ssh/sshyp')}' -p {port} {username_ssh}@{ip} \"mkdir -p '{directory_ssh}" @@ -521,6 +528,11 @@ def gen(): # generates a password for a new or an existing entry _username, _url, _notes = None, None, None # sets base-line values to avoid errors if argument == 'gen update' or argument == 'gen -u' or argument == 'gen': _entry_name = entry_name_fetch('name of entry: ') + if argument == 'gen': + if Path(f"{directory}{_entry_name}.gpg").is_file(): + print(f"\n\u001b[38;5;9merror: entry ({_entry_name}) already exists\u001b[0m\n") + s_exit(1) + _username = str(input('username: ')) elif argument_list[1] == 'update' or argument_list[1] == '-u': _entry_name = entry_name_fetch(2) if not Path(f"{directory}{_entry_name}.gpg").is_file(): @@ -528,9 +540,12 @@ def gen(): # generates a password for a new or an existing entry s_exit(1) else: _entry_name = entry_name_fetch(1) + if Path(f"{directory}{_entry_name}.gpg").is_file(): + print(f"\n\u001b[38;5;9merror: entry ({_entry_name}) already exists\u001b[0m\n") + s_exit(1) _username = str(input('username: ')) _password = pass_gen() - if not argument_list[1] == 'update' and not argument_list[1] == '-u': + if len(argument_list) > 1 and (not argument_list[1] == 'update' and not argument_list[1] == '-u'): _url = str(input('url: ')) _add_note = input('add a note to this entry? (y/N) ') _shm_folder, _shm_entry = shm_gen()