From e488670764c520394c0780c99dbaad15de143aae Mon Sep 17 00:00:00 2001 From: Bjørn Forsman Date: Wed, 4 Dec 2019 22:19:21 +0100 Subject: makeDesktopItem: use runCommandLocal This derivation only creates a simple text file, so it makes sense to do it locally. On my setup this reduces build time from 2.2s to 1.2s. --- pkgs/build-support/make-desktopitem/default.nix | 33 +++++++++++-------------- 1 file changed, 14 insertions(+), 19 deletions(-) (limited to 'pkgs/build-support/make-desktopitem/default.nix') diff --git a/pkgs/build-support/make-desktopitem/default.nix b/pkgs/build-support/make-desktopitem/default.nix index f8c31ed5c1d..67b82fd66db 100644 --- a/pkgs/build-support/make-desktopitem/default.nix +++ b/pkgs/build-support/make-desktopitem/default.nix @@ -1,4 +1,4 @@ -{stdenv, lib}: +{ lib, runCommandLocal }: { name , type ? "Application" , exec @@ -13,24 +13,20 @@ , extraEntries ? null }: -stdenv.mkDerivation { - name = "${name}.desktop"; +let + optionalEntriesList = [{k="Icon"; v=icon;} + {k="Comment"; v=comment;} + {k="GenericName"; v=genericName;} + {k="MimeType"; v=mimeType;} + {k="StartupNotify"; v=startupNotify;}]; - buildCommand = let + valueNotNull = {k, v}: v != null; + entriesToKeep = builtins.filter valueNotNull optionalEntriesList; - optionalEntriesList = [{k="Icon"; v=icon;} - {k="Comment"; v=comment;} - {k="GenericName"; v=genericName;} - {k="MimeType"; v=mimeType;} - {k="StartupNotify"; v=startupNotify;}]; - - valueNotNull = {k, v}: v != null; - entriesToKeep = builtins.filter valueNotNull optionalEntriesList; - - mkEntry = {k, v}: k + "=" + v; - optionalEntriesString = lib.concatMapStringsSep "\n" mkEntry entriesToKeep; - - in + mkEntry = {k, v}: k + "=" + v; + optionalEntriesString = lib.concatMapStringsSep "\n" mkEntry entriesToKeep; +in +runCommandLocal "${name}.desktop" {} '' mkdir -p $out/share/applications cat > $out/share/applications/${name}.desktop <