Clone of https://github.com/NixOS/nixpkgs.git (to stress-test knotserver)
at devShellTools-shell 50 lines 1.2 kB view raw
1{ 2 rustPlatform, 3 testers, 4 libdrm, 5 coolercontrol, 6 runtimeShell, 7}: 8 9{ 10 version, 11 src, 12 meta, 13}: 14 15rustPlatform.buildRustPackage { 16 pname = "coolercontrold"; 17 inherit version src; 18 sourceRoot = "${src.name}/coolercontrold"; 19 20 cargoHash = "sha256-ZyYyQcaYd3VZ7FL0Hki33JO3LscPfBT5gl+nw2cXvUs="; 21 22 buildInputs = [ libdrm ]; 23 24 postPatch = '' 25 # copy the frontend static resources to a directory for embedding 26 mkdir -p ui-build 27 cp -R ${coolercontrol.coolercontrol-ui-data}/* resources/app/ 28 29 # Hardcode a shell 30 substituteInPlace src/repositories/utils.rs \ 31 --replace-fail 'Command::new("sh")' 'Command::new("${runtimeShell}")' 32 ''; 33 34 postInstall = '' 35 install -Dm444 "${src}/packaging/systemd/coolercontrold.service" -t "$out/lib/systemd/system" 36 substituteInPlace "$out/lib/systemd/system/coolercontrold.service" \ 37 --replace-fail '/usr/bin' "$out/bin" 38 ''; 39 40 passthru.tests.version = testers.testVersion { 41 package = coolercontrol.coolercontrold; 42 # coolercontrold prints its version with "v" prefix 43 version = "v${version}"; 44 }; 45 46 meta = meta // { 47 description = "${meta.description} (Main Daemon)"; 48 mainProgram = "coolercontrold"; 49 }; 50}