mirror of
https://github.com/rwinkhart/sshyp.git
synced 2026-09-01 14:47:17 -04:00
Moved all entry/folder exists/type checks to dedicated functions
Former-commit-id: a7a45850f1a808ce7e4f41d6804676650d990f20 Former-commit-id: fcddfd19d416f99ab2427ff33ed00ad980596bce
This commit is contained in:
+60
-38
@@ -159,6 +159,39 @@ def decrypt(_entry_dir, _shm_folder, _shm_entry, _quick_pass,
|
|||||||
s_exit(4)
|
s_exit(4)
|
||||||
|
|
||||||
|
|
||||||
|
# returns True if expected and reality align, otherwise error
|
||||||
|
def target_exists_check(_target_name, _expected_presence):
|
||||||
|
if isfile(f"{directory}{_target_name}.gpg") or isdir(f"{directory}{_target_name}"):
|
||||||
|
if _expected_presence:
|
||||||
|
return True
|
||||||
|
else:
|
||||||
|
print(f"\n\u001b[38;5;9merror: (/{_target_name}) already exists\u001b[0m\n")
|
||||||
|
s_exit(3)
|
||||||
|
else:
|
||||||
|
if not _expected_presence:
|
||||||
|
return True
|
||||||
|
else:
|
||||||
|
print(f"\n\u001b[38;5;9merror: (/{_target_name}) does not exist\u001b[0m\n")
|
||||||
|
s_exit(2)
|
||||||
|
|
||||||
|
|
||||||
|
# returns target type (entry == True, folder == False, null == None), optional errors
|
||||||
|
def target_type_check(_target_name, _expected_type=True, _error=False):
|
||||||
|
if isfile(f"{directory}{_target_name}.gpg"):
|
||||||
|
if _error and not _expected_type:
|
||||||
|
print(f"\n\u001b[38;5;9merror: (/{_target_name}) is an entry\u001b[0m\n")
|
||||||
|
s_exit(2)
|
||||||
|
return True
|
||||||
|
elif isdir(f"{directory}{_target_name}"):
|
||||||
|
if _error and _expected_type:
|
||||||
|
print(f"\n\u001b[38;5;9merror: (/{_target_name}) is a folder\u001b[0m\n")
|
||||||
|
s_exit(2)
|
||||||
|
return False
|
||||||
|
else:
|
||||||
|
print(f"\n\u001b[38;5;9merror: (/{_target_name}) does not exist\u001b[0m\n")
|
||||||
|
s_exit(2)
|
||||||
|
|
||||||
|
|
||||||
# call decrypt() based on quick-unlock status
|
# call decrypt() based on quick-unlock status
|
||||||
def determine_decrypt(_entry_dir, _shm_folder, _shm_entry):
|
def determine_decrypt(_entry_dir, _shm_folder, _shm_entry):
|
||||||
if quick_unlock_enabled == 'true':
|
if quick_unlock_enabled == 'true':
|
||||||
@@ -345,22 +378,6 @@ this program comes with absolutely no warranty; type 'sshyp license' for details
|
|||||||
# PORT END HELP-SERVER
|
# PORT END HELP-SERVER
|
||||||
|
|
||||||
|
|
||||||
# shortcut to quickly read an entry
|
|
||||||
def read_shortcut():
|
|
||||||
if not exists(f"{directory}{entry_name}.gpg"):
|
|
||||||
if not entry_name:
|
|
||||||
print(f"\n\u001b[38;5;9merror: missing entry name\u001b[0m\n")
|
|
||||||
elif isdir(f"{directory}{entry_name}"):
|
|
||||||
print(f"\n\u001b[38;5;9merror: entry ({arguments[0]}) is a directory\u001b[0m\n")
|
|
||||||
else:
|
|
||||||
print(f"\n\u001b[38;5;9merror: entry ({arguments[0]}) does not exist\u001b[0m\n")
|
|
||||||
s_exit(2)
|
|
||||||
_shm_folder, _shm_entry = shm_gen()
|
|
||||||
determine_decrypt(directory + entry_name, _shm_folder, _shm_entry)
|
|
||||||
entry_reader(f"{tmp_dir}{_shm_folder}/{_shm_entry}")
|
|
||||||
rmtree(f"{tmp_dir}{_shm_folder}")
|
|
||||||
|
|
||||||
|
|
||||||
# calls sshync to sync changes to the user's server
|
# calls sshync to sync changes to the user's server
|
||||||
def sync():
|
def sync():
|
||||||
print('\nsyncing entries with the server device...\n')
|
print('\nsyncing entries with the server device...\n')
|
||||||
@@ -478,9 +495,9 @@ def whitelist_verify(_port, _username_ssh, _ip, _client_device_id):
|
|||||||
def add_entry():
|
def add_entry():
|
||||||
# set to avoid PEP8 warnings
|
# set to avoid PEP8 warnings
|
||||||
_shm_folder, _shm_entry = None, None
|
_shm_folder, _shm_entry = None, None
|
||||||
if isfile(f"{directory}{entry_name}.gpg"):
|
|
||||||
print(f"\n\u001b[38;5;9merror: entry (/{entry_name}) already exists\u001b[0m\n")
|
# make sure the add target does not already exist
|
||||||
s_exit(3)
|
target_exists_check(entry_name, False)
|
||||||
|
|
||||||
# note entry
|
# note entry
|
||||||
if arguments[2] in ('note', '-n'):
|
if arguments[2] in ('note', '-n'):
|
||||||
@@ -520,14 +537,16 @@ def add_folder():
|
|||||||
# renames an entry or folder
|
# renames an entry or folder
|
||||||
def rename():
|
def rename():
|
||||||
from shutil import copy
|
from shutil import copy
|
||||||
_file = True
|
|
||||||
if not exists(f"{directory}{entry_name}.gpg") and not exists(f"{directory}{entry_name}"):
|
# check if the renaming target is an entry (file) or a folder
|
||||||
print(f"\n\u001b[38;5;9merror: (/{entry_name}) does not exist\u001b[0m\n")
|
_file = target_type_check(entry_name)
|
||||||
s_exit(2)
|
|
||||||
elif not isfile(f"{directory}{entry_name}.gpg"):
|
# collect the new name for the target from user input
|
||||||
_file = False
|
|
||||||
_new_name = str(input('new name: ')).strip('/')
|
_new_name = str(input('new name: ')).strip('/')
|
||||||
|
|
||||||
|
# check if the new name already exists
|
||||||
|
target_exists_check(_new_name, False)
|
||||||
|
|
||||||
# if renaming a file
|
# if renaming a file
|
||||||
if _file:
|
if _file:
|
||||||
# check if the new file already exists
|
# check if the new file already exists
|
||||||
@@ -560,9 +579,10 @@ def rename():
|
|||||||
def edit():
|
def edit():
|
||||||
# set to avoid PEP8 warnings
|
# set to avoid PEP8 warnings
|
||||||
_shm_folder, _shm_entry, _detail, _edit_line = None, None, None, None
|
_shm_folder, _shm_entry, _detail, _edit_line = None, None, None, None
|
||||||
if not isfile(f"{directory}{entry_name}.gpg"):
|
|
||||||
print(f"\n\u001b[38;5;9merror: entry (/{entry_name}) does not exist\u001b[0m\n")
|
# ensure the edit target is an entry
|
||||||
s_exit(2)
|
target_type_check(entry_name, True, True)
|
||||||
|
|
||||||
_shm_folder, _shm_entry = shm_gen()
|
_shm_folder, _shm_entry = shm_gen()
|
||||||
determine_decrypt(directory + entry_name, _shm_folder, _shm_entry)
|
determine_decrypt(directory + entry_name, _shm_folder, _shm_entry)
|
||||||
if arguments[2] in ('username', '-u'):
|
if arguments[2] in ('username', '-u'):
|
||||||
@@ -591,18 +611,16 @@ def gen():
|
|||||||
_shm_folder, _shm_entry = shm_gen()
|
_shm_folder, _shm_entry = shm_gen()
|
||||||
# gen update
|
# gen update
|
||||||
if arg_count == 3 and arguments[2] in ('update', '-u'):
|
if arg_count == 3 and arguments[2] in ('update', '-u'):
|
||||||
if not isfile(f"{directory}{entry_name}.gpg"):
|
# ensure the gen update target is an entry
|
||||||
print(f"\n\u001b[38;5;9merror: entry (/{entry_name}) does not exist\u001b[0m\n")
|
target_type_check(entry_name, True, True)
|
||||||
s_exit(2)
|
|
||||||
determine_decrypt(directory + entry_name, _shm_folder, _shm_entry)
|
determine_decrypt(directory + entry_name, _shm_folder, _shm_entry)
|
||||||
_new_lines = optimized_edit(open(f"{tmp_dir}{_shm_folder}/{_shm_entry}", 'r').readlines(), pass_gen(), 0)
|
_new_lines = optimized_edit(open(f"{tmp_dir}{_shm_folder}/{_shm_entry}", 'r').readlines(), pass_gen(), 0)
|
||||||
open(f"{tmp_dir}{_shm_folder}/{_shm_entry}", 'w').writelines(_new_lines)
|
open(f"{tmp_dir}{_shm_folder}/{_shm_entry}", 'w').writelines(_new_lines)
|
||||||
remove(f"{directory}{entry_name}.gpg")
|
remove(f"{directory}{entry_name}.gpg")
|
||||||
# gen
|
# gen
|
||||||
elif isfile(f"{directory}{entry_name}.gpg"):
|
|
||||||
print(f"\n\u001b[38;5;9merror: entry (/{entry_name}) already exists\u001b[0m\n")
|
|
||||||
s_exit(3)
|
|
||||||
else:
|
else:
|
||||||
|
# make sure the gen target does not already exist
|
||||||
|
target_exists_check(entry_name, False)
|
||||||
_username = str(input('username: '))
|
_username = str(input('username: '))
|
||||||
_password = pass_gen()
|
_password = pass_gen()
|
||||||
_url = str(input('url: '))
|
_url = str(input('url: '))
|
||||||
@@ -622,9 +640,8 @@ def gen():
|
|||||||
# copies a specified field of an entry to the clipboard
|
# copies a specified field of an entry to the clipboard
|
||||||
def copy_data():
|
def copy_data():
|
||||||
from subprocess import Popen
|
from subprocess import Popen
|
||||||
if not isfile(f"{directory}{entry_name}.gpg"):
|
# ensure the copy target is an entry
|
||||||
print(f"\n\u001b[38;5;9merror: entry (/{entry_name}) does not exist\u001b[0m\n")
|
target_type_check(entry_name, True, True)
|
||||||
s_exit(2)
|
|
||||||
_shm_folder, _shm_entry = shm_gen()
|
_shm_folder, _shm_entry = shm_gen()
|
||||||
determine_decrypt(directory + entry_name, _shm_folder, _shm_entry)
|
determine_decrypt(directory + entry_name, _shm_folder, _shm_entry)
|
||||||
_copy_line, _index = [_line.rstrip() for _line in open(f"{tmp_dir}{_shm_folder}/{_shm_entry}", 'r').readlines()], 0
|
_copy_line, _index = [_line.rstrip() for _line in open(f"{tmp_dir}{_shm_folder}/{_shm_entry}", 'r').readlines()], 0
|
||||||
@@ -799,8 +816,13 @@ if __name__ == "__main__":
|
|||||||
|
|
||||||
elif arg_count == 1:
|
elif arg_count == 1:
|
||||||
if arg_start == 1:
|
if arg_start == 1:
|
||||||
|
# read shortcut
|
||||||
success_flag = True
|
success_flag = True
|
||||||
read_shortcut()
|
target_type_check(entry_name, True, True)
|
||||||
|
_shm_folder, _shm_entry = shm_gen()
|
||||||
|
determine_decrypt(directory + entry_name, _shm_folder, _shm_entry)
|
||||||
|
entry_reader(f"{tmp_dir}{_shm_folder}/{_shm_entry}")
|
||||||
|
rmtree(f"{tmp_dir}{_shm_folder}")
|
||||||
elif arguments[0] == 'tweak':
|
elif arguments[0] == 'tweak':
|
||||||
success_flag = True
|
success_flag = True
|
||||||
from stweak import global_menu
|
from stweak import global_menu
|
||||||
|
|||||||
Reference in New Issue
Block a user