diff --git a/pkgs/games/2048-cli/default.nix b/pkgs/games/2048-cli/default.nix new file mode 100644 index 000000000000..947973c0fb31 --- /dev/null +++ b/pkgs/games/2048-cli/default.nix @@ -0,0 +1,61 @@ +{ lib +, stdenv +, fetchFromGitHub +, gettext +, installShellFiles +, ncurses +, ui ? "terminal" +}: + +assert lib.elem ui [ "terminal" "curses" ]; +stdenv.mkDerivation (self: { + pname = "2048-cli"; + version = "unstable-2019-12-10"; + + src = fetchFromGitHub { + owner = "tiehuis"; + repo = "2048-cli"; + rev = "67439255df7d4f70209ca628d65128cd41d33e8d"; + hash = "sha256-U7g2wCZgR7Lp/69ktQIZZ1cScll2baCequemTl3Mc3I="; + }; + + postPatch = '' + substituteInPlace Makefile \ + --replace "-lcurses" "-lncurses" + ''; + + nativeBuildInputs = [ + installShellFiles + ]; + + buildInputs = [ + gettext + ] + ++ (lib.optional (ui == "curses") ncurses); + + dontConfigure = true; + + NIX_CFLAGS_COMPILE="-I${lib.getDev gettext}/share/gettext/"; + + makeFlags = [ + "CC=${stdenv.cc.targetPrefix}cc" + ui + ]; + + installPhase = '' + runHook preInstall + + install -Dm755 -t $out/bin 2048 + installManPage man/2048.6 + + runHook postInstall + ''; + + meta = { + homepage = "https://github.com/tiehuis/2048-cli"; + description = "The game 2048 for your Linux terminal"; + license = lib.licenses.mit; + maintainers = [ lib.maintainers.AndersonTorres ]; + platforms = lib.platforms.unix; + }; +}) diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 6ed0db662971..3f7c591eae2b 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -34808,6 +34808,10 @@ with pkgs; _1oom = callPackage ../games/1oom { }; + _2048-cli = _2048-cli-terminal; + _2048-cli-curses = callPackage ../games/2048-cli { ui = "curses"; }; + _2048-cli-terminal = callPackage ../games/2048-cli { ui = "terminal"; }; + _2048-in-terminal = callPackage ../games/2048-in-terminal { }; _20kly = callPackage ../games/20kly { };