diff --git a/modules/cdc-ncm/wwan.nix b/modules/cdc-ncm/wwan.nix index 6c177be..216f432 100644 --- a/modules/cdc-ncm/wwan.nix +++ b/modules/cdc-ncm/wwan.nix @@ -47,11 +47,9 @@ let setup = bundle { name = "modemm-mm-mm-mm"; contents = [ - (longrun { - name = "watch-for-usb-modeswitch"; - isTrigger = true; - buildInputs = [ modeswitch ]; - run = "${uevent-watch}/bin/uevent-watch -s ${modeswitch.name} devtype=usb_device product=12d1/14fe/102"; + (svc.uevent-rule.build { + service = modeswitch; + terms = { devtype = "usb_device"; product = "12d1/14fe/102"; }; }) (svc.uevent-rule.build { service = atz; diff --git a/modules/mount/default.nix b/modules/mount/default.nix index 50e9ef2..944990a 100644 --- a/modules/mount/default.nix +++ b/modules/mount/default.nix @@ -19,9 +19,9 @@ in { type = liminix.lib.types.serviceDefn; }; }; - imports = [ ../mdevd.nix ]; + imports = [ ../mdevd.nix ../service-trigger ]; config.system.service.mount = - let svc = liminix.callService ./service.nix { + let svc = config.system.callService ./service.nix { partlabel = mkOption { type = types.str; example = "my-usb-stick"; diff --git a/modules/mount/service.nix b/modules/mount/service.nix index ed30879..ab0b91b 100644 --- a/modules/mount/service.nix +++ b/modules/mount/service.nix @@ -1,7 +1,7 @@ { liminix -, uevent-watch , lib +, svc }: { partlabel, mountpoint, options, fstype }: let @@ -15,12 +15,11 @@ let up = "mount -t ${fstype} ${options_string} ${device} ${mountpoint}"; down = "umount ${mountpoint}"; }; -in longrun { - name = "watch-mount.${lib.strings.sanitizeDerivationName mountpoint}"; - isTrigger = true; - buildInputs = [ mount_service ]; - - run = '' - ${uevent-watch}/bin/uevent-watch -s ${mount_service.name} -n ${device} partname=${partlabel} devtype=partition - ''; +in svc.uevent-rule.build { + service = mount_service; + symlink = device; + terms = { + partname = partlabel; + devtype = "partition"; + }; }