convert pppoe to serviceDefn

module-based-network
Daniel Barlow 2023-08-10 22:53:45 +01:00
parent 2942c465b9
commit 3ea40f95dc
3 changed files with 14 additions and 21 deletions

View File

@ -112,7 +112,7 @@ in rec {
domain = "fake.liminix.org";
};
services.wan = svc.pppoe {
services.wan = svc.pppoe.build {
interface = config.hardware.networkInterfaces.wan;
ppp-options = [
"debug" "+ipv6" "noauth"

View File

@ -11,14 +11,24 @@
{ lib, pkgs, config, ...}:
let
inherit (lib) mkOption types;
inherit (pkgs) liminix;
in {
options = {
system.service.pppoe = mkOption {
type = types.functionTo types.package;
type = liminix.lib.types.serviceDefn;
};
};
config = {
system.service.pppoe = pkgs.callPackage ./pppoe.nix {};
system.service.pppoe = pkgs.liminix.callService ./pppoe.nix {
interface = mkOption {
type = liminix.lib.types.service;
description = "ethernet interface to run PPPoE over";
};
ppp-options = mkOption {
type = types.listOf types.str;
description = "options supplied on ppp command line";
};
};
kernel = {
config = {
PPP = "y";

View File

@ -6,25 +6,9 @@
, writeAshScript
, serviceFns
} :
{ interface, ppp-options }:
let
inherit (liminix.services) longrun;
inherit (liminix.lib) typeChecked;
inherit (lib) mkOption types;
t = {
interface = mkOption {
type = liminix.lib.types.service;
description = "ethernet interface to run PPPoE over";
};
ppp-options = mkOption {
type = types.listOf types.str;
description = "options supplied on ppp command line";
};
};
in
params:
let
inherit (typeChecked "pppoe.nix" t params) interface ppp-options;
name = "${interface.device}.pppoe";
ip-up = writeAshScript "ip-up" {} ''
. ${serviceFns}
@ -55,7 +39,6 @@ let
"usepeerdns"
"logfd" "2"
];
in
longrun {
inherit name;