diff options
author | Ayush Agarwal <ayush@fastmail.in> | 2021-09-08 00:58:20 +0530 |
---|---|---|
committer | Ayush Agarwal <ayush@fastmail.in> | 2021-09-08 00:58:20 +0530 |
commit | 19ad5f90a1a696b8e7b8bf62fce0176852230809 (patch) | |
tree | 2cecc85f3f0702eb8ad1f1122b1a0a6a0c9d5213 | |
parent | 4bbe18a4db9ca993df78808a89d170b35863011d (diff) |
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.
-rwxr-xr-x | tessen | 97 |
1 files changed, 50 insertions, 47 deletions
@@ -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 |