{ liminix , ifwait , lib }: { members, primary } : let inherit (liminix.networking) interface; inherit (liminix.services) bundle oneshot; inherit (lib) mkOption types; addif = member : oneshot { name = "${primary.name}.member.${member.name}"; up = '' dev=$(output ${member} ifname) ${ifwait}/bin/ifwait $dev running && ip link set dev $dev master $(output ${primary} ifname) ''; down = "ip link set dev $(output ${member} ifname) nomaster"; dependencies = [ primary member ]; }; in bundle { name = "${primary.name}.members"; contents = map addif members; }