Instead of making the lock file with touch, use mkdir since it's the only
portable atomic transaction available to shell scripts.

Signed-off-by: Andres P <[email protected]>
---
 scripts/pacman-optimize.sh.in |   12 +++++-------
 1 files changed, 5 insertions(+), 7 deletions(-)

diff --git a/scripts/pacman-optimize.sh.in b/scripts/pacman-optimize.sh.in
index 78b2345..f95f827 100644
--- a/scripts/pacman-optimize.sh.in
+++ b/scripts/pacman-optimize.sh.in
@@ -67,7 +67,7 @@ die() {
 }
 
 die_r() {
-       rm -f "$lockfile"
+       rm -rf "$lock"
        die "$@"
 }
 
@@ -109,15 +109,13 @@ fi
 
 # strip any trailing slash from our dbroot
 dbroot="${dbroot%/}"
-# form the path to our lockfile location
-lockfile="${dbroot}/db.lck"
+# form the path to our db lock
+lock="${dbroot}/db.lck"
 
 # make sure pacman isn't running
-if [[ -f $lockfile ]]; then
+if ! mkdir "$lock"; then
        die "$(gettext "Pacman lock file was found. Cannot run while pacman is 
running.")"
 fi
-# do not let pacman run while we do this
-touch "$lockfile"
 
 workdir=$(mktemp -d /tmp/pacman-optimize.XXXXXXXXXX) ||
        die_r "$(gettext "ERROR: Can not create temp directory for database 
building.")\n" >&2
@@ -174,7 +172,7 @@ fi
 rm -rf "$dbroot.old"
 
 # remove the lock file and our working directory with sums and tarfile
-rm -f "$lockfile"
+rm -rf "$lock"
 rm -rf "$workdir"
 
 echo
-- 
1.7.1


Reply via email to