members.nix (588B)
1 { 2 liminix 3 , ifwait 4 , lib 5 }: 6 { members, primary } : 7 let 8 inherit (liminix.networking) interface; 9 inherit (liminix.services) bundle oneshot; 10 inherit (lib) mkOption types; 11 addif = member : 12 oneshot { 13 name = "add-${member.device}-to-br-${primary.device}"; 14 up = "${ifwait}/bin/ifwait ${member.device} running && ip link set dev ${member.device} master ${primary.device}"; 15 down = "ip link set dev ${member.device} nomaster"; 16 dependencies = [ primary member ]; 17 }; 18 in bundle { 19 name = "bridge-${primary.device}-members"; 20 contents = map addif members; 21 }