shell-customization #4

Open
lbailly wants to merge 61 commits from shell-customization into main
3 changed files with 15 additions and 3 deletions
Showing only changes of commit 21ff11503e - Show all commits

View file

@ -28,6 +28,12 @@ in
type = types.str;
description = "bridge interface name to create";
};
macAddressFromInterface = mkOption {
type = types.nullOr liminix.lib.types.service;
default = null;
description = "reuse mac address from an existing interface service";
};
};
members = config.system.callService ./members.nix {
primary = mkOption {

View file

@ -3,15 +3,20 @@
, ifwait
, lib
}:
{ ifname } :
{ ifname, macAddressFromInterface ? null } :
let
inherit (liminix.services) bundle oneshot;
inherit (lib) mkOption types;
inherit (lib) mkOption types optional;
in oneshot rec {
name = "${ifname}.link";
up = ''
ip link add name ${ifname} type bridge
${if macAddressFromInterface == null then
"ip link add name ${ifname} type bridge"
else
"ip link add name ${ifname} address $(output ${macAddressFromInterface} ether) type bridge"}
${liminix.networking.ifup name ifname}
'';
down = "ip link set down dev ${ifname}";
dependencies = optional (macAddressFromInterface != null) macAddressFromInterface;
}

View file

@ -9,6 +9,7 @@
ip link set up dev ${ifname}
(in_outputs ${name}
echo ${ifname} > ifname
cat /sys/class/net/${ifname}/address > ether
)
'';
}