#!/bin/bash # vim:set et ts=4 sw=4: LOCKFILE=/org/wanna-build/triggers/lock set -eE cleanup() { rm -rf "$LOCKFILE" } if ! lockfile -0 -r0 "$LOCKFILE" 2>/dev/null then # Process already running. exit 0 fi # Got the lock. trap cleanup ERR TERM HUP INT QUIT EXIT # Do at least one run. work=1 while [ $work -eq 1 ] do # No further runs unless at least one signal is found. work=0 find /org/wanna-build/signals -type f | while read signal_file do # Process it. work=1 signal=$(basename $signal_file) /org/wanna-build/triggers/trigger.${signal/.?*} ${signal/?*./} rm $signal_file done done exit 0