Skip to content

v1.4.0

Compare
Choose a tag to compare
@rwinkhart rwinkhart released this 05 Mar 00:31
· 305 commits to main since this release

sshyp v1.4.0

the argumentative agronomist update

this release overhauls sshyp's argument system and further streamlines
the experience with optimizations and the removal of legacy features

compatibility-breaking changes:

  • there are no technical breaking changes, but the UX has changed significantly due to the new argument system (detailed below)

user-facing features:

  • when typing an entry/folder name, it is now always the FIRST argument
    ^ e.g. instead of sshyp copy -p /example/test, it would now be sshyp /example/test copy -p
    ^ this allows more easily editing the previous command to copy/edit a different field
  • better extension integration
    ^ extensions can now ship with a config file that sshyp can use to call them from standard sshyp arguments
    ^ the first extension supporting this is sshyp-mfa
    ^ if sshyp-mfa v1.4.0.1+ is installed, sshyp /example/test copy -m will copy MFA keys to your clipboard
  • entry/folder names now MUST be specified as arguments
    ^ there is no longer a separate input prompt if the entry/folder name is not provided as an argument
    ^ the input prompt was a legacy feature from before arguments could specify entrys/folders with shell completion
    ^ the entry list generated by entry_list_gen() is still present and can be viewed by running sshyp with no arguments
  • better Bash completions
    ^ now correctly places backslashes to escape spaces in entry/folder names
    ^ slightly faster than the previous iteration
  • IPv6 configuration support

fixes/optimizations:

  • replaced "+=" with ".append" when extending lists to prevent creating an additional list
  • optimized usage of "str.split()" and replaced it with "str.splitlines()" where applicable
  • more concise "if... in ()" syntax replaces long "if" statement chains
  • lists have been substituted with tuples where applicable
  • entry_list_gen() has been re-written to be much smaller and faster
  • os.path is now used in place of pathlib.Path in areas where it is faster
  • the user's home directory is saved to a variable to prevent running expanduser() every time it is needed

other notable changes:

  • removed some uncommonly used, redundant arguments
    ^ e.g. "-rm", "-s", "delete"
    ^ their functionality was NOT removed, just their redundant arguments, since "shear", "sync", and "del" are the accepted syntax
  • errors containing entry/folder names reinforce correct syntax by adding leading/following slashes where necessary
  • thanks to pull request #25, there are new error messages for the read shortcut
    ^ includes when no entry name is provided or the entry name only refers to a directory
  • directories provided in user input are no longer denoted by a following slash
    ^ instead, os.path is used to determine if the user is referring to a file or directory