summary refs log tree commit diff
path: root/pkgs/games
diff options
context:
space:
mode:
authorBignaux Ronan <ronan@aimao.org>2020-03-01 23:58:28 +0100
committerBignaux Ronan <ronan@aimao.org>2020-03-01 23:58:28 +0100
commit1841620b23744b8b832bc34a8f9be82667ea3621 (patch)
tree673a7cb2bd96607b89c8dad2f86fd18241ff3e52 /pkgs/games
parentfa78ec1704027f24162949b37dc25479662d632c (diff)
downloadnixpkgs-1841620b23744b8b832bc34a8f9be82667ea3621.tar
nixpkgs-1841620b23744b8b832bc34a8f9be82667ea3621.tar.gz
nixpkgs-1841620b23744b8b832bc34a8f9be82667ea3621.tar.bz2
nixpkgs-1841620b23744b8b832bc34a8f9be82667ea3621.tar.lz
nixpkgs-1841620b23744b8b832bc34a8f9be82667ea3621.tar.xz
nixpkgs-1841620b23744b8b832bc34a8f9be82667ea3621.tar.zst
nixpkgs-1841620b23744b8b832bc34a8f9be82667ea3621.zip
sgt-puzzles: add desktop files
Diffstat (limited to 'pkgs/games')
-rw-r--r--pkgs/games/sgt-puzzles/default.nix31
1 files changed, 25 insertions, 6 deletions
diff --git a/pkgs/games/sgt-puzzles/default.nix b/pkgs/games/sgt-puzzles/default.nix
index 8349be64264..7ac32fa2d2f 100644
--- a/pkgs/games/sgt-puzzles/default.nix
+++ b/pkgs/games/sgt-puzzles/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl
+{ stdenv, fetchurl, desktop-file-utils
 , gtk3, libX11
 , makeWrapper, pkgconfig, perl, autoreconfHook, wrapGAppsHook
 }:
@@ -8,17 +8,19 @@ stdenv.mkDerivation rec {
   version = "20191114.1c0c49d";
 
   src = fetchurl {
-   url = "http://www.chiark.greenend.org.uk/~sgtatham/puzzles/puzzles-${version}.tar.gz";
-   sha256 = "01fi2f3w71bfbgcfr6gxdp5a9cxh4dshbflv83q2j5rxxs2ll870";
+    url = "http://www.chiark.greenend.org.uk/~sgtatham/puzzles/puzzles-${version}.tar.gz";
+    sha256 = "01fi2f3w71bfbgcfr6gxdp5a9cxh4dshbflv83q2j5rxxs2ll870";
   };
 
-  nativeBuildInputs = [ autoreconfHook makeWrapper pkgconfig perl wrapGAppsHook ];
+  nativeBuildInputs = [ autoreconfHook desktop-file-utils makeWrapper
+    pkgconfig perl wrapGAppsHook ];
 
   buildInputs = [ gtk3 libX11 ];
 
   makeFlags = ["prefix=$(out)" "gamesdir=$(out)/bin"];
+
   preInstall = ''
-    mkdir -p "$out"/{bin,share/doc/sgtpuzzles}
+    mkdir -p "$out"/{bin,share/doc/sgtpuzzles,share/icons/hicolor/48x48/apps}
     cp gamedesc.txt LICENCE README "$out/share/doc/sgtpuzzles"
   '';
   # SGT Puzzles use generic names like net, map, etc.
@@ -26,10 +28,27 @@ stdenv.mkDerivation rec {
   # disambiguation
   postInstall = ''
     (
+      currentSrc=$PWD
       cd "$out"/bin ;
-      for i in *; do ln -s "$i" "sgt-puzzle-$i"; done
+      for i in *; do
+        ln -s "$i" "sgt-puzzle-$i"
+
+        install -Dm644 $currentSrc/icons/$i-48d24.png $out/share/icons/hicolor/48x48/apps/
+
+        # Generate/validate/install .desktop files.
+        echo "[Desktop Entry]" > $i.desktop
+        desktop-file-install --dir $out/share/applications \
+          --set-key Type --set-value Application \
+          --set-key Exec --set-value $i \
+          --set-key Name --set-value $i \
+          --set-key Comment --set-value "${meta.description}" \
+          --set-key Categories --set-value LogicGame \
+          --set-key Icon --set-value $i-48d24 $i.desktop
+        rm $i.desktop
+      done
     )
   '';
+
   preConfigure = ''
     perl mkfiles.pl
     export NIX_LDFLAGS="$NIX_LDFLAGS -lX11"