From 5853fe6dcb8b6eafe7b85d7ff7d6d7a9b230ad17 Mon Sep 17 00:00:00 2001 From: Hsieh Chin Fan Date: Thu, 29 Sep 2022 17:51:56 +0800 Subject: Update --- tools/desktop/password-store.sh | 30 ++++++++++++++++++++++++------ 1 file changed, 24 insertions(+), 6 deletions(-) (limited to 'tools/desktop/password-store.sh') diff --git a/tools/desktop/password-store.sh b/tools/desktop/password-store.sh index 6918e3f..21dec79 100755 --- a/tools/desktop/password-store.sh +++ b/tools/desktop/password-store.sh @@ -10,13 +10,19 @@ sed 's/.gpg$//' | \ rofi -dmenu "${ROFI_ARGS[@]}" | { # Get arguments for command 'pass' read ARG1 ARG2 + echo ARG1: $ARG1 + echo ARG2: $ARG2 if [[ -z $ARG1 ]]; then exit 1 - elif [[ $ARG1 =~ gen ]]; then - # Generate a new password by ARG2 - alacritty --hold -e pass --clip generate $ARG2 + elif [[ $ARG1 == edit ]]; then + # Edit an existing password + alacritty --hold -e pass edit $ARG2 && \ + rofi -e Password Edited: $ARG2 else + # If pass fails, then it means password doesn't exists + set pipefail + pass $ARG1 | { # If command fails, just fail directly read PASSWORD; [[ -z $PASSWORD ]] && exit 1 @@ -25,8 +31,20 @@ rofi -dmenu "${ROFI_ARGS[@]}" | { echo $PASSWORD | xsel -ib # Show success message, and display extra contents - rofi -e "Copied: $ARG1 $(echo; echo; cat | sed '1{/^$/d}')" \ - "${ROFI_ARGS[@]}" - } + rofi "${ROFI_ARGS[@]}" \ + -e "Copied: $ARG1 $(echo; echo; cat | sed '1{/^$/d}')" + } || { + # Make sure user want to create a new password + alacritty -e dialog --yesno \ + "Password doesn't exist, Generate a new one?" 7 30 || exit 1 + + # Generate a new password by ARG1 + alacritty -e pass generate $ARG1 --clip && \ + + # Show success message + rofi "${ROFI_ARGS[@]}" -e "Password Created and Copied: $ARG1" + } + + # TODO: if return code is 2, it means gpg password is not cached fi } -- cgit v1.2.3-70-g09d2