2025-05-16 15:37:55 +02:00
|
|
|
# shellcheck shell=bash
|
|
|
|
|
|
|
|
udevCheckHook() {
|
|
|
|
runHook preUdevCheck
|
|
|
|
echo Executing udevCheckPhase
|
|
|
|
|
|
|
|
# as per nixos/modules/services/hardware/udev.nix:
|
|
|
|
# - both /lib and /etc is valid paths for udev rules
|
|
|
|
# - udev rules are expected to be part of the $bin output
|
|
|
|
# However, not all udev rules are actually in $bin (some are in $lib or $out).
|
|
|
|
# This means we have to actually check all outputs here.
|
|
|
|
for output in $(getAllOutputNames); do
|
|
|
|
for path in etc lib ; do
|
|
|
|
if [ -d "${!output}/$path/udev/rules.d" ]; then
|
|
|
|
@udevadm@ verify --resolve-names=never --no-style "${!output}/$path/udev/rules.d"
|
|
|
|
fi
|
|
|
|
done
|
|
|
|
done
|
|
|
|
|
|
|
|
runHook postUdevCheck
|
|
|
|
echo Finished udevCheckPhase
|
|
|
|
}
|
|
|
|
|
2025-05-21 13:44:58 +02:00
|
|
|
if [[ -z "${dontUdevCheck-}" && -n "@udevadm@" ]]; then
|
2025-05-16 15:37:55 +02:00
|
|
|
echo "Using udevCheckHook"
|
|
|
|
preInstallCheckHooks+=(udevCheckHook)
|
|
|
|
fi
|