pcarrier / gauth

Google Authenticator in your terminal
ISC License
324 stars 53 forks source link

fuzzy search to copy current code to clipboard #26

Open DevopsDood opened 5 years ago

DevopsDood commented 5 years ago

$ gauth google

copied google OTP to clipboard

jtmkrueger commented 5 years ago

I've put together a little ZSH function to handle it, if you want to use it!

# shows the auth thing and puts the auth you want in the paste buffer
# pass the auth you want as an argument in the paste buffer
# dependency: https://github.com/pcarrier/gauth
# EX: mfa AWS
function mfa() {
  gauth
  gauth | grep $1 | awk '{$1=$2=$4=""; print $0}' | sed 's/ //g' | pbcopy
}

I just have it in my .zshrc. If you don't have pbcopy, you'll have to sub something else in (like xclip).

junkblocker commented 5 years ago

Nice @jtmkrueger ! I made some slight modifications to yours to make it 1) ignore case in query 2) be able to handle mfa entry names with spaces in them and 3) added the xclip bit.

mfa () {
    local paster
    if [ -z "$(command -v gauth)" ]
    then
        echo "gauth is not available" >&2
        return 1
    fi
    paster=cat
    case "$(uname -s)" in
        ([Dd]arwin*) paster="pbcopy"  ;;
        ([Ll]inux*) paster="xclip -i"  ;;
    esac
    gauth
    gauth | grep -i "$1" | awk '{print $(NF-1)}' | $paster
}
pcarrier commented 3 years ago

Oh. Yes. Might not deal with the clipboard part because that's desktop-specific (unless there's a good go lib that does more or less everything for us without native bindings and co making compilation hard?), but could make gauth much nicer for this (eg gauth -current goog finds anything named *goog*). What would you expect to happen if we find multiple matches or no matches?