Add usage info

This commit is contained in:
He4eT 2024-07-11 04:47:02 +02:00
commit 233ccfc424

27
bwc
View file

@ -2,6 +2,7 @@
set -ef set -ef
local scriptname=$(basename "$0")
local sessionfile='/tmp/bw_session' local sessionfile='/tmp/bw_session'
copy_data () { copy_data () {
@ -9,6 +10,7 @@ copy_data () {
local login=$2 local login=$2
local sessionkey=$3 local sessionkey=$3
local totp local totp
echo "Name: $(jq -r ".name" <<< $login), ID: $(jq -r ".id" <<< $login)" echo "Name: $(jq -r ".name" <<< $login), ID: $(jq -r ".id" <<< $login)"
# Copy the username to the clipboard # Copy the username to the clipboard
echo "> Copying Username" echo "> Copying Username"
@ -43,34 +45,37 @@ function save_sessionkey () {
main() { main() {
local searchterm=$1 local searchterm=$1
local sessionkey logins login id
sessionkey=$(get_saved_sessionkey) if [[ -z $searchterm ]] ; then
echo "Usage: $scriptname <search-term>"
exit 1
fi
local sessionkey=$(get_saved_sessionkey)
if [[ -z $sessionkey ]] ; then if [[ -z $sessionkey ]] ; then
# Get and save a new session key
sessionkey=$(bw unlock --raw) sessionkey=$(bw unlock --raw)
save_sessionkey $sessionkey save_sessionkey $sessionkey
else else
echo "Using the existing session key from $sessionfile" echo "Using the existing session key from $sessionfile"
echo ""
fi fi
# Search for passwords using the search term # Search for passwords using the search term
if [[ -z $searchterm ]] ; then
echo "Searchterm can't be empty"
exit 1
fi
echo "Searching for '$searchterm'..." echo "Searching for '$searchterm'..."
logins=$(bw list items --search $searchterm --session $sessionkey)
id=$(jq -r '.[] | "\(.name)\t\(.login.username)\t\(.id)"' <<< $logins \ local logins=$(bw list items --search $searchterm --session $sessionkey)
local id=$(jq -r '.[] | "\(.name)\t\(.login.username)\t\(.id)"' <<< $logins \
| fzf --reverse --with-nth=1,2 --delimiter="\t" --select-1 --exit-0 \ | fzf --reverse --with-nth=1,2 --delimiter="\t" --select-1 --exit-0 \
| awk -F"\t" '{print $3}' | awk -F"\t" '{print $3}'
) )
if [[ -n $id ]]; then if [[ -n $id ]]; then
login="$(jq ".[] | select(.id == \"$id\")" <<< $logins)" local login="$(jq ".[] | select(.id == \"$id\")" <<< $logins)"
copy_data $id $login $sessionkey copy_data $id $login $sessionkey
else else
echo "No entry found..." echo "No entry found"
fi fi
} }