nixpkgs mirror (for testing) github.com/NixOS/nixpkgs
nix
at 20.09-alpha 69 lines 2.7 kB view raw
1From d11261c2ad184daf6e9edd777bc8a3372c277b4b Mon Sep 17 00:00:00 2001 2From: Johannes Frankenau <johannes@frankenau.net> 3Date: Fri, 10 Aug 2018 09:49:57 +0200 4Subject: [PATCH] Patch the clip() function to work even when using 5 single-binary coreutils 6 7--- 8 src/password-store.sh | 4 ++-- 9 src/platform/cygwin.sh | 4 ++-- 10 src/platform/darwin.sh | 4 ++-- 11 3 files changed, 6 insertions(+), 6 deletions(-) 12 13diff --git a/src/password-store.sh b/src/password-store.sh 14index 7264ffc..68551a4 100755 15--- a/src/password-store.sh 16+++ b/src/password-store.sh 17@@ -155,11 +155,11 @@ clip() { 18 # variable. Specifically, it cannot store nulls nor (non-trivally) store 19 # trailing new lines. 20 local sleep_argv0="password store sleep on display $DISPLAY" 21- pkill -f "^$sleep_argv0" 2>/dev/null && sleep 0.5 22+ pkill -P $(pgrep -f "^$sleep_argv0") 2>/dev/null && sleep 0.5 23 local before="$(xclip -o -selection "$X_SELECTION" 2>/dev/null | $BASE64)" 24 echo -n "$1" | xclip -selection "$X_SELECTION" || die "Error: Could not copy data to the clipboard" 25 ( 26- ( exec -a "$sleep_argv0" bash <<<"trap 'kill %1' TERM; sleep '$CLIP_TIME' & wait" ) 27+ ( exec -a "$sleep_argv0" bash <(echo trap 'kill %1' TERM\; sleep "$CLIP_TIME & wait") ) 28 local now="$(xclip -o -selection "$X_SELECTION" | $BASE64)" 29 [[ $now != $(echo -n "$1" | $BASE64) ]] && before="$now" 30 31diff --git a/src/platform/cygwin.sh b/src/platform/cygwin.sh 32index 5a8d5ea..423e0ce 100644 33--- a/src/platform/cygwin.sh 34+++ b/src/platform/cygwin.sh 35@@ -3,11 +3,11 @@ 36 37 clip() { 38 local sleep_argv0="password store sleep on display $DISPLAY" 39- pkill -f "^$sleep_argv0" 2>/dev/null && sleep 0.5 40+ pkill -P $(pgrep -f "^$sleep_argv0") 2>/dev/null && sleep 0.5 41 local before="$($BASE64 < /dev/clipboard)" 42 echo -n "$1" > /dev/clipboard 43 ( 44- ( exec -a "$sleep_argv0" sleep "$CLIP_TIME" ) 45+ ( exec -a "$sleep_argv0" bash <(echo sleep "$CLIP_TIME") ) 46 local now="$($BASE64 < /dev/clipboard)" 47 [[ $now != $(echo -n "$1" | $BASE64) ]] && before="$now" 48 echo "$before" | $BASE64 -d > /dev/clipboard 49diff --git a/src/platform/darwin.sh b/src/platform/darwin.sh 50index 342ecce..9e12837 100644 51--- a/src/platform/darwin.sh 52+++ b/src/platform/darwin.sh 53@@ -3,11 +3,11 @@ 54 55 clip() { 56 local sleep_argv0="password store sleep for user $(id -u)" 57- pkill -f "^$sleep_argv0" 2>/dev/null && sleep 0.5 58+ pkill -P $(pgrep -f "^$sleep_argv0") 2>/dev/null && sleep 0.5 59 local before="$(pbpaste | $BASE64)" 60 echo -n "$1" | pbcopy 61 ( 62- ( exec -a "$sleep_argv0" sleep "$CLIP_TIME" ) 63+ ( exec -a "$sleep_argv0" bash <(echo sleep "$CLIP_TIME") ) 64 local now="$(pbpaste | $BASE64)" 65 [[ $now != $(echo -n "$1" | $BASE64) ]] && before="$now" 66 echo "$before" | $BASE64 -d | pbcopy 67-- 682.16.4 69