mirror of
https://github.com/rwinkhart/sshyp.git
synced 2026-09-03 15:47:18 -04:00
Prevent /dev/shm files being generated before a keyboard interrupt
This commit is contained in:
@@ -206,19 +206,21 @@ def sync(): # calls sshync to sync changes to the user's server
|
|||||||
|
|
||||||
|
|
||||||
def add_entry(): # adds a new entry
|
def add_entry(): # adds a new entry
|
||||||
|
_shm_folder, _shm_entry = None, None # sets base-line values to avoid errors
|
||||||
_entry_name = str(input('\nName of entry: '))
|
_entry_name = str(input('\nName of entry: '))
|
||||||
if _entry_name.startswith('/'):
|
if _entry_name.startswith('/'):
|
||||||
_entry_name = _entry_name.replace('/', '', 1)
|
_entry_name = _entry_name.replace('/', '', 1)
|
||||||
_shm_folder, _shm_entry = shm_gen()
|
|
||||||
if argument == 'add note' or argument == 'add -n':
|
if argument == 'add note' or argument == 'add -n':
|
||||||
|
_shm_folder, _shm_entry = shm_gen()
|
||||||
system(f"nano /dev/shm/{_shm_folder}/{_shm_entry}-n")
|
system(f"nano /dev/shm/{_shm_folder}/{_shm_entry}-n")
|
||||||
_notes = open(f"/dev/shm/{_shm_folder}/{_shm_entry}-n", 'r').read()
|
_notes = open(f"/dev/shm/{_shm_folder}/{_shm_entry}-n", 'r').read()
|
||||||
open(f"/dev/shm/{_shm_folder}/{_shm_entry}", 'w').writelines('\n\n\n\n' + _notes + '\n\n')
|
open(f"/dev/shm/{_shm_folder}/{_shm_entry}", 'w').writelines('\n\n\n\n' + _notes + '\n\n')
|
||||||
if argument == 'add password' or argument == 'add -p':
|
elif argument == 'add password' or argument == 'add -p':
|
||||||
_username = str(input('Username: '))
|
_username = str(input('Username: '))
|
||||||
_password = str(input('Password: '))
|
_password = str(input('Password: '))
|
||||||
_url = str(input('URL: '))
|
_url = str(input('URL: '))
|
||||||
_add_note = input('Add a note to this entry? (y/N) ')
|
_add_note = input('Add a note to this entry? (y/N) ')
|
||||||
|
_shm_folder, _shm_entry = shm_gen()
|
||||||
if _add_note.lower() == 'y':
|
if _add_note.lower() == 'y':
|
||||||
system(f"nano /dev/shm/{_shm_folder}/{_shm_entry}-n")
|
system(f"nano /dev/shm/{_shm_folder}/{_shm_entry}-n")
|
||||||
_notes = open(f"/dev/shm/{_shm_folder}/{_shm_entry}-n", 'r').read()
|
_notes = open(f"/dev/shm/{_shm_folder}/{_shm_entry}-n", 'r').read()
|
||||||
@@ -252,52 +254,51 @@ def rename(): # renames an entry or folder TODO delete original from server to
|
|||||||
|
|
||||||
|
|
||||||
def edit(): # edits the contents of an entry
|
def edit(): # edits the contents of an entry
|
||||||
|
_shm_folder, _shm_entry = None, None # sets base-line values to avoid errors
|
||||||
print()
|
print()
|
||||||
system(f"cd {directory}; ls -1 *") # TODO replace with new list
|
system(f"cd {directory}; ls -1 *") # TODO replace with new list
|
||||||
try:
|
_entry_name = str(input('\nWhat file would you like to edit? '))
|
||||||
_entry_name = str(input('\nWhat file would you like to edit? '))
|
if not Path(f"{directory}{_entry_name}.gpg").is_file():
|
||||||
if _entry_name.startswith('/'):
|
print("\nYou are trying to edit a file that does not exist!\n")
|
||||||
_entry_name = _entry_name.replace('/', '', 1)
|
|
||||||
except KeyboardInterrupt:
|
|
||||||
_entry_name = None
|
|
||||||
print('\n')
|
|
||||||
s_exit()
|
s_exit()
|
||||||
_shm_folder, _shm_entry = shm_gen()
|
if _entry_name.startswith('/'):
|
||||||
try:
|
_entry_name = _entry_name.replace('/', '', 1)
|
||||||
|
if argument == 'edit username' or argument == 'edit -u':
|
||||||
|
_detail = str(input('New Username: '))
|
||||||
|
_shm_folder, _shm_entry = shm_gen()
|
||||||
system(f"gpg -d --output /dev/shm/{_shm_folder}/{_shm_entry} '{directory}{_entry_name}.gpg'")
|
system(f"gpg -d --output /dev/shm/{_shm_folder}/{_shm_entry} '{directory}{_entry_name}.gpg'")
|
||||||
if not Path(f"/dev/shm/{_shm_folder}/{_shm_entry}").is_file():
|
replace_line(f"/dev/shm/{_shm_folder}/{_shm_entry}", 0, _detail + '\n')
|
||||||
rmtree(f"/dev/shm/{_shm_folder}")
|
elif argument == 'edit password' or argument == 'edit -p':
|
||||||
print("\nYou are trying to edit a file that does not exist!\n")
|
_detail = str(input('New Password: '))
|
||||||
s_exit()
|
_shm_folder, _shm_entry = shm_gen()
|
||||||
if argument == 'edit username' or argument == 'edit -u':
|
system(f"gpg -d --output /dev/shm/{_shm_folder}/{_shm_entry} '{directory}{_entry_name}.gpg'")
|
||||||
_detail = str(input('New Username: '))
|
replace_line(f"/dev/shm/{_shm_folder}/{_shm_entry}", 1, _detail + '\n')
|
||||||
replace_line(f"/dev/shm/{_shm_folder}/{_shm_entry}", 0, _detail + '\n')
|
elif argument == 'edit url' or argument == 'edit -l':
|
||||||
if argument == 'edit password' or argument == 'edit -p':
|
_detail = str(input('New URL: '))
|
||||||
_detail = str(input('New Password: '))
|
_shm_folder, _shm_entry = shm_gen()
|
||||||
replace_line(f"/dev/shm/{_shm_folder}/{_shm_entry}", 1, _detail + '\n')
|
system(f"gpg -d --output /dev/shm/{_shm_folder}/{_shm_entry} '{directory}{_entry_name}.gpg'")
|
||||||
if argument == 'edit url' or argument == 'edit -l':
|
replace_line(f"/dev/shm/{_shm_folder}/{_shm_entry}", 2, _detail + '\n')
|
||||||
_detail = str(input('New URL: '))
|
elif argument == 'edit note' or argument == 'edit -n':
|
||||||
replace_line(f"/dev/shm/{_shm_folder}/{_shm_entry}", 2, _detail + '\n')
|
_shm_folder, _shm_entry = shm_gen()
|
||||||
if argument == 'edit note' or argument == 'edit -n':
|
system(f"gpg -d --output /dev/shm/{_shm_folder}/{_shm_entry} '{directory}{_entry_name}.gpg'")
|
||||||
edit_note(_shm_folder, _shm_entry)
|
edit_note(_shm_folder, _shm_entry)
|
||||||
remove(f"{directory}{_entry_name}.gpg")
|
remove(f"{directory}{_entry_name}.gpg")
|
||||||
encrypt(_shm_folder, _shm_entry, _entry_name)
|
encrypt(_shm_folder, _shm_entry, _entry_name)
|
||||||
system(f"gpg -d '{directory}{_entry_name}.gpg'")
|
system(f"gpg -d '{directory}{_entry_name}.gpg'")
|
||||||
except KeyboardInterrupt:
|
|
||||||
rmtree(f"/dev/shm/{_shm_folder}")
|
|
||||||
print('\n')
|
|
||||||
s_exit()
|
|
||||||
|
|
||||||
|
|
||||||
def gen(): # generates a password for a new or an existing entry
|
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
|
_username, _url, _notes = None, None, None # sets base-line values to avoid errors
|
||||||
_shm_folder, _shm_entry = shm_gen()
|
|
||||||
if argument == 'gen update' or argument == 'gen -u':
|
if argument == 'gen update' or argument == 'gen -u':
|
||||||
print()
|
print()
|
||||||
system(f"cd {directory}; ls -1 *") # TODO replace with new list
|
system(f"cd {directory}; ls -1 *") # TODO replace with new list
|
||||||
_entry_name = str(input('\nName of service: '))
|
_entry_name = str(input('\nName of service: '))
|
||||||
if _entry_name.startswith('/'):
|
if _entry_name.startswith('/'):
|
||||||
_entry_name = _entry_name.replace('/', '', 1)
|
_entry_name = _entry_name.replace('/', '', 1)
|
||||||
|
if argument == 'gen update' or argument == 'gen -u':
|
||||||
|
if not Path(f"{directory}{_entry_name}.gpg").is_file():
|
||||||
|
print("\nYou are trying to edit a file that does not exist!\n")
|
||||||
|
s_exit()
|
||||||
if argument != 'gen update' and argument != 'gen -u':
|
if argument != 'gen update' and argument != 'gen -u':
|
||||||
_username = str(input('Username: '))
|
_username = str(input('Username: '))
|
||||||
_pass_length = int(input('How many characters should be in the password? '))
|
_pass_length = int(input('How many characters should be in the password? '))
|
||||||
@@ -310,13 +311,13 @@ def gen(): # generates a password for a new or an existing entry
|
|||||||
if argument != 'gen update' and argument != 'gen -u':
|
if argument != 'gen update' and argument != 'gen -u':
|
||||||
_url = str(input('URL: '))
|
_url = str(input('URL: '))
|
||||||
_notes = str(input('Additional notes: ')) # TODO update w/new notes system
|
_notes = str(input('Additional notes: ')) # TODO update w/new notes system
|
||||||
if argument != 'gen update' and argument != 'gen -u':
|
_shm_folder, _shm_entry = shm_gen()
|
||||||
open(f"/dev/shm/{_shm_folder}/{_shm_entry}", 'w').writelines(_username + '\n' + _pass_gen + '\n' + _url +
|
open(f"/dev/shm/{_shm_folder}/{_shm_entry}", 'w').writelines(_username + '\n' + _pass_gen + '\n' + _url +
|
||||||
'\n\n' + _notes + '\n\n')
|
'\n\n' + _notes + '\n\n')
|
||||||
if argument != 'gen update' and argument != 'gen -u':
|
|
||||||
encrypt(_shm_folder, _shm_entry, _entry_name)
|
encrypt(_shm_folder, _shm_entry, _entry_name)
|
||||||
system(f"gpg -d '{directory}{_entry_name}.gpg'")
|
system(f"gpg -d '{directory}{_entry_name}.gpg'")
|
||||||
else:
|
else:
|
||||||
|
_shm_folder, _shm_entry = shm_gen()
|
||||||
system(f"gpg -d --output /dev/shm/{_shm_folder}/{_shm_entry} '{directory}{_entry_name}.gpg'")
|
system(f"gpg -d --output /dev/shm/{_shm_folder}/{_shm_entry} '{directory}{_entry_name}.gpg'")
|
||||||
replace_line(f"/dev/shm/{_shm_folder}/{_shm_entry}", 1, _pass_gen + '\n')
|
replace_line(f"/dev/shm/{_shm_folder}/{_shm_entry}", 1, _pass_gen + '\n')
|
||||||
remove(f"{directory}{_entry_name}.gpg")
|
remove(f"{directory}{_entry_name}.gpg")
|
||||||
@@ -441,17 +442,29 @@ elif argument == 'edit rename' or argument == 'edit relocate' or argument == 'ed
|
|||||||
s_exit()
|
s_exit()
|
||||||
elif argument == 'edit username' or argument == 'edit -u' or argument == 'edit password' or argument == 'edit -p' or \
|
elif argument == 'edit username' or argument == 'edit -u' or argument == 'edit password' or argument == 'edit -p' or \
|
||||||
argument == 'edit url' or argument == 'edit -l' or argument == 'edit note' or argument == 'edit -n':
|
argument == 'edit url' or argument == 'edit -l' or argument == 'edit note' or argument == 'edit -n':
|
||||||
edit() # KeyboardInterrupt exception in function for temporary file deletion
|
try:
|
||||||
|
edit()
|
||||||
|
except KeyboardInterrupt:
|
||||||
|
print('\n')
|
||||||
|
s_exit()
|
||||||
elif argument == 'gen' or argument == 'gen update' or argument == 'gen -u':
|
elif argument == 'gen' or argument == 'gen update' or argument == 'gen -u':
|
||||||
try:
|
try:
|
||||||
gen()
|
try:
|
||||||
|
gen()
|
||||||
|
except FileNotFoundError:
|
||||||
|
print('\nThe file does not exist!\n')
|
||||||
|
s_exit()
|
||||||
except KeyboardInterrupt:
|
except KeyboardInterrupt:
|
||||||
print('\n')
|
print('\n')
|
||||||
s_exit()
|
s_exit()
|
||||||
elif argument == 'copy username' or argument == 'copy -u' or argument == 'copy password' or argument == 'copy -p' or \
|
elif argument == 'copy username' or argument == 'copy -u' or argument == 'copy password' or argument == 'copy -p' or \
|
||||||
argument == 'copy url' or argument == 'copy -l' or argument == 'copy note' or argument == 'copy -n':
|
argument == 'copy url' or argument == 'copy -l' or argument == 'copy note' or argument == 'copy -n':
|
||||||
try:
|
try:
|
||||||
copy_data()
|
try:
|
||||||
|
copy_data()
|
||||||
|
except FileNotFoundError:
|
||||||
|
print('\nThe file does not exist!\n')
|
||||||
|
s_exit()
|
||||||
except KeyboardInterrupt:
|
except KeyboardInterrupt:
|
||||||
print('\n')
|
print('\n')
|
||||||
s_exit()
|
s_exit()
|
||||||
|
|||||||
@@ -2,18 +2,19 @@ sshyp 2022.01.10.fr2.3
|
|||||||
|
|
||||||
The Lighter Update - Patch 3
|
The Lighter Update - Patch 3
|
||||||
|
|
||||||
This release is a hotfix for 2021.12.01.fr2.2.
|
This release is a hotfix for 2021.12.01.fr2.2. It features critical security fixes and quality-of-life improvements.
|
||||||
|
|
||||||
New features:
|
New features:
|
||||||
|
|
||||||
- a man page has been added
|
- a man page has been added
|
||||||
|
|
||||||
Changes:
|
Changes:
|
||||||
|
|
||||||
** the gen command in sshyp has been updated to use the newer notetaking system
|
** the gen command in sshyp has been updated to use the newer notetaking system
|
||||||
- printing functions in sshyp have been combined into one function (arguments determine section to print)
|
- printing functions in sshyp have been combined into one function (arguments determine section to print)
|
||||||
** file not found exceptions have been re-implemented
|
- file not found exceptions have been re-implemented
|
||||||
** when syncing, a check is made to see if any folders are not on all devices - if the check comes back true, it is corrected
|
** when syncing, a check is made to see if any folders are not on all devices - if the check comes back true, it is corrected
|
||||||
- folders generated in /dev/shm are once again properly deleted with keyboard interrupts
|
- folders in /dev/shm are no longer created before input from the user
|
||||||
- .lower() is now used to remove casing when checking inputs
|
- .lower() is now used to remove casing when checking inputs
|
||||||
- fixed syncing of files (specifically downloading) with special characters, such as '('
|
- fixed syncing of files (specifically downloading) with special characters, such as '('
|
||||||
- fixed program still continuing after trying to edit an entry that doesn't exist
|
- fixed program still continuing after trying to edit an entry that doesn't exist
|
||||||
|
|||||||
Reference in New Issue
Block a user