Fix the OpenVPN jobs

This commit is contained in:
Eelco Dolstra 2012-08-30 21:11:36 -04:00
parent 8adc1ee92e
commit e0e0e57c26

View File

@ -11,8 +11,8 @@ let
makeOpenVPNJob = cfg: name: makeOpenVPNJob = cfg: name:
let let
path = (getAttr "openvpn-${name}" config.jobs).path; path = (getAttr "openvpn-${name}" config.boot.systemd.services).path;
upScript = '' upScript = ''
#! /bin/sh #! /bin/sh
exec > /var/log/openvpn-${name}-up 2>&1 exec > /var/log/openvpn-${name}-up 2>&1
@ -28,17 +28,17 @@ let
fi fi
fi fi
done done
${cfg.up} ${cfg.up}
''; '';
downScript = '' downScript = ''
#! /bin/sh #! /bin/sh
exec > /var/log/openvpn-${name}-down 2>&1 exec > /var/log/openvpn-${name}-down 2>&1
export PATH=${path} export PATH=${path}
${cfg.down} ${cfg.down}
''; '';
configFile = pkgs.writeText "openvpn-config-${name}" configFile = pkgs.writeText "openvpn-config-${name}"
'' ''
${optionalString (cfg.up != "" || cfg.down != "") "script-security 2"} ${optionalString (cfg.up != "" || cfg.down != "") "script-security 2"}
@ -46,7 +46,7 @@ let
${optionalString (cfg.up != "") "up ${pkgs.writeScript "openvpn-${name}-up" upScript}"} ${optionalString (cfg.up != "") "up ${pkgs.writeScript "openvpn-${name}-up" upScript}"}
${optionalString (cfg.down != "") "down ${pkgs.writeScript "openvpn-${name}-down" downScript}"} ${optionalString (cfg.down != "") "down ${pkgs.writeScript "openvpn-${name}-down" downScript}"}
''; '';
in { in {
description = "OpenVPN instance ${name}"; description = "OpenVPN instance ${name}";
@ -76,7 +76,7 @@ in
default = {}; default = {};
example = { example = {
server = { server = {
config = '' config = ''
# Simplest server configuration: http://openvpn.net/index.php/documentation/miscellaneous/static-key-mini-howto.html. # Simplest server configuration: http://openvpn.net/index.php/documentation/miscellaneous/static-key-mini-howto.html.
@ -88,7 +88,7 @@ in
up = "ip route add ..."; up = "ip route add ...";
down = "ip route del ..."; down = "ip route del ...";
}; };
client = { client = {
config = '' config = ''
client client
@ -103,7 +103,7 @@ in
up = "echo nameserver $nameserver | ${pkgs.openresolv}/sbin/resolvconf -m 0 -a $dev"; up = "echo nameserver $nameserver | ${pkgs.openresolv}/sbin/resolvconf -m 0 -a $dev";
down = "${pkgs.openresolv}/sbin/resolvconf -d $dev"; down = "${pkgs.openresolv}/sbin/resolvconf -d $dev";
}; };
}; };
description = '' description = ''
@ -116,7 +116,7 @@ in
''; '';
type = types.attrsOf types.optionSet; type = types.attrsOf types.optionSet;
options = { options = {
config = mkOption { config = mkOption {
@ -158,9 +158,9 @@ in
jobs = listToAttrs (mapAttrsFlatten (name: value: nameValuePair "openvpn-${name}" (makeOpenVPNJob value name)) cfg.servers); jobs = listToAttrs (mapAttrsFlatten (name: value: nameValuePair "openvpn-${name}" (makeOpenVPNJob value name)) cfg.servers);
environment.systemPackages = [ openvpn ]; environment.systemPackages = [ openvpn ];
boot.kernelModules = [ "tun" ]; boot.kernelModules = [ "tun" ];
}; };
} }