41 lines
994 B
Bash
Executable file
41 lines
994 B
Bash
Executable file
#!/bin/bash
|
|
|
|
set -o pipefail
|
|
|
|
source "$HOME/.config/rofi/scripts/_lib.sh"
|
|
|
|
KEYRING_NAME="2fauth"
|
|
KEYRING_VALUE="token"
|
|
DOMAIN="https://auth.iedsoftworks.com"
|
|
|
|
getApiToken() {
|
|
token=$(secret-tool lookup "$KEYRING_NAME" "$KEYRING_VALUE")
|
|
if [[ $? == 0 ]]; then
|
|
return 0
|
|
fi
|
|
|
|
token=$(zenity --forms --add-multiline-entry="API Key" --text="Provide a valid API key")
|
|
if [[ $token == "" ]]; then
|
|
return 1
|
|
fi
|
|
|
|
echo "$token" | secret-tool store --label "2FAuth API Key" "$KEYRING_NAME" "$KEYRING_VALUE"
|
|
}
|
|
|
|
getApiToken
|
|
|
|
setOption no-custom true
|
|
case $ROFI_RETV in
|
|
0)
|
|
echo -en $(curl --oauth2-bearer "$token" "$DOMAIN/api/v1/twofaccounts" | jq -r '.[] | "\(.id)\\0display\\x1f\(.service) - \(.account)\\x1finfo\\x1f\(.)\\n"')
|
|
;;
|
|
1)
|
|
id=$@
|
|
|
|
curl --oauth2-bearer "$token" "$DOMAIN/api/v1/twofaccounts/$id/otp" |
|
|
jq ".password" -r |
|
|
wl-copy
|
|
|
|
notify-send -i "lock" "2FA Code copied" "Copied code for '$(echo $ROFI_INFO | jq -r '"\(.service) - \(.account)"')'"
|
|
;;
|
|
esac
|