Merge pull request #268619 from tweag/lib-descriptions
[NixPkgs.git] / pkgs / games / umoria / default.nix
blob13ec037afba7815d6053fcd49f63d7c2765226b3
1 { lib
2 , gcc9Stdenv
3 , fetchFromGitHub
4 , autoreconfHook
5 , cmake
6 , ncurses6
7 , runtimeShell
8 }:
10 let
11   savesDir = "~/.umoria";
13 gcc9Stdenv.mkDerivation rec {
14   pname = "umoria";
15   version = "5.7.15";
17   src = fetchFromGitHub {
18     owner = "dungeons-of-moria";
19     repo = "umoria";
20     rev = "v${version}";
21     sha256 = "sha256-1j4QkE33UcTzM06qAjk1/PyK5uNA7E/kyDe3bZcFKUM=";
22   };
24   nativeBuildInputs = [ cmake ];
25   buildInputs = [ ncurses6 ];
26   enableParallelBuilding = true;
28   installPhase = ''
29     runHook preInstall
31     mkdir -p $out/data $out/bin
32     cp -r umoria/data/* $out/data
33     cp umoria/umoria $out/.umoria-unwrapped
35     mkdir -p $out/bin
36     cat <<EOF >$out/bin/umoria
37     #! ${runtimeShell} -e
39     RUNDIR=\$(mktemp -d)
41     # Print the directory, so users have access to dumps, and let the system
42     # take care of cleaning up temp files.
43     echo "Running umoria in \$RUNDIR"
45     cd \$RUNDIR
46     ln -sn $out/data \$RUNDIR/data
48     mkdir -p ${savesDir}
49     [[ ! -f ${savesDir}/scores.dat ]] && touch ${savesDir}/scores.dat
50     ln -s ${savesDir}/scores.dat scores.dat
52     if [ \$# -eq 0 ]; then
53        $out/.umoria-unwrapped ${savesDir}/game.sav
54     else
55        $out/.umoria-unwrapped "\$@"
56     fi
57     EOF
59     chmod +x $out/bin/umoria
61     runHook postInstall
62   '';
64   meta = with lib; {
65     homepage = "https://umoria.org/";
66     description = "The Dungeons of Moria - the original roguelike";
67     longDescription = ''
68       The Dungeons of Moria is a single player dungeon simulation originally written
69       by Robert Alan Koeneke, with its first public release in 1983.
70       The game was originally developed using VMS Pascal before being ported to the C
71       language by James E. Wilson in 1988, and released a Umoria.
72     '';
73     platforms = platforms.unix;
74     badPlatforms = [ "aarch64-darwin" ];
75     maintainers = with maintainers; [ aciceri kenran ];
76     license = licenses.gpl3Plus;
77   };