Use os.path for checking if files exist, are files, or are directories, rather than pathlib.Path

Former-commit-id: d7cc6ea6b6028f31729518ff20a267104196533b
Former-commit-id: 442527f45e5354c710d2328a9c1c6c79cef3d0bb
This commit is contained in:
2023-03-01 20:08:39 -05:00
parent 16f1225621
commit 43a53070a8
2 changed files with 22 additions and 22 deletions
+2 -2
View File
@@ -1,6 +1,6 @@
#!/usr/bin/env python3 #!/usr/bin/env python3
from os import listdir, remove, walk from os import listdir, remove, walk
from os.path import expanduser, getmtime, join from os.path import expanduser, isdir, getmtime, join
from subprocess import CalledProcessError, PIPE, run from subprocess import CalledProcessError, PIPE, run
from sys import exit as s_exit from sys import exit as s_exit
@@ -87,7 +87,7 @@ def deletion_sync(_deletion_database, _silent): # checks for and acts upon file
def folder_sync(_folder_database): # creates matches of remote folders on the local client def folder_sync(_folder_database): # creates matches of remote folders on the local client
from pathlib import Path from pathlib import Path
for _folder in _folder_database: for _folder in _folder_database:
if _folder != '' and not Path(f"{expanduser('~')}{_folder}").is_dir(): if _folder != '' and not isdir(f"{expanduser('~')}{_folder}"):
print(f"\u001b[38;5;2m{_folder.replace('/.local/share/sshyp/', '')}/\u001b[0m does not exist locally, " print(f"\u001b[38;5;2m{_folder.replace('/.local/share/sshyp/', '')}/\u001b[0m does not exist locally, "
f"creating...") f"creating...")
Path(f"{expanduser('~')}{_folder}").mkdir(mode=0o700, parents=True, exist_ok=True) Path(f"{expanduser('~')}{_folder}").mkdir(mode=0o700, parents=True, exist_ok=True)
+20 -20
View File
@@ -1,6 +1,6 @@
#!/usr/bin/env python3 #!/usr/bin/env python3
from os import chmod, environ, listdir, remove, uname, walk from os import chmod, environ, listdir, remove, uname, walk
from os.path import expanduser, isdir, realpath from os.path import exists, expanduser, isdir, isfile, realpath
from pathlib import Path from pathlib import Path
from random import randint from random import randint
from shutil import get_terminal_size, move, rmtree from shutil import get_terminal_size, move, rmtree
@@ -205,10 +205,10 @@ def tweak(): # runs configuration wizard
# config directory creation # config directory creation
Path(expanduser('~/.config/sshyp/devices')).mkdir(mode=0o700, parents=True, exist_ok=True) Path(expanduser('~/.config/sshyp/devices')).mkdir(mode=0o700, parents=True, exist_ok=True)
if not Path(f"{expanduser('~/.config/sshyp/tmp')}").exists(): if not exists(expanduser('~/.config/sshyp/tmp')):
if uname()[0] in ('Haiku', 'FreeBSD'): if uname()[0] in ('Haiku', 'FreeBSD'):
symlink('/tmp', expanduser('~/.config/sshyp/tmp')) symlink('/tmp', expanduser('~/.config/sshyp/tmp'))
elif Path("/data/data/com.termux").exists(): elif exists('/data/data/com.termux'):
symlink('/data/data/com.termux/files/usr/tmp', expanduser('~/.config/sshyp/tmp')) symlink('/data/data/com.termux/files/usr/tmp', expanduser('~/.config/sshyp/tmp'))
else: else:
symlink('/dev/shm', expanduser('~/.config/sshyp/tmp')) symlink('/dev/shm', expanduser('~/.config/sshyp/tmp'))
@@ -232,7 +232,7 @@ def tweak(): # runs configuration wizard
_sshyp_data.append(str(input('gpg key id: '))) _sshyp_data.append(str(input('gpg key id: ')))
else: else:
print('\na unique gpg key is being generated for you...') print('\na unique gpg key is being generated for you...')
if not Path(expanduser('~/.config/sshyp/gpg-gen')).is_file(): if not isfile(expanduser('~/.config/sshyp/gpg-gen')):
open(expanduser('~/.config/sshyp/gpg-gen'), 'w').writelines([ open(expanduser('~/.config/sshyp/gpg-gen'), 'w').writelines([
'Key-Type: 1\n', 'Key-Length: 4096\n', 'Key-Usage: sign encrypt\n', 'Name-Real: sshyp\n', 'Key-Type: 1\n', 'Key-Length: 4096\n', 'Key-Usage: sign encrypt\n', 'Name-Real: sshyp\n',
'Name-Comment: gpg-sshyp\n', 'Name-Email: https://github.com/rwinkhart/sshyp\n', 'Expire-Date: 0']) 'Name-Comment: gpg-sshyp\n', 'Name-Email: https://github.com/rwinkhart/sshyp\n', 'Expire-Date: 0'])
@@ -244,7 +244,7 @@ def tweak(): # runs configuration wizard
_sshyp_data.append(input(f"{_divider}example input: vim\n\npreferred text editor: ")) _sshyp_data.append(input(f"{_divider}example input: vim\n\npreferred text editor: "))
# lock file generation # lock file generation
if Path(expanduser('~/.config/sshyp/lock.gpg')).is_file(): if isfile(expanduser('~/.config/sshyp/lock.gpg')):
remove(expanduser('~/.config/sshyp/lock.gpg')) remove(expanduser('~/.config/sshyp/lock.gpg'))
open(expanduser('~/.config/sshyp/lock'), 'w') open(expanduser('~/.config/sshyp/lock'), 'w')
run(['gpg', '-qr', str(_sshyp_data[1]), '-e', expanduser('~/.config/sshyp/lock')]) run(['gpg', '-qr', str(_sshyp_data[1]), '-e', expanduser('~/.config/sshyp/lock')])
@@ -301,7 +301,7 @@ def tweak(): # runs configuration wizard
# test server connection and attempt to register device id # test server connection and attempt to register device id
copy_id_check(_iport[1], _username_ssh, _iport[0], _device_id) copy_id_check(_iport[1], _username_ssh, _iport[0], _device_id)
elif Path(expanduser('~/.config/sshyp/sshyp.sshync')).is_file(): elif isfile(expanduser('~/.config/sshyp/sshyp.sshync')):
remove(expanduser('~/.config/sshyp/sshyp.sshync')) remove(expanduser('~/.config/sshyp/sshyp.sshync'))
# write main config file (sshyp-data) # write main config file (sshyp-data)
@@ -432,7 +432,7 @@ def print_info(): # prints help text based on argument
def read_shortcut(): # shortcut to quickly read an entry def read_shortcut(): # shortcut to quickly read an entry
if not Path(f"{directory}{arguments[0].replace('/', '', 1)}.gpg").exists(): if not exists(f"{directory}{arguments[0].replace('/', '', 1)}.gpg"):
if not arguments[0].replace('/', '', 1): if not arguments[0].replace('/', '', 1):
print(f"\n\u001b[38;5;9merror: missing entry name\u001b[0m\n") print(f"\n\u001b[38;5;9merror: missing entry name\u001b[0m\n")
elif isdir(f"{directory}{arguments[0].replace('/', '', 1)}"): elif isdir(f"{directory}{arguments[0].replace('/', '', 1)}"):
@@ -552,7 +552,7 @@ def whitelist_manage(): # adds or removes quick-unlock whitelisted device ids
print(f"\n\u001b[38;5;9merror: device id ({_device_id}) is not registered\u001b[0m\n") print(f"\n\u001b[38;5;9merror: device id ({_device_id}) is not registered\u001b[0m\n")
s_exit(1) s_exit(1)
elif Path(expanduser(f"~/.config/sshyp/whitelist/{_device_id}")).is_file(): elif isfile(expanduser(f"~/.config/sshyp/whitelist/{_device_id}")):
remove(expanduser(f"~/.config/sshyp/whitelist/{_device_id}")) remove(expanduser(f"~/.config/sshyp/whitelist/{_device_id}"))
whitelist_list() whitelist_list()
@@ -560,7 +560,7 @@ def whitelist_manage(): # adds or removes quick-unlock whitelisted device ids
def add_entry(): # adds a new entry def add_entry(): # adds a new entry
_shm_folder, _shm_entry = None, None # set to avoid PEP8 warnings _shm_folder, _shm_entry = None, None # set to avoid PEP8 warnings
_entry_name = arguments[0] _entry_name = arguments[0]
if Path(f"{directory}{_entry_name}.gpg").is_file(): if isfile(f"{directory}{_entry_name}.gpg"):
print(f"\n\u001b[38;5;9merror: entry (/{_entry_name}) already exists\u001b[0m\n") print(f"\n\u001b[38;5;9merror: entry (/{_entry_name}) already exists\u001b[0m\n")
s_exit(3) s_exit(3)
if arguments[2] in ('note', '-n'): # note entry if arguments[2] in ('note', '-n'): # note entry
@@ -598,13 +598,13 @@ def add_folder(): # creates a new folder
def rename(): # renames an entry or folder def rename(): # renames an entry or folder
from shutil import copy from shutil import copy
_entry_name = arguments[0] _entry_name = arguments[0]
if not Path(f"{directory}{_entry_name}.gpg").is_file() and not Path(f"{directory}{_entry_name}").is_dir(): if not isfile(f"{directory}{_entry_name}.gpg") and not isdir(f"{directory}{_entry_name}"):
print(f"\n\u001b[38;5;9merror: entry (/{_entry_name}) does not exist\u001b[0m\n") print(f"\n\u001b[38;5;9merror: entry (/{_entry_name}) does not exist\u001b[0m\n")
s_exit(2) s_exit(2)
_new_name = str(input('new name: ')) _new_name = str(input('new name: '))
if _new_name.startswith('/'): if _new_name.startswith('/'):
_new_name.replace('/', '', 1) _new_name.replace('/', '', 1)
if Path(f"{directory}{_new_name}.gpg").is_file() or Path(f"{directory}{_new_name}").is_dir(): if isfile(f"{directory}{_new_name}.gpg") or isdir(f"{directory}{_new_name}"):
print(f"\n\u001b[38;5;9merror: (/{_new_name}) already exists\u001b[0m\n") print(f"\n\u001b[38;5;9merror: (/{_new_name}) already exists\u001b[0m\n")
s_exit(3) s_exit(3)
if _entry_name.endswith('/'): if _entry_name.endswith('/'):
@@ -628,7 +628,7 @@ def rename(): # renames an entry or folder
def edit(): # edits the contents of an entry def edit(): # edits the contents of an entry
_shm_folder, _shm_entry, _detail, _edit_line = None, None, None, None # set to avoid PEP8 warnings _shm_folder, _shm_entry, _detail, _edit_line = None, None, None, None # set to avoid PEP8 warnings
_entry_name = arguments[0] _entry_name = arguments[0]
if not Path(f"{directory}{_entry_name}.gpg").is_file(): if not isfile(f"{directory}{_entry_name}.gpg"):
print(f"\n\u001b[38;5;9merror: entry (/{_entry_name}) does not exist\u001b[0m\n") print(f"\n\u001b[38;5;9merror: entry (/{_entry_name}) does not exist\u001b[0m\n")
s_exit(2) s_exit(2)
_shm_folder, _shm_entry = shm_gen() _shm_folder, _shm_entry = shm_gen()
@@ -657,17 +657,17 @@ def gen(): # generates a password for a new or an existing entry
_entry_name = arguments[0] _entry_name = arguments[0]
_shm_folder, _shm_entry = shm_gen() _shm_folder, _shm_entry = shm_gen()
if arg_count == 3 and arguments[2] in ('update', '-u'): # gen update if arg_count == 3 and arguments[2] in ('update', '-u'): # gen update
if not Path(f"{directory}{_entry_name}.gpg").is_file(): if not isfile(f"{directory}{_entry_name}.gpg"):
print(f"\n\u001b[38;5;9merror: entry (/{_entry_name}) does not exist\u001b[0m\n") print(f"\n\u001b[38;5;9merror: entry (/{_entry_name}) does not exist\u001b[0m\n")
s_exit(2) 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")
else: # gen elif isfile(f"{directory}{_entry_name}.gpg"): # 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")
print(f"\n\u001b[38;5;9merror: entry (/{_entry_name}) already exists\u001b[0m\n") s_exit(3)
s_exit(3) else:
_username = str(input('username: ')) _username = str(input('username: '))
_password = pass_gen() _password = pass_gen()
_url = str(input('url: ')) _url = str(input('url: '))
@@ -687,7 +687,7 @@ def gen(): # generates a password for a new or an existing entry
def copy_data(): # copies a specified field of an entry to the clipboard def copy_data(): # copies a specified field of an entry to the clipboard
from subprocess import Popen from subprocess import Popen
_entry_name = arguments[0] _entry_name = arguments[0]
if not Path(f"{directory}{_entry_name}.gpg").is_file(): if not isfile(f"{directory}{_entry_name}.gpg"):
print(f"\n\u001b[38;5;9merror: entry (/{_entry_name}) does not exist\u001b[0m\n") print(f"\n\u001b[38;5;9merror: entry (/{_entry_name}) does not exist\u001b[0m\n")
s_exit(2) s_exit(2)
_shm_folder, _shm_entry = shm_gen() _shm_folder, _shm_entry = shm_gen()
@@ -707,7 +707,7 @@ def copy_data(): # copies a specified field of an entry to the clipboard
elif uname()[0] == 'Haiku': # Haiku clipboard detection elif uname()[0] == 'Haiku': # Haiku clipboard detection
run(['clipboard', '-c', _copy_line[_index].rstrip()]) run(['clipboard', '-c', _copy_line[_index].rstrip()])
Popen('sleep 30; clipboard -r', shell=True) Popen('sleep 30; clipboard -r', shell=True)
elif Path("/data/data/com.termux").exists(): # Termux (Android) clipboard detection elif exists("/data/data/com.termux"): # Termux (Android) clipboard detection
run(['termux-clipboard-set', _copy_line[_index].rstrip()]) run(['termux-clipboard-set', _copy_line[_index].rstrip()])
Popen("sleep 30; termux-clipboard-set ''", shell=True) Popen("sleep 30; termux-clipboard-set ''", shell=True)
else: # X11 clipboard detection else: # X11 clipboard detection
@@ -771,7 +771,7 @@ if __name__ == "__main__":
gpg_id = sshyp_data[1].rstrip() gpg_id = sshyp_data[1].rstrip()
editor = sshyp_data[2].rstrip() editor = sshyp_data[2].rstrip()
quick_unlock_enabled = sshyp_data[3].rstrip() quick_unlock_enabled = sshyp_data[3].rstrip()
if Path(expanduser('~/.config/sshyp/sshyp.sshync')).is_file(): if isfile(expanduser('~/.config/sshyp/sshyp.sshync')):
ssh_info = get_profile(expanduser('~/.config/sshyp/sshyp.sshync')) ssh_info = get_profile(expanduser('~/.config/sshyp/sshyp.sshync'))
username_ssh = ssh_info[0].rstrip() username_ssh = ssh_info[0].rstrip()
ip = ssh_info[1].rstrip() ip = ssh_info[1].rstrip()