nixpkgs/pkgs/tools/misc/taoup/default.nix
Peder Bergebakken Sundt 3a83109945
treewide: change ${pname} to string literal, pt2 (#336195)
* aescrypt: change `${pname}` to string literal

* bandwidth: change `${pname}` to string literal

* bc: change `${pname}` to string literal

* bdfresize: change `${pname}` to string literal

* birdfont: change `${pname}` to string literal

* brltty: change `${pname}` to string literal

* calamares: change `${pname}` to string literal

* ccal: change `${pname}` to string literal

* clac: change `${pname}` to string literal

* colord-gtk4: change `${pname}` to string literal

* colord: change `${pname}` to string literal

* colorless: change `${pname}` to string literal

* cunit: change `${pname}` to string literal

* datamash: change `${pname}` to string literal

* dateutils: change `${pname}` to string literal

* desktop-file-utils: change `${pname}` to string literal

* digitemp: change `${pname}` to string literal

* ding-libs: change `${pname}` to string literal

* docbook2mdoc: change `${pname}` to string literal

* dtach: change `${pname}` to string literal

* empty: change `${pname}` to string literal

* entr: change `${pname}` to string literal

* envsubst: change `${pname}` to string literal

* ethtool: change `${pname}` to string literal

* fdtools: change `${pname}` to string literal

* filebench: change `${pname}` to string literal

* findutils: change `${pname}` to string literal

* fortune: change `${pname}` to string literal

* fpart: change `${pname}` to string literal

* fxlinuxprintutil: change `${pname}` to string literal

* gbdfed: change `${pname}` to string literal

* getopt: change `${pname}` to string literal

* github-copilot-cli: change `${pname}` to string literal

* gparted: change `${pname}` to string literal

* hddtemp: change `${pname}` to string literal

* hdfview: change `${pname}` to string literal

* hpcg: change `${pname}` to string literal

* hpl: change `${pname}` to string literal

* ink: change `${pname}` to string literal

* ised: change `${pname}` to string literal

* isoimagewriter: change `${pname}` to string literal

* kronometer: change `${pname}` to string literal

* libsForQt5.qt5ct: change `${pname}` to string literal

* lilo: change `${pname}` to string literal

* lockfileProgs: change `${pname}` to string literal

* map-cmd: change `${pname}` to string literal

* mcrypt: change `${pname}` to string literal

* most: change `${pname}` to string literal

* mrtg: change `${pname}` to string literal

* ms-sys: change `${pname}` to string literal

* multitime: change `${pname}` to string literal

* nbench: change `${pname}` to string literal

* osinfo-db-tools: change `${pname}` to string literal

* parallel-full: change `${pname}` to string literal

* phoronix-test-suite: change `${pname}` to string literal

* pod2mdoc: change `${pname}` to string literal

* powerline-rs: change `${pname}` to string literal

* recoverjpeg: change `${pname}` to string literal

* recutils: change `${pname}` to string literal

* routino: change `${pname}` to string literal

* rpm-ostree: change `${pname}` to string literal

* screen: change `${pname}` to string literal

* sharedown: change `${pname}` to string literal

* statserial: change `${pname}` to string literal

* taoup: change `${pname}` to string literal

* texi2mdoc: change `${pname}` to string literal

* tmpwatch: change `${pname}` to string literal

* toilet: change `${pname}` to string literal

* triehash: change `${pname}` to string literal

* ttfautohint: change `${pname}` to string literal

* txt2man: change `${pname}` to string literal

* urjtag: change `${pname}` to string literal

* uudeview: change `${pname}` to string literal

* uutils-coreutils: change `${pname}` to string literal

* vttest: change `${pname}` to string literal

* wacomtablet: change `${pname}` to string literal

* xcd: change `${pname}` to string literal

* xdaliclock: change `${pname}` to string literal

* xjobs: change `${pname}` to string literal

* feishin: change `${pname}` to string literal

* gifsicle: change `${pname}` to string literal

* nzbhydra2: change `${pname}` to string literal

* vatprism: change `${pname}` to string literal

* webfs: change `${pname}` to string literal

* yggstack: change `${pname}` to string literal
2024-08-20 17:23:37 -07:00

67 lines
1.6 KiB
Nix

{ lib, stdenv, fetchFromGitHub, ruby, bash, ncurses }:
let
rubyEnv = ruby.withPackages (ps: with ps; [ ansi ]);
in
stdenv.mkDerivation rec {
pname = "taoup";
version = "1.21";
src = fetchFromGitHub {
owner = "globalcitizen";
repo = "taoup";
rev = "v${version}";
hash = "sha256-UHo3c+DQn77CJONy/QXM55rpIdhVkJbhR82tqmUltPQ=";
};
buildInputs = [ rubyEnv bash ncurses ];
patches = [
# Pre-create a cache within this derivation
./cachefile.patch
# Remove the need to test for `tput`, depend on ncurses directly
./tput.patch
# Fix the script name in `taoup --help` output
./help.patch
];
postPatch = ''
substituteInPlace taoup \
--subst-var-by ncurses ${ncurses} \
--subst-var-by pname taoup
substituteInPlace taoup-fortune \
--subst-var-by out $out \
--replace "/bin/bash" "${bash}/bin/bash"
'';
dontConfigure = true;
dontBuild = true;
installPhase = ''
runHook preInstall
mkdir -p $out/{bin,lib/taoup}
cp taoup $out/lib/taoup
cat > $out/bin/taoup <<EOF
#!${bash}/bin/bash
exec ${rubyEnv}/bin/ruby "$out/lib/taoup/taoup" "\$@"
EOF
chmod +x $out/bin/taoup
# Populate the cache created by cachedir.patch above
$out/bin/taoup > $out/lib/taoup/cache
cp taoup-fortune $out/bin
chmod +x $out/bin/taoup-fortune
runHook postInstall
'';
meta = {
description = "Tao of Unix Programming (Ruby-powered ANSI colored fortunes)";
homepage = "https://github.com/globalcitizen/taoup";
license = lib.licenses.gpl3Only;
maintainers = [ lib.maintainers.zakame ];
};
}