python3Packages.orjson: Disable failing tests on 32 bit
[NixPkgs.git] / pkgs / tools / misc / taoup / default.nix
blob3924625f1313c1bef643bbe7fa743aae797fe66c
1 { lib, stdenv, fetchFromGitHub, ruby, bash, ncurses }:
2 let
3   rubyEnv = ruby.withPackages (ps: with ps; [ ansi ]);
4 in
5 stdenv.mkDerivation rec {
6   pname = "taoup";
7   version = "1.1.19";
9   src = fetchFromGitHub {
10     owner = "globalcitizen";
11     repo = pname;
12     rev = "v${version}";
13     hash = "sha256-axMpQICvxWBlNJ5D06DYI7b4zFGeadfWFcpTN6lPvpg=";
14   };
16   buildInputs = [ rubyEnv bash ncurses ];
18   patches = [
19     # Pre-create a cache within this derivation
20     ./cachefile.patch
21     # Remove the need to test for `tput`, depend on ncurses directly
22     ./tput.patch
23     # Fix the script name in `taoup --help` output
24     ./help.patch
25   ];
27   postPatch = ''
28     substituteInPlace taoup \
29      --subst-var-by ncurses ${ncurses} \
30      --subst-var-by pname ${pname}
31     substituteInPlace taoup-fortune \
32       --subst-var-by out $out \
33       --replace "/bin/bash" "${bash}/bin/bash"
34   '';
36   dontConfigure = true;
37   dontBuild = true;
39   installPhase = ''
40     runHook preInstall
42     mkdir -p $out/{bin,lib/taoup}
44     cp taoup $out/lib/taoup
45     cat > $out/bin/taoup <<EOF
46     #!${bash}/bin/bash
47     exec ${rubyEnv}/bin/ruby "$out/lib/taoup/taoup" "\$@"
48     EOF
49     chmod +x $out/bin/taoup
51     # Populate the cache created by cachedir.patch above
52     $out/bin/taoup > $out/lib/taoup/cache
54     cp taoup-fortune $out/bin
55     chmod +x $out/bin/taoup-fortune
57     runHook postInstall
58   '';
60   meta = {
61     description = "The Tao of Unix Programming (Ruby-powered ANSI colored fortunes)";
62     homepage = "https://github.com/globalcitizen/taoup";
63     license = lib.licenses.gpl3Only;
64     maintainers = [ lib.maintainers.zakame ];
65   };