Age | Commit message (Collapse) | Author |
|
|
|
It's unnecessary to check for the presence of oathtool considering it's
listed as a dependency of pass-otp. The explicit check was also causing
problems for people on NixOS as mentioned in #6.
|
|
|
|
|
|
|
|
BREAKING CHANGE: The location of the bash completion script has been
changed from the legacy folder '/etc/bash_completion.d/' to
'/usr/share/bash-completion/completions/'. Exisiting users will need to
delete the bash completion script for tessen from the legacy folder.
|
|
I've used scdoc for now because of lower threshold of using it but I
really want to switch to mdoc and mandoc.
|
|
|
|
The auto type operation has been split into two functions - one of them
deals with the default auto type operation involving username and
password and the other deals with custom autotype operation specified by
the user.
The copy menu now checks for the presence of notify-send rather than
just using it.
|
|
continue to implement features explained in 9511148
|
|
The validation functions have been changed to be more modular and more
resistant to invalid input. Instead of using printf to redirect error
messages to stderr and using `exit 1`, use the function `_die` which has
been changed as well. A function called `is_installed` was added as well
to check if the needed binaries are present on the system.
|
|
The `key_menu()` function will now handle different types of keys using
case and specific functions instead of complex if-else monstrosity.
feat: continue to implement features explained in 9511148
|
|
Use the environment variables to show options for autotype and username.
The URL should also be accounted for and the 3rd menu should show 'open'
instead of 'autotype'.
feat: continue to implement features explained in 9511148
|
|
tessen can now parse 'otpauth://' URI format thanks to the regex
borrowed from pass-otp
The username will now be taken from TESSEN_USERKEY if it exists,
otherwise, fallback to using the basename of the selected file.
The keys can now have '#', '+', and '@' characters as well.
|
|
|
|
The TESSEN_USERKEY environment variable can be set to point tessen to a
custom key which should be considered as the username.
The TESSEN_URLKEY environment variable can be set to point tessen to a
custom key which should be considered as the URL of website.
The TESSEN_AUTOKEY environment variable can be set to point tessen to a
custom key which should be considered for custom auto type operations
instead of the default operation of auto typing the username and the
password.
The TESSEN_DELAY environment variable can be set to make tessen
introduce delay when auto typing to avoid errors. The default is 200
milliseconds.
'bemenu' is no longer the default backend.
|
|
Global variables shouldn't be written in upper case unless the variable
is meant to be exported or is an environment variable. The style of
defining local variables was also changed.
|
|
It looks like there's no reliable way to enable a shell "strict" mode
globally in a script without dealing with certain caveats and edge cases
or making code cluttered with `${1-}` instead of simply `$1`. I'm not
gonna use shell "strict" any longer and instead try to write saner code
and rely on shellcheck.
|
|
|
|
|
|
tessen wasn't excluding 'username' and 'password' as a key from the menu
which isn't expected behaviour because the value of username is
determined from the basename of the selected file and password is
selected from the first line of the file
|
|
|
|
|
|
|
|
updated the fish completion and the README as well
|
|
|
|
I was being stupid with the sem versions while making this script. I
thought about editing the individual commits and rebasing and force
pushing the repo but decided against it. Hopefully, this isn't too
embarassing.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
as mentioned before in 46cedab, the 1st autotype message should be
clearer to indicate that autotyping will be performed no matter what the
choice of `-a` is
|
|
|
|
To mitigate possible inaccuracies while autotyping, an option to let the
user perform autotyping AND copying of a key-value pair at the same
time has been added.
Of course, this doesn't work if the user selects `autotype` in the 2nd
stage menu. I guess I'll change the text of that key for clarity.
|
|
reduce possible confusion and code complexity by using an optional
argument with a value that specifies what the user wants to do
renamed AT_TYPE to ACTION for clarity as well
|
|
|
|
|
|
|
|
This might be a hack but I had to figure out how to work with the
following
- if no backend choice is given, assume bemenu
- if the user sets the TESSEN_BACKEND env var, use that
- if the user provides the `-b` flag at runtime, use that above all else
I've already assumed bemenu by default in the list of global variables.
However, figuring out how to prefer the command line flag over the env
var was a bit tricky I guess.
I changed the `validate_backend` function to always assign both backend
global variables as readonly and this function is always called if the
user provides a `-b` flag at runtime. If he doesn't though, I can safely
use the unset condition on the BACKEND_OPTS variable, instead of
BACKEND, since it has not been assigned anyways. If it can be unset, it
means it hasn't been made readonly, which means `-b` wasn't provided. We
can call the `validate_backend` function to do what we wanted.
|
|
the key presentation menu, `get_key`, was changed to allow presentation
of 2 stages of menus - one, where the user chooses one of the key-value
pairs present in the password store file chosen earlier and two - if the
user hasn't given a preference for autotyping or copying, present both
options as keys
`key_menu_copy` and `key_menu_autotype` were merged into a single
`key_menu` function which, in turn, calls a new `auto_type` function
and `wld_copy` function. This makes more sense and the code seems to be
more modular and extensible.
|
|
|
|
|
|
`argbash` seems like a decent tool to generate argparse while loop for
bash. Although `getopts` built-in is nice, it's restricted to short `-a`
style options only. I think short options are fine but one can't deny
that long options are easier to remember and perhaps more user-friendly.
|