mirror of
https://github.com/ohmyzsh/ohmyzsh.git
synced 2025-06-27 04:51:44 +02:00
fix(rbw): reset clipboard in rbwpw
only in the last invocation (#13185)
The previous behavior would reset the clipboard after 20 seconds always, even if the `rbwpw` function was called again in between. This commit fixes that behavior. Co-authored-by: Marc Cornellà <marc@mcornella.com>
This commit is contained in:
parent
f8022980a3
commit
01433503c2
@ -29,9 +29,24 @@ function rbwpw {
|
|||||||
echo "$service not found"
|
echo "$service not found"
|
||||||
return 1
|
return 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# Generate a random identifier for this call to rbwpw
|
||||||
|
# so we can check if the clipboard content has changed
|
||||||
|
local _random="$RANDOM" _cache="$ZSH_CACHE_DIR/.rbwpw"
|
||||||
|
echo -n "$_random" > "$_cache"
|
||||||
|
|
||||||
|
# Use clipcopy to copy the password to the clipboard
|
||||||
echo -n $pw | clipcopy
|
echo -n $pw | clipcopy
|
||||||
echo "password for $service copied!"
|
echo "password for $service copied!"
|
||||||
{sleep 20 && clipcopy </dev/null 2>/dev/null} &|
|
|
||||||
|
# Clear the clipboard after 20 seconds, but only if the clipboard hasn't
|
||||||
|
# changed (if rbwpw hasn't been called again)
|
||||||
|
{
|
||||||
|
sleep 20 \
|
||||||
|
&& [[ "$(<"$_cache")" == "$_random" ]] \
|
||||||
|
&& clipcopy </dev/null 2>/dev/null \
|
||||||
|
&& command rm -f "$_cache" &>/dev/null
|
||||||
|
} &|
|
||||||
}
|
}
|
||||||
|
|
||||||
function _rbwpw {
|
function _rbwpw {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user