Clone of https://github.com/NixOS/nixpkgs.git (to stress-test knotserver)
at devShellTools-shell 70 lines 1.4 kB view raw
1{ 2 wrapGAppsHook4, 3 glib, 4 lib, 5 stdenv, 6 xorg, 7 switchboard, 8 switchboardPlugs, 9 plugs, 10 # Only useful to disable for development testing. 11 useDefaultPlugs ? true, 12 testName ? null, 13}: 14 15let 16 selectedPlugs = 17 if plugs == null then 18 switchboardPlugs 19 else 20 plugs ++ (lib.optionals useDefaultPlugs switchboardPlugs); 21 22 testingName = lib.optionalString (testName != null) "${testName}-"; 23in 24stdenv.mkDerivation { 25 pname = "${testingName}${switchboard.pname}-with-plugs"; 26 inherit (switchboard) version; 27 28 src = null; 29 30 paths = [ 31 switchboard 32 ] 33 ++ selectedPlugs; 34 35 passAsFile = [ "paths" ]; 36 37 nativeBuildInputs = [ 38 glib 39 wrapGAppsHook4 40 ]; 41 42 buildInputs = lib.forEach selectedPlugs (x: x.buildInputs) ++ selectedPlugs; 43 44 dontUnpack = true; 45 dontConfigure = true; 46 dontBuild = true; 47 48 preferLocalBuild = true; 49 allowSubstitutes = false; 50 51 installPhase = '' 52 mkdir -p $out 53 for i in $(cat $pathsPath); do 54 ${xorg.lndir}/bin/lndir -silent $i $out 55 done 56 57 dbus_file="share/dbus-1/services/io.elementary.settings.service" 58 rm -f "$out/$dbus_file" 59 substitute "${switchboard}/$dbus_file" "$out/$dbus_file" \ 60 --replace-fail "${switchboard}" "$out" 61 ''; 62 63 preFixup = '' 64 gappsWrapperArgs+=( 65 --set SWITCHBOARD_PLUGS_PATH "$out/lib/switchboard-3" 66 ) 67 ''; 68 69 inherit (switchboard) meta; 70}