From affcb3adbe2d60fdf000c757808008319a8fbc45 Mon Sep 17 00:00:00 2001 From: Randall Winkhart Date: Mon, 10 Oct 2022 19:37:38 -0400 Subject: [PATCH] Fixed deleting and renaming entries in offline mode --- lib/sshyp.py | 16 ++++++++++++---- lib/sshypRemote.py | 4 ++-- 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/lib/sshyp.py b/lib/sshyp.py index bf2a3a0..e563aae 100755 --- a/lib/sshyp.py +++ b/lib/sshyp.py @@ -608,8 +608,12 @@ def rename(): # renames an entry or folder f"{_new_name}'\"") else: move(f"{directory}{_entry_name}.gpg", f"{directory}{_new_name}.gpg") - system(f"ssh -i '{path.expanduser('~/.ssh/sshyp')}' -p {port} {username_ssh}@{ip} \"cd /bin; python -c " - f"'import sshypRemote; sshypRemote.delete(\"'\"{_entry_name}\"'\")'\"") + if ssh_error != 1: + system(f"ssh -i '{path.expanduser('~/.ssh/sshyp')}' -p {port} {username_ssh}@{ip} \"cd /bin; python -c " + f"'import sshypRemote; sshypRemote.delete(\"'\"{_entry_name}\"'\", 'remotely')'\"") + else: + from sshypRemote import delete as offline_delete + offline_delete(_entry_name, '') def edit(): # edits the contents of an entry @@ -740,8 +744,12 @@ def remove_data(): # deletes an entry from the server and flags it for local de else: _entry_name = entry_name_fetch(1) decrypt(path.expanduser('~/.config/sshyp/lock.gpg'), 0, 0, gpg) - system(f"ssh -i '{path.expanduser('~/.ssh/sshyp')}' -p {port} {username_ssh}@{ip} \"cd /bin; python -c " - f"'import sshypRemote; sshypRemote.delete(\"'\"{_entry_name}\"'\")'\"") + if ssh_error != 1: + system(f"ssh -i '{path.expanduser('~/.ssh/sshyp')}' -p {port} {username_ssh}@{ip} \"cd /bin; python -c " + f"'import sshypRemote; sshypRemote.delete(\"'\"{_entry_name}\"'\", 'remotely')'\"") + else: + from sshypRemote import delete as offline_delete + offline_delete(_entry_name, '') if __name__ == "__main__": diff --git a/lib/sshypRemote.py b/lib/sshypRemote.py index 8d6d024..e0373f0 100755 --- a/lib/sshypRemote.py +++ b/lib/sshypRemote.py @@ -9,14 +9,14 @@ from shutil import rmtree # utility functions -def delete(_file_path): # deletes an entry or folder, should be run remotely via ssh +def delete(_file_path, _target_database): # deletes an entry or folder, should be run remotely via ssh try: if _file_path.endswith('/'): rmtree(f"{expanduser('~/.local/share/sshyp/')}{_file_path}") else: remove(f"{expanduser('~/.local/share/sshyp/')}{_file_path}.gpg") except FileNotFoundError: - print('location does not exist remotely') + print(f"location does not exist {_target_database}") for _device_name in listdir(expanduser('~/.config/sshyp/devices')): open(f"{expanduser('~/.config/sshyp/deleted/')}{_file_path.replace('/', '@')}^&*{_device_name}", 'w')