nixos/wireguard: extract common env for ip route to variable
This commit is contained in:
parent
f8dcf9d781
commit
5b464b4ebd
1 changed files with 7 additions and 8 deletions
|
@ -4,6 +4,11 @@ let
|
|||
cfg = config.local.services.vpn.wireguard;
|
||||
|
||||
addrsViaDefaultInterface = import ./defaultInterfaceAddrs.secret.nix;
|
||||
|
||||
ipRouteParams = ''
|
||||
addr=`${pkgs.iproute2}/bin/ip route | ${pkgs.gawk}/bin/awk '/default/ {print $3; exit}'`
|
||||
interface=`${pkgs.iproute2}/bin/ip route | ${pkgs.gawk}/bin/awk '/default/ {print $5; exit}'`
|
||||
'';
|
||||
in
|
||||
{
|
||||
options.local.services.vpn.wireguard = with lib; {
|
||||
|
@ -45,18 +50,12 @@ in
|
|||
# Path to the private key file.
|
||||
privateKeyFile = cfg.privateKeyFile;
|
||||
|
||||
postUp = ''
|
||||
addr=`${pkgs.iproute2}/bin/ip route | ${pkgs.gawk}/bin/awk '/default/ {print $3; exit}'`
|
||||
interface=`${pkgs.iproute2}/bin/ip route | ${pkgs.gawk}/bin/awk '/default/ {print $5; exit}'`
|
||||
'' + lib.concatLines (map
|
||||
postUp = ipRouteParams + lib.concatLines (map
|
||||
(addr: "${pkgs.iproute2}/bin/ip route add ${addr} via $addr dev $interface || true")
|
||||
addrsViaDefaultInterface
|
||||
);
|
||||
|
||||
preDown = ''
|
||||
addr=`${pkgs.iproute2}/bin/ip route | ${pkgs.gawk}/bin/awk '/default/ {print $3; exit}'`
|
||||
interface=`${pkgs.iproute2}/bin/ip route | ${pkgs.gawk}/bin/awk '/default/ {print $5; exit}'`
|
||||
'' + lib.concatLines (map
|
||||
preDown = ipRouteParams + lib.concatLines (map
|
||||
(addr: "${pkgs.iproute2}/bin/ip route del ${addr} via $addr dev $interface || true")
|
||||
addrsViaDefaultInterface
|
||||
);
|
||||
|
|
Loading…
Add table
Reference in a new issue