separate files for networking and services
This commit is contained in:
28
pkgs/liminix-tools/networking/default.nix
Normal file
28
pkgs/liminix-tools/networking/default.nix
Normal file
@@ -0,0 +1,28 @@
|
||||
{
|
||||
callPackage
|
||||
, liminix
|
||||
}:
|
||||
let inherit (liminix.services) oneshot longrun;
|
||||
in {
|
||||
interface = { type, device } @ args: oneshot {
|
||||
name = "${device}.link";
|
||||
up = "ip link set up dev ${device}";
|
||||
down = "ip link set down dev ${device}";
|
||||
} // {
|
||||
inherit device;
|
||||
};
|
||||
address = interface: { family, prefixLength, address } @ args:
|
||||
let inherit (builtins) toString;
|
||||
in oneshot {
|
||||
dependencies = [ interface ];
|
||||
name = "${interface.device}.addr.${address}";
|
||||
up = "ip address add ${address}/${toString prefixLength} dev ${interface.device} ";
|
||||
down = "ip address del ${address}/${toString prefixLength} dev ${interface.device} ";
|
||||
};
|
||||
udhcpc = callPackage ./udhcpc.nix {};
|
||||
odhcpc = interface: { ... } @ args: longrun {
|
||||
name = "${interface.device}.odhcp";
|
||||
run = "odhcpcd ${interface.device}";
|
||||
};
|
||||
pppoe = callPackage ./pppoe.nix {};
|
||||
}
|
Reference in New Issue
Block a user