Custom fortunes-kind with custom fortunes

This took forever to make lmao
This commit is contained in:
Leonora Tindall 2024-02-20 08:45:58 -06:00
parent d63b0b0aa5
commit d8b6b56e1f
4 changed files with 124 additions and 0 deletions

View File

@ -0,0 +1,57 @@
{ lib
, stdenv
, fetchFromGitHub
, rustPlatform
, darwin
, libiconv
, makeBinaryWrapper
, installShellFiles
}:
rustPlatform.buildRustPackage rec {
pname = "fortune-kind-custom";
version = "0.1.9";
src = fetchFromGitHub {
owner = "cafkafk";
repo = "fortune-kind";
rev = "v${version}";
hash = "sha256-93BEy9FX3bZTYNewotBv1ejmMSnSdu9XnC4TgIvcYG0=";
};
cargoHash = "sha256-w5nR+pduM64DvVXhJxFKCg8O7lYSa1ur7aBBZQbOdpk=";
buildInputs = lib.optionals stdenv.isDarwin [ libiconv darwin.apple_sdk.frameworks.Security ];
buildNoDefaultFeatures = true;
MAN_OUT = "./man";
preBuild = ''
mkdir -p "./$MAN_OUT";
'';
preInstall = ''
mkdir -p $out
cp -r ./man $out/man;
cp -r ./fortunes $out/fortunes;
'';
meta = with lib; {
description = "A kinder, curated fortune; just the build, ma'am";
longDescription = ''
Historically, contributions to fortune-mod have had a less-than ideal
quality control process, and as such, many of the fortunes that a user may
receive from the program read more like cryptic inside jokes, or at the
very worst, locker-room banter. One of the major goals of fortune-kind is
defining and applying a somewhat more rigorous moderation and editing
process to the fortune adoption workflow.
'';
homepage = "https://github.com/cafkafk/fortune-kind";
changelog = "https://github.com/cafkafk/fortune-kind/releases/tag/v${version}";
license = licenses.gpl3Only;
mainProgram = "fortune-kind";
maintainers = with maintainers; [ cafkafk ];
platforms = platforms.unix ++ platforms.windows;
};
}

View File

@ -0,0 +1,62 @@
{ lib
, pkgs
, stdenv
, fetchFromGitHub
, rustPlatform
, darwin
, libiconv
, makeBinaryWrapper
, installShellFiles
, fortuneAlias ? true
}:
stdenv.mkDerivation rec {
name = "fortune-kind-custom";
src = pkgs.callPackage ./fortune-kind-bin.nix {};
nativeBuildInputs = [ makeBinaryWrapper installShellFiles pkgs.gzip ];
buildInputs = lib.optionals stdenv.isDarwin [ libiconv darwin.apple_sdk.frameworks.Security ];
prePatch = ''
rm ./fortunes/{translate-me,news,humorists}
cp -r ${./fortunes}/* ./fortunes/
'';
preInstall = ''
gunzip ./share/man/*
installManPage ./share/man/fortune-kind.1
installShellCompletion \
--fish ./share/man/fortune-kind.fish \
--bash ./share/man/fortune-kind.bash \
--zsh ./share/man/_fortune-kind
mkdir -p $out
cp -r ./bin $out/bin;
cp -r ./fortunes $out/fortunes;
'';
postInstall = ''
wrapProgram $out/bin/fortune-kind \
--prefix FORTUNE_DIR : "$out/fortunes"
''+ lib.optionalString fortuneAlias ''
ln -s fortune-kind $out/bin/fortune
'';
meta = with lib; {
description = "A kinder, curated fortune, with custom fortunes";
longDescription = ''
Historically, contributions to fortune-mod have had a less-than ideal
quality control process, and as such, many of the fortunes that a user may
receive from the program read more like cryptic inside jokes, or at the
very worst, locker-room banter. One of the major goals of fortune-kind is
defining and applying a somewhat more rigorous moderation and editing
process to the fortune adoption workflow.
'';
homepage = "https://github.com/cafkafk/fortune-kind";
changelog = "https://github.com/cafkafk/fortune-kind/releases/tag/v${version}";
license = licenses.gpl3Only;
mainProgram = "fortune-kind";
maintainers = with maintainers; [ cafkafk ];
platforms = platforms.unix ++ platforms.windows;
};
}

View File

@ -0,0 +1,4 @@
It is the absolute characteristic of settler society to be parasitic.
Never has Euro-Amerikan society completely supported itself.
-- Settlers: The Mythology of the White Proletariat
%

View File

@ -26,6 +26,7 @@ in
nodejs_21 nodejs_21
signal-desktop signal-desktop
yt-dlp yt-dlp
(pkgs.callPackage ./custom/fortune-kind-custom.nix {})
]; ];
nixpkgs.config.permittedInsecurePackages = [ nixpkgs.config.permittedInsecurePackages = [