You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
51 lines
853 B
51 lines
853 B
13 years ago
|
#!/bin/sh
|
||
|
|
||
|
# Notify the rc system that we're in the background
|
||
|
export IN_BACKGROUND=true
|
||
|
|
||
|
arg1="$1"
|
||
|
if [ -z "$arg1" ] ; then
|
||
|
echo "Command required" > /dev/stderr
|
||
|
exit 1
|
||
|
fi
|
||
|
shift
|
||
|
|
||
|
case "$arg1" in
|
||
|
add)
|
||
|
if [ -z "$1" ] ; then
|
||
|
echo "Command missing!" > /dev/stderr
|
||
|
exit 1
|
||
|
fi
|
||
|
|
||
|
# If we don't have a queue then just run
|
||
|
if [ ! -d /var/run/devd ] ; then
|
||
|
"$@"
|
||
|
exit $?
|
||
|
fi
|
||
|
|
||
|
cmd="$1"
|
||
|
args="$*"
|
||
|
if [ "$cmd" = "env" ] ; then
|
||
|
shift
|
||
|
while echo "$1" | grep -q "="; do
|
||
|
shift
|
||
|
[ "$1" = "--" ] && shift && break
|
||
|
done
|
||
|
cmd="$1"
|
||
|
fi
|
||
|
echo "$args" > /var/run/devd/$(basename "$cmd")
|
||
|
;;
|
||
|
flush)
|
||
|
while ! rmdir /var/run/devd 2>/dev/null ; do
|
||
|
for cmd in $(cd /var/run/devd; ls) ; do
|
||
|
args=$(cat /var/run/devd/$cmd)
|
||
|
rm -f /var/run/devd/$cmd
|
||
|
$args
|
||
|
done
|
||
|
done
|
||
|
;;
|
||
|
*)
|
||
|
echo "Unknown command $arg1"
|
||
|
;;
|
||
|
esac
|