at master 1.1 kB view raw
1{ 2 buildEnv, 3 libwebcam, 4 makeWrapper, 5 runCommand, 6 drivers ? [ ], 7 udevDebug ? false, 8}: 9 10let 11 version = "0.0.0"; 12 13 dataPath = buildEnv { 14 name = "uvcdynctrl-with-drivers-data-path"; 15 paths = drivers ++ [ libwebcam ]; 16 pathsToLink = [ "/share/uvcdynctrl/data" ]; 17 ignoreCollisions = false; 18 }; 19 20 dataDir = "${dataPath}/share/uvcdynctrl/data"; 21 udevDebugVarValue = if udevDebug then "1" else "0"; 22in 23 24runCommand "uvcdynctrl-udev-rules-${version}" 25 { 26 inherit dataPath; 27 nativeBuildInputs = [ 28 makeWrapper 29 ]; 30 buildInputs = [ 31 libwebcam 32 ]; 33 dontPatchELF = true; 34 dontStrip = true; 35 preferLocalBuild = true; 36 } 37 '' 38 mkdir -p "$out/lib/udev" 39 makeWrapper "${libwebcam}/lib/udev/uvcdynctrl" "$out/lib/udev/uvcdynctrl" \ 40 --set NIX_UVCDYNCTRL_DATA_DIR "${dataDir}" \ 41 --set NIX_UVCDYNCTRL_UDEV_DEBUG "${udevDebugVarValue}" 42 43 mkdir -p "$out/lib/udev/rules.d" 44 cat "${libwebcam}/lib/udev/rules.d/80-uvcdynctrl.rules" | \ 45 sed -r "s#RUN\+\=\"([^\"]+)\"#RUN\+\=\"$out/lib/udev/uvcdynctrl\"#g" > \ 46 "$out/lib/udev/rules.d/80-uvcdynctrl.rules" 47 ''