[pass] [PASS][PATCH] Renamed filelock for clarity. (new feature passmenu multi-clip)
mitfree
lists at ampling.com
Wed Jul 20 00:33:21 CEST 2016
Hi,
This is my third patch to passmenu; the last was on May 14th, 2016.
If you install this patch, passmenu lock will have a '.lock' extension.
My first email on May 8th, 2016 better explains why I'm using a file
lock and adding a multiclip feature in the first place. This file lock
business is just an empty folder which holds the pid of passmenu in the
filename. It's a safe (cross platform) way to prevent two passmenu sessions
from running at the same time. I'm aiming for a more consistent user
experience.
I hope you find this update to be as stable as I found the last patch.
I'm testing on Linux. I would particularly welcome feedback from others.
For those who like github:
https://github.com/ampling/pass/blob/passmenu_multi-clip/contrib/dmenu/passmenu
From dacf9f38ba38b86b79420d2cc3b25ff0191ed9b2 Mon Sep 17 00:00:00 2001
From: ampling <ampling at users.noreply.github.com>
Date: Tue, 19 Jul 2016 16:11:10 -0400
Subject: [PATCH] Renamed filelock for clarity.
---
contrib/dmenu/passmenu | 15 ++++++++-------
1 file changed, 8 insertions(+), 7 deletions(-)
diff --git a/contrib/dmenu/passmenu b/contrib/dmenu/passmenu
index 40dfe97..e1835d2 100755
--- a/contrib/dmenu/passmenu
+++ b/contrib/dmenu/passmenu
@@ -26,8 +26,8 @@ _finish () {
[[ True == $cleanup ]] &&
printf "$before" | base64 -d | xclip -sel "$X_SELECTION" -i
[[ True = "$cleanup" ]] &&
- if compgen -G "/tmp/passmenulock.1000*" >/dev/null 2>&1 ;then
- rmdir /tmp/passmenulock.*.*."$$" >/dev/null 2>&1
+ if compgen -G "/tmp/passmenu.1000*" >/dev/null 2>&1 ;then
+ rmdir /tmp/passmenu.*.*."$$".lock >/dev/null 2>&1
fi
exit
}
@@ -47,22 +47,23 @@ trap _finish EXIT
## Clearing old filelock(s).
umask 077
stalelock=( "${stalelock:-''}" )
-stalelock=( "$(find '/tmp' -maxdepth 1 -name "passmenulock."$userID".*" -user $(whoami) -print0 -quit)" ) &&
+stalelock=( "$(find '/tmp' -maxdepth 1 -name "passmenu."$userID".*" -user $(whoami) -print0 -quit -type d)" ) &&
if test -n "$stalelock" ;then
+ stalename=${stalelock%.*}
report=( "$(ps -u $(id -u $(whoami)) aux | grep "bash" |
grep "passmenu" | grep -v "$$")" )
- stalePID=( "$(printf $stalelock |
- sed -e "s/\/tmp\/passmenulock\.[0-9]\{1,6\}\?\..*\.//g")" )
+ stalePID=( "$(printf $stalename |
+ sed -e "s/\/tmp\/passmenu\.[0-9]\{1,6\}\?\..*\.//g")" )
if [[ "$report" == *"$stalePID"* ]] ;then
kill "$stalePID" || exit 1
else
- rmdir /tmp/passmenulock."$userID".* >/dev/null 2>&1 ||
+ rmdir /tmp/passmenu."$userID".* >/dev/null 2>&1 ||
{ echo ":: Unable to clear old filelock"; exit 1; }
fi
fi
## Adding a new filelock
-( mktemp -d "/tmp/passmenulock."$userID".XXXXXXXXXX"."$$" >/dev/null 2>&1 && cleanup=True ||
+( mktemp -d "/tmp/passmenu."$userID".XXXXXXXXXX"."$$".lock >/dev/null 2>&1 && cleanup=True ||
{ echo >&2 ":: Unable to make a filelock."; exit 1; } )
cleanup=True
--
2.9.0
--
At your service,
mitfree
https://ampling.com
-------------- next part --------------
A non-text attachment was scrubbed...
Name: passmenu_multi-clip.patch
Type: text/x-diff
Size: 26266 bytes
Desc: not available
URL: <http://lists.zx2c4.com/pipermail/password-store/attachments/20160719/8b79ff68/attachment-0003.patch>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: renamed_filelock.patch
Type: text/x-diff
Size: 2127 bytes
Desc: not available
URL: <http://lists.zx2c4.com/pipermail/password-store/attachments/20160719/8b79ff68/attachment-0004.patch>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: Delayed_file-lock_improves_corner-case.patch
Type: text/x-diff
Size: 29709 bytes
Desc: not available
URL: <http://lists.zx2c4.com/pipermail/password-store/attachments/20160719/8b79ff68/attachment-0005.patch>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 949 bytes
Desc: signature
URL: <http://lists.zx2c4.com/pipermail/password-store/attachments/20160719/8b79ff68/attachment-0001.asc>
More information about the Password-Store
mailing list