#!/bin/hush # wait for lock while [ -f /tmp/bbinit.lock ] do sleep 0.1 done # lock eventhandler touch /tmp/bbinit.lock # source list of finished events [ -f /tmp/events ] && . /tmp/events # go through all unhandled events for f in $( ls -1 /etc/events.d/ ) do . /etc/events.d/$f # check dependencies eval dep=\$${f}_depends havealldeps=1 for d in $dep do eval havedep=\$have${d} [ "x$havedep" == "x1" ] || havealldeps=0 done # if nothing is missing execute script if [ "x$havealldeps" == "x1" ]; then echo executing $f /etc/bbinit.d/$f & rm /etc/events.d/$f fi done # unlock eventhandler rm /tmp/bbinit.lock