mirror of
https://github.com/limosek/zaf.git
synced 2024-11-24 03:19:05 +01:00
34 lines
650 B
Bash
34 lines
650 B
Bash
#!/bin/sh
|
|
|
|
. $(dirname $0)/preload.sh
|
|
|
|
help() {
|
|
zaf_err "$0 key cmd"
|
|
}
|
|
|
|
lkey="$1"
|
|
[ -z "$lkey" ] && help
|
|
shift
|
|
|
|
[ -z "${ZAF_LOCK_SECONDS}" ] && seconds=5
|
|
[ -z "${ZAF_LOCK_FORCE}" ] && force=1
|
|
|
|
lockfile="/tmp/zaflock_${lkey}"
|
|
i=0
|
|
while [ -f "$lockfile" ] && [ $i -lt $seconds ]; do
|
|
sleep 1
|
|
i=$(expr $i + 1)
|
|
done
|
|
if [ -f "$lockfile" ] && [ -n "$force" ]; then
|
|
logger -s -t "zlock" -p daemon.warn "Releasing $lockfile!"
|
|
rm -f "$lockfile"
|
|
fi
|
|
if [ -f "$lockfile" ] && [ -z "$force" ]; then
|
|
logger -s -t "zlock" -p daemon.err "Could not get lock for $lockfile!"
|
|
exit 1
|
|
fi
|
|
|
|
[ -n "$*" ] && $@ 2>"$lockfile"
|
|
[ -s "$lockfile" ] && zaf_wrn <"$lockfile"
|
|
|