74 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
			
		
		
	
	
			74 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
{ lib, stdenv, fetchurl, unzip }:
 | 
						|
 | 
						|
stdenv.mkDerivation rec {
 | 
						|
  pname = "crafty";
 | 
						|
  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 = lib.licenses.unfree;
 | 
						|
    platforms = lib.platforms.unix;
 | 
						|
    maintainers = [ lib.maintainers.jwiegley ];
 | 
						|
  };
 | 
						|
}
 |