47 lines
688 B
Bash
47 lines
688 B
Bash
|
#!/bin/bash
|
||
|
|
||
|
LOCKDIR="/tmp/snapshotslocks/"
|
||
|
|
||
|
[ ! -d "$LOCKDIR" ] && mkdir -p "$LOCKDIR"
|
||
|
|
||
|
createlock() {
|
||
|
LOCKNAME=$1
|
||
|
[ -f "$LOCKDIR/$LOCKNAME.lock" ] && exit 1
|
||
|
touch "$LOCKDIR/$LOCKNAME.lock"
|
||
|
exit 0
|
||
|
}
|
||
|
|
||
|
deletelock() {
|
||
|
LOCKNAME=$1
|
||
|
[ ! -f "$LOCKDIR/$LOCKNAME.lock" ] && exit 1
|
||
|
rm "$LOCKDIR/$LOCKNAME.lock"
|
||
|
exit 0
|
||
|
}
|
||
|
|
||
|
haslock() {
|
||
|
if ls $LOCKDIR/* 1> /dev/null 2>&1; then
|
||
|
exit 0
|
||
|
else
|
||
|
exit 1
|
||
|
fi
|
||
|
}
|
||
|
|
||
|
case $1 in
|
||
|
lock)
|
||
|
createlock $2
|
||
|
;;
|
||
|
unlock)
|
||
|
deletelock $2
|
||
|
;;
|
||
|
haslock)
|
||
|
haslock
|
||
|
;;
|
||
|
show)
|
||
|
ls $LOCKDIR
|
||
|
;;
|
||
|
*)
|
||
|
echo "What is $1" >&2
|
||
|
exit 1
|
||
|
esac
|
||
|
|