commit 19ad5f90a1a696b8e7b8bf62fce0176852230809
parent 4bbe18a4db9ca993df78808a89d170b35863011d
Author: Ayush Agarwal <ayush@fastmail.in>
Date: Wed, 8 Sep 2021 00:58:20 +0530
created func for backend and clip_time validation
Yeah, don't litter your script with code not inside functions. The help
menu was also moved near the end of the script because it isn't part of
the script's core logic functions which are meant to be at the top.
Diffstat:
| M | tessen | | | 97 | +++++++++++++++++++++++++++++++++++++++++-------------------------------------- |
1 file changed, 50 insertions(+), 47 deletions(-)
diff --git a/tessen b/tessen
@@ -7,20 +7,6 @@ readonly PATH="/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin"
export PATH
umask 077
-print_help() {
- printf '%s\n' "tessen - select, autotype, and copy your password-store data"
- printf '%s\n' "tessen can use one of the following backends to process password-store data"
- printf '%s\n' " - bemenu (copy + autotype) - the default choice"
- printf '%s\n' " - rofi (copy + autotype) - lbonn wayland fork"
- printf '%s\n' " - fzf (copy only when run from a terminal) - limited functionality" ""
- printf '%s\n' "usage: [-ha] [-b backend] [-s seconds]"
- printf '%s\n' "Command Summary:"
- printf '%s\n' " -h show this help menu"
- printf '%s\n' " -a autotype data instead of copying"
- printf '%s\n' " -b choose either bemenu, rofi, or fzf"
- printf '%s\n' " -s number of seconds to keep copied data in clipboard"
-}
-
BACKEND="bemenu"
CLIP_TIME=15
WTYPE=""
@@ -30,39 +16,6 @@ readonly CLIP_TIME
readonly BACKEND
readonly WTYPE
-# validate $BACKEND and set the default options for bemenu and fzf
-if [[ "$BACKEND" == "bemenu" ]]; then
- bmn_opt=("-i -l 10 -w --scrollbar=autohide -n")
- readonly BEMENU_OPTS="${BEMENU_OPTS:-${bmn_opt[*]}}"
- export BEMENU_OPTS
- unset -v bmn_opt
-elif [[ "$BACKEND" == "rofi" ]]; then
- true
-elif [[ "$BACKEND" == "fzf" ]]; then
- readonly FZF_DEFAULT_COMMAND=""
- fzf_opt=("--no-multi --height=100 --info=hidden --prompt='pass: ' --layout=reverse")
- readonly FZF_DEFAULT_OPTS="${fzf_opt[*]}"
- export FZF_DEFAULT_COMMAND
- export FZF_DEFAULT_OPTS
- unset -v fzf_opt
-else
- exit 1
-fi
-
-# validate the value of CLIP_TIME
-check_clip_time() {
- local clip_regex
-
- clip_regex="^[[:digit:]]+$"
-
- if [[ "$CLIP_TIME" =~ $clip_regex ]]; then
- return 0
- else
- notify-send "invalid clipboard time provided"
- exit 1
- fi
-}
-check_clip_time
# initialize the primary global variables
readonly PASS_STORE="${PASSWORD_STORE_DIR:-$HOME/.password-store}"
@@ -197,6 +150,53 @@ key_menu_autotype() {
fi
}
+print_help() {
+ printf '%s\n' "tessen - select, autotype, and copy your password-store data"
+ printf '%s\n' "tessen can use one of the following backends to process password-store data"
+ printf '%s\n' " - bemenu (copy + autotype) - the default choice"
+ printf '%s\n' " - rofi (copy + autotype) - lbonn wayland fork"
+ printf '%s\n' " - fzf (copy only when run from a terminal) - limited functionality" ""
+ printf '%s\n' "usage: [-ha] [-b backend] [-s seconds]"
+ printf '%s\n' "Command Summary:"
+ printf '%s\n' " -h show this help menu"
+ printf '%s\n' " -a autotype data instead of copying"
+ printf '%s\n' " -b choose either bemenu, rofi, or fzf"
+ printf '%s\n' " -s number of seconds to keep copied data in clipboard"
+}
+
+validate_backend() {
+ if [[ "$BACKEND" == "bemenu" ]]; then
+ bmn_opt=("-i -l 10 -w --scrollbar=autohide -n")
+ readonly BEMENU_OPTS="${BEMENU_OPTS:-${bmn_opt[*]}}"
+ export BEMENU_OPTS
+ unset -v bmn_opt
+ elif [[ "$BACKEND" == "rofi" ]]; then
+ true
+ elif [[ "$BACKEND" == "fzf" ]]; then
+ readonly FZF_DEFAULT_COMMAND=""
+ fzf_opt=("--no-multi --height=100 --info=hidden --prompt='pass: ' --layout=reverse")
+ readonly FZF_DEFAULT_OPTS="${fzf_opt[*]}"
+ export FZF_DEFAULT_COMMAND
+ export FZF_DEFAULT_OPTS
+ unset -v fzf_opt
+ else
+ exit 1
+ fi
+}
+
+validate_clip_time() {
+ local clip_regex
+
+ clip_regex="^[[:digit:]]+$"
+
+ if [[ "$CLIP_TIME" =~ $clip_regex ]]; then
+ return 0
+ else
+ notify-send "invalid clipboard time provided"
+ exit 1
+ fi
+}
+
clean() {
{
sleep "$CLIP_TIME"
@@ -241,6 +241,9 @@ main() {
unset -v opt
shift $((OPTIND - 1))
+ validate_backend
+ validate_clip_time
+
get_pass_file
get_pass_data