27 lines
645 B
Fish
Executable file
27 lines
645 B
Fish
Executable file
#!/bin/fish
|
|
|
|
function bw_open --description "Ensure Bitwarden session is valid"
|
|
|
|
# If no session exists OR session invalid → re-auth
|
|
if not bw unlock --check >/dev/null 2>&1
|
|
|
|
echo "Unlocking Bitwarden..."
|
|
|
|
# Ask for password only once
|
|
if not set -q BW_PASSWORD
|
|
read -sP "Bitwarden master password: " BW_PASSWORD
|
|
echo
|
|
end
|
|
|
|
# Login if needed
|
|
if not bw login --check >/dev/null 2>&1
|
|
bw login --raw $argv[1] $BW_PASSWORD >/dev/null
|
|
end
|
|
|
|
# Unlock and store as universal variable
|
|
set -Ux BW_SESSION (bw unlock --raw $BW_PASSWORD)
|
|
end
|
|
|
|
echo $BW_SESSION
|
|
end
|
|
|