liminix/modules/ppp/pppoe.nix

31 lines
642 B
Nix

{
lib,
liminix,
output-template,
ppp,
pppoe,
serviceFns,
svc,
writeAshScript,
callPackage
} :
{ interface,
ppp-options,
lcpEcho,
username,
password,
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;
command = ''
exec ${ppp}/bin/pppd pty "${pppoe}/bin/pppoe ${timeoutOpt} -I $(output ${interface} ifname)" file /run/${name}/ppp-options
'';
dependencies = [ interface ];
}