nixfmt-rfc-style
There is nothing in this commit except for the changes made by nix-shell -p nixfmt-rfc-style --run "nixfmt ." If this has mucked up your open branches then sorry about that. You can probably nixfmt them to match before merging
This commit is contained in:
@@ -1,20 +1,32 @@
|
||||
{ writeAshScript, liminix, svc, lib, serviceFns, output-template }:
|
||||
{
|
||||
writeAshScript,
|
||||
liminix,
|
||||
svc,
|
||||
lib,
|
||||
serviceFns,
|
||||
output-template,
|
||||
}:
|
||||
{
|
||||
command,
|
||||
name,
|
||||
debug
|
||||
, username,
|
||||
debug,
|
||||
username,
|
||||
password,
|
||||
lcpEcho,
|
||||
ppp-options,
|
||||
dependencies ? []
|
||||
} :
|
||||
dependencies ? [ ],
|
||||
}:
|
||||
let
|
||||
inherit (lib) optional optionals escapeShellArgs concatStringsSep;
|
||||
inherit (lib)
|
||||
optional
|
||||
optionals
|
||||
escapeShellArgs
|
||||
concatStringsSep
|
||||
;
|
||||
inherit (liminix.services) longrun;
|
||||
inherit (builtins) toJSON toString typeOf;
|
||||
|
||||
ip-up = writeAshScript "ip-up" {} ''
|
||||
ip-up = writeAshScript "ip-up" { } ''
|
||||
exec >&5 2>&5
|
||||
. ${serviceFns}
|
||||
in_outputs ${name}
|
||||
@@ -28,7 +40,7 @@ let
|
||||
if test -n "''${DNS2}" ;then echo ''${DNS2} > ns2 ; fi
|
||||
test -e ipv6-address && echo >/proc/self/fd/10
|
||||
'';
|
||||
ip6-up = writeAshScript "ip6-up" {} ''
|
||||
ip6-up = writeAshScript "ip6-up" { } ''
|
||||
exec >&5 2>&5
|
||||
. ${serviceFns}
|
||||
in_outputs ${name}
|
||||
@@ -37,35 +49,61 @@ let
|
||||
test -e ifname && echo >/proc/self/fd/10
|
||||
'';
|
||||
literal_or_output =
|
||||
let v = o: ({
|
||||
string = toJSON;
|
||||
int = toJSON;
|
||||
lambda = (o: "output(${toJSON (o "service")}, ${toJSON (o "path")})");
|
||||
}.${typeOf o}) o;
|
||||
in o: "{{ ${v o} }}";
|
||||
let
|
||||
v =
|
||||
o:
|
||||
(
|
||||
{
|
||||
string = toJSON;
|
||||
int = toJSON;
|
||||
lambda = (o: "output(${toJSON (o "service")}, ${toJSON (o "path")})");
|
||||
}
|
||||
.${typeOf o}
|
||||
)
|
||||
o;
|
||||
in
|
||||
o: "{{ ${v o} }}";
|
||||
|
||||
ppp-options' =
|
||||
["+ipv6" "noauth"]
|
||||
[
|
||||
"+ipv6"
|
||||
"noauth"
|
||||
]
|
||||
++ optional debug "debug"
|
||||
++ optionals (username != null) ["name" (literal_or_output username)]
|
||||
++ optionals (password != null) ["password" (literal_or_output password)]
|
||||
++ optionals (username != null) [
|
||||
"name"
|
||||
(literal_or_output username)
|
||||
]
|
||||
++ optionals (password != null) [
|
||||
"password"
|
||||
(literal_or_output password)
|
||||
]
|
||||
++ optional lcpEcho.adaptive "lcp-echo-adaptive"
|
||||
++ optionals (lcpEcho.interval != null)
|
||||
["lcp-echo-interval" (toString lcpEcho.interval)]
|
||||
++ optionals (lcpEcho.failure != null)
|
||||
["lcp-echo-failure" (toString lcpEcho.failure)]
|
||||
++ optionals (lcpEcho.interval != null) [
|
||||
"lcp-echo-interval"
|
||||
(toString lcpEcho.interval)
|
||||
]
|
||||
++ optionals (lcpEcho.failure != null) [
|
||||
"lcp-echo-failure"
|
||||
(toString lcpEcho.failure)
|
||||
]
|
||||
++ ppp-options
|
||||
++ ["ip-up-script" ip-up
|
||||
"ipv6-up-script" ip6-up
|
||||
"ipparam" name
|
||||
"nodetach"
|
||||
# usepeerdns requests DNS servers from peer (which is good),
|
||||
# then attempts to write them to /nix/store/xxxx/ppp/resolv.conf
|
||||
# which causes an unsightly but inconsequential error message
|
||||
"usepeerdns"
|
||||
"nodefaultroute"
|
||||
"logfd" "2"
|
||||
];
|
||||
++ [
|
||||
"ip-up-script"
|
||||
ip-up
|
||||
"ipv6-up-script"
|
||||
ip6-up
|
||||
"ipparam"
|
||||
name
|
||||
"nodetach"
|
||||
# usepeerdns requests DNS servers from peer (which is good),
|
||||
# then attempts to write them to /nix/store/xxxx/ppp/resolv.conf
|
||||
# which causes an unsightly but inconsequential error message
|
||||
"usepeerdns"
|
||||
"nodefaultroute"
|
||||
"logfd"
|
||||
"2"
|
||||
];
|
||||
service = longrun {
|
||||
inherit name;
|
||||
run = ''
|
||||
@@ -77,12 +115,15 @@ let
|
||||
${command}
|
||||
'';
|
||||
notification-fd = 10;
|
||||
timeout-up = if lcpEcho.failure != null
|
||||
then (10 + lcpEcho.failure * lcpEcho.interval) * 1000
|
||||
else 60 * 1000;
|
||||
timeout-up =
|
||||
if lcpEcho.failure != null then (10 + lcpEcho.failure * lcpEcho.interval) * 1000 else 60 * 1000;
|
||||
inherit dependencies;
|
||||
};
|
||||
in svc.secrets.subscriber.build {
|
||||
watch = lib.filter (n: typeOf n=="lambda") [ username password ];
|
||||
in
|
||||
svc.secrets.subscriber.build {
|
||||
watch = lib.filter (n: typeOf n == "lambda") [
|
||||
username
|
||||
password
|
||||
];
|
||||
inherit service;
|
||||
}
|
||||
|
@@ -13,18 +13,24 @@
|
||||
## conjunction with a DHCP uplink, or other more creative forms of
|
||||
## network connection
|
||||
|
||||
|
||||
{ lib, pkgs, config, ...}:
|
||||
{
|
||||
lib,
|
||||
pkgs,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
let
|
||||
inherit (lib) mkOption types;
|
||||
inherit (pkgs) liminix;
|
||||
mkStringOption =
|
||||
description: mkOption {
|
||||
description:
|
||||
mkOption {
|
||||
type = types.nullOr types.str;
|
||||
default = null;
|
||||
inherit description;
|
||||
};
|
||||
in {
|
||||
in
|
||||
{
|
||||
imports = [ ../secrets ];
|
||||
options = {
|
||||
system.service.pppoe = mkOption {
|
||||
@@ -61,7 +67,7 @@ in {
|
||||
default = 3;
|
||||
description = "send an LCP echo-request frame to the peer every n seconds";
|
||||
};
|
||||
failure = mkOption {
|
||||
failure = mkOption {
|
||||
type = types.nullOr types.int;
|
||||
default = 3;
|
||||
description = "terminate connection if n LCP echo-requests are sent without receiving a valid LCP echo-reply";
|
||||
@@ -75,7 +81,7 @@ in {
|
||||
ppp-options = mkOption {
|
||||
type = types.listOf types.str;
|
||||
description = "options supplied on ppp command line";
|
||||
default = [];
|
||||
default = [ ];
|
||||
};
|
||||
};
|
||||
system.service.l2tp = config.system.callService ./l2tp.nix {
|
||||
@@ -104,7 +110,7 @@ in {
|
||||
default = 3;
|
||||
description = "send an LCP echo-request frame to the peer every n seconds";
|
||||
};
|
||||
failure = mkOption {
|
||||
failure = mkOption {
|
||||
type = types.nullOr types.int;
|
||||
default = 3;
|
||||
description = "terminate connection if n LCP echo-requests are sent without receiving a valid LCP echo-reply";
|
||||
@@ -117,7 +123,7 @@ in {
|
||||
};
|
||||
ppp-options = mkOption {
|
||||
type = types.listOf types.str;
|
||||
default = [];
|
||||
default = [ ];
|
||||
description = "options supplied on ppp command line";
|
||||
};
|
||||
};
|
||||
|
@@ -7,14 +7,15 @@
|
||||
writeAshScript,
|
||||
writeText,
|
||||
xl2tpd,
|
||||
callPackage
|
||||
} :
|
||||
{ lns,
|
||||
callPackage,
|
||||
}:
|
||||
{
|
||||
lns,
|
||||
ppp-options,
|
||||
lcpEcho,
|
||||
username,
|
||||
password,
|
||||
debug
|
||||
debug,
|
||||
}:
|
||||
let
|
||||
name = "${lns}.l2tp";
|
||||
@@ -31,8 +32,16 @@ let
|
||||
max redials = 2 # this gives 1 actual retry, as xl2tpd can't count
|
||||
'';
|
||||
control = "/run/${name}/control";
|
||||
in common {
|
||||
inherit name debug username password lcpEcho ppp-options;
|
||||
in
|
||||
common {
|
||||
inherit
|
||||
name
|
||||
debug
|
||||
username
|
||||
password
|
||||
lcpEcho
|
||||
ppp-options
|
||||
;
|
||||
command = ''
|
||||
touch ${control}
|
||||
exec ${xl2tpd}/bin/xl2tpd -D -p /run/${name}/${name}.pid -c ${conf} -C ${control}
|
||||
|
@@ -7,22 +7,32 @@
|
||||
serviceFns,
|
||||
svc,
|
||||
writeAshScript,
|
||||
callPackage
|
||||
} :
|
||||
{ interface,
|
||||
callPackage,
|
||||
}:
|
||||
{
|
||||
interface,
|
||||
ppp-options,
|
||||
lcpEcho,
|
||||
username,
|
||||
password,
|
||||
debug
|
||||
debug,
|
||||
}:
|
||||
let
|
||||
name = "${interface.name}.pppoe";
|
||||
common = callPackage ./common.nix { inherit svc; };
|
||||
|
||||
timeoutOpt = if lcpEcho.interval != null then "-T ${builtins.toString (4 * lcpEcho.interval)}" else "";
|
||||
in common {
|
||||
inherit name debug username password lcpEcho ppp-options;
|
||||
timeoutOpt =
|
||||
if lcpEcho.interval != null then "-T ${builtins.toString (4 * lcpEcho.interval)}" else "";
|
||||
in
|
||||
common {
|
||||
inherit
|
||||
name
|
||||
debug
|
||||
username
|
||||
password
|
||||
lcpEcho
|
||||
ppp-options
|
||||
;
|
||||
command = ''
|
||||
exec ${ppp}/bin/pppd pty "${pppoe}/bin/pppoe ${timeoutOpt} -I $(output ${interface} ifname)" file /run/${name}/ppp-options
|
||||
'';
|
||||
|
Reference in New Issue
Block a user