#!/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 'map("\(.id)\\0display\\x1f\(.service) - \(.account)\\x1finfo\\x1f\(.)\\n") | add') ;; 1) id=$(echo $ROFI_INFO | jq -r '.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