about summary refs log tree commit diff
path: root/nixpkgs/pkgs/games/crafty/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/games/crafty/default.nix')
-rw-r--r--nixpkgs/pkgs/games/crafty/default.nix73
1 files changed, 73 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/games/crafty/default.nix b/nixpkgs/pkgs/games/crafty/default.nix
new file mode 100644
index 000000000000..9526512f15cc
--- /dev/null
+++ b/nixpkgs/pkgs/games/crafty/default.nix
@@ -0,0 +1,73 @@
+{ stdenv, fetchurl, unzip }:
+
+stdenv.mkDerivation rec {
+  name = "crafty-${version}";
+  version = "25.0.1";
+
+  src = fetchurl {
+    url = "http://www.craftychess.com/downloads/source/crafty-${version}.zip";
+    sha256 = "0aqgj2q7kdlgbha01qs869cwyja13bc7q2lh4nfhlba2pklknsm8";
+  };
+
+  bookBin = fetchurl {
+    url = http://www.craftychess.com/downloads/book/book.bin;
+    sha256 = "10rrgkr3hxm7pxdbc2jq8b5g74gfhzk4smahks3k8am1cmyq4p7r";
+  };
+
+  startPgn = fetchurl {
+    url = http://craftychess.com/downloads/book/start.pgn.gz;
+    sha256 = "12g70mgfifwssfvndzq94pin34dizlixhsga75vgj7dakysi2p7f";
+  };
+
+  buildInputs = [ unzip ];
+
+  unpackPhase = ''
+    mkdir "craftysrc"
+    unzip $src -d craftysrc
+    gunzip -c $startPgn > "craftysrc/start.pgn"
+  '';
+
+  buildPhase = ''
+    cd craftysrc
+    make unix-gcc
+  '';
+
+  installPhase = ''
+    BUILDDIR="$PWD"
+    mkdir -p $out/bin
+    cp -p ./crafty $out/bin
+
+    mkdir -p $out/share/crafty
+    cd $out/share/crafty
+
+    $out/bin/crafty "books create $BUILDDIR/start.pgn 60"
+    rm -f *.001
+
+    cp -p ${bookBin} $out/share/crafty/book.bin
+
+    mv $out/bin/crafty $out/bin/.crafty-wrapped
+
+    cat - > $out/bin/crafty <<EOF
+    #! ${stdenv.shell}
+    #
+    # The books are copied from share/crafty to ~/.crafty/books the first time
+    # this script is run. You can restore them at any time just copying them
+    # again.
+    if [[ ! -d "\$HOME/.crafty/books" ]]; then
+      mkdir "\$HOME/.crafty/books" -p
+      cp "$out/share/crafty/"book*.bin "\$HOME/.crafty/books"
+      chmod ug+w "\$HOME/.crafty/books/"*
+    fi
+    exec $out/bin/.crafty-wrapped bookpath=\$HOME/.crafty/books "\$@"
+    EOF
+    chmod +x $out/bin/crafty
+  '';
+
+  meta = {
+    homepage = http://www.craftychess.com/;
+    description = "Chess program developed by Dr. Robert M. Hyatt";
+    license = stdenv.lib.licenses.unfree;
+    platforms = stdenv.lib.platforms.unix;
+    maintainers = [ stdenv.lib.maintainers.jwiegley ];
+  };
+}