3
0
Fork 0
forked from mirrors/nixpkgs
nixpkgs/upstart-jobs/dhclient.nix
Eelco Dolstra acf656125c * Lots of refactoring.
* Clear the PATH in most scripts.  This helps to ensure purity.

svn path=/nixos/trunk/; revision=7299
2006-12-10 22:29:44 +00:00

44 lines
1,019 B
Nix

{dhcp, nettools}:
{
name = "dhclient";
job = "
description \"DHCP client\"
start on network-interfaces/started
stop on network-interfaces/stop
script
# Determine the interface on which to start dhclient.
interfaces=
# !!! apparent race; operstate seems to have a slight delay, so
# if dhclient is started right after network-interfaces, we don't
# always see all the interfaces.
#for i in $(cd /sys/class/net && ls -d *); do
# if test \"$i\" != \"lo\" -a \"$(cat /sys/class/net/$i/operstate)\" != 'down'; then
# interfaces=\"$interfaces $i\"
# fi
#done
for i in $(${nettools}/sbin/ifconfig | grep '^[^ ]' | sed 's/ .*//'); do
if test \"$i\" != \"lo\"; then
interfaces=\"$interfaces $i\"
fi
done
if test -z \"$interfaces\"; then
echo 'No interfaces on which to start dhclient!'
exit 1
fi
mkdir -m 755 -p /var/state/dhcp
exec ${dhcp}/sbin/dhclient -d $interfaces
end script
";
}