wicd: integrate with upstart events

quite some services need to be started/restarted when a connection is
established/teared down. Also, some services are optional depending on
the connected access point. For example: use a vpn on an untrusted
network.

these small trigger scripts don't change any behaviour by themselves,
but allow you to hook in to them if you need.

example use:

  jobs.gw6c.startOn = pkgs.lib.mkForce "started  openvpn-dcsOffice";
  jobs.gw6c.stopOn  = pkgs.lib.mkForce "stopping openvpn-dcsOffice";
  jobs."openvpn-dcsOffice".startOn        = pkgs.lib.mkForce "wicd-postconnect";
  jobs."openvpn-dcsOffice".stopOn         = pkgs.lib.mkForce "stopping network-interfaces or wicd-predisconnect";

In the example, I use 3 layers. When a physical connection is
available (wifi connect), I setup a vpn connection, and setup an ipv6
tunnel on top of that. When disconnecting, they are automatically shut
down in the right order as well.

svn path=/nixpkgs/trunk/; revision=31662
This commit is contained in:
Peter Simons 2012-01-18 20:38:34 +00:00
parent 5ebdf058cc
commit 0f3fa64430

View File

@ -85,6 +85,17 @@ stdenv.mkDerivation rec {
# <http://wicd.net/punbb/viewtopic.php?id=87>.
cp -v "${./wpa2-ttls}" "$out/etc/encryption/templates/wpa2-ttls"
echo "wpa2-ttls" >> "$out/etc/encryption/templates/active"
# have wicd generate upstart events
echo '#!/bin/sh
initctl emit -n wicd-preconnect ITYPE="$1" ESSID="$2" BSSID="$3"' > $out/etc/scripts/preconnect/upstart-emit
echo '#!/bin/sh
initctl emit -n wicd-postconnect ITYPE="$1" ESSID="$2" BSSID="$3"' > $out/etc/scripts/postconnect/upstart-emit
echo '#!/bin/sh
initctl emit -n wicd-predisconnect ITYPE="$1" ESSID="$2" BSSID="$3"' > $out/etc/scripts/predisconnect/upstart-emit
echo '#!/bin/sh
initctl emit -n wicd-postdisconnect ITYPE="$1" ESSID="$2" BSSID="$3"' > $out/etc/scripts/postdisconnect/upstart-emit
chmod a+x $out/etc/scripts/*/upstart-emit
'';
meta = {