exit-post-hook-unlock.sh: use a trap to release the lock
[experiments/hook-lock.git] / exit-post-hook-unlock.sh
index 02d3648..1db555f 100755 (executable)
@@ -19,6 +19,8 @@ LOCKDIR=/run/lock/mylockdir
 LOCKPID=$(cat "$LOCKDIR/pid")
 [ "$LOCKPID" = $PPID ] || { echo "The enter script was launched from another process. Unlocking aborted." >&2; exit 1; }
 
 LOCKPID=$(cat "$LOCKDIR/pid")
 [ "$LOCKPID" = $PPID ] || { echo "The enter script was launched from another process. Unlocking aborted." >&2; exit 1; }
 
-# Do stuff here
+# Use a trap to release the lock even if the commands below fail.
+trap 'rm -rf "$LOCKDIR"' EXIT
+trap 'exit 2' HUP INT QUIT PIPE TERM
 
 
-rm -rf "$LOCKDIR"
+# Do stuff here.