diff options
Diffstat (limited to 'pkgs/build-support/make-desktopitem/default.nix')
-rw-r--r-- | pkgs/build-support/make-desktopitem/default.nix | 33 |
1 files changed, 14 insertions, 19 deletions
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 <<EOF @@ -44,5 +40,4 @@ stdenv.mkDerivation { ${if extraEntries == null then ''EOF'' else '' ${extraEntries} EOF''} - ''; -} + '' |