+#!/bin/bash
+
+lockfile=/var/run/puppet-apply.lock
+path=`dirname $0`
+path=`cd $path/..; pwd`
+
+if [ $(id -u) -gt 0 ]; then
+ echo "You must be root to run this script." >&2
+ exit 2
+fi
+
+if (set -o noclobber; echo "$$" > "$lockfile") 2> /dev/null; then
+ trap 'rm -f "$lockfile"; exit $?' INT TERM EXIT
+
+ puppet apply "$@"
+
+ rm -f "$lockfile"
+ trap - INT TERM EXIT
+else
+ echo "Failed to acquire lockfile: $lockfile." >&2
+ echo "Held by $(cat $lockfile 2>/dev/null)" >&2
+ exit 1
+fi