diff options
Diffstat (limited to 'pkgs/by-name/mo/mommy/package.nix')
-rw-r--r-- | pkgs/by-name/mo/mommy/package.nix | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/pkgs/by-name/mo/mommy/package.nix b/pkgs/by-name/mo/mommy/package.nix new file mode 100644 index 00000000000..24e83eef6d0 --- /dev/null +++ b/pkgs/by-name/mo/mommy/package.nix @@ -0,0 +1,58 @@ +{ lib +, stdenv +, fetchFromGitHub +, makeWrapper +, writeText +, shellspec +, fetchpatch + # usage: + # pkgs.mommy.override { + # mommySettings.sweetie = "catgirl"; + # } + # + # $ mommy + # who's my good catgirl~ +, mommySettings ? null +}: + +let + variables = lib.mapAttrs' + (name: value: lib.nameValuePair "MOMMY_${lib.toUpper name}" value) + mommySettings; + configFile = writeText "mommy-config" (lib.toShellVars variables); +in +stdenv.mkDerivation rec { + pname = "mommy"; + version = "1.2.4"; + + src = fetchFromGitHub { + owner = "FWDekker"; + repo = pname; + rev = "v${version}"; + hash = "sha256-SqWhbhQeRUO0cD9Fv/nwKjTI3F0Sg2VhFZtrbyA9Wb4="; + }; + + nativeBuildInputs = [ makeWrapper ]; + nativeCheckInputs = [ shellspec ]; + installFlags = [ "prefix=$(out)" ]; + + doCheck = true; + checkTarget = "test/unit"; + + postInstall = '' + ${lib.optionalString (mommySettings != null) '' + wrapProgram $out/bin/mommy \ + --set-default MOMMY_OPT_CONFIG_FILE "${configFile}" + ''} + ''; + + meta = with lib; { + description = "mommy's here to support you, in any shell, on any system~ ❤️"; + homepage = "https://github.com/FWDekker/mommy"; + changelog = "https://github.com/FWDekker/mommy/blob/v${version}/CHANGELOG.md"; + license = licenses.unlicense; + platforms = platforms.all; + maintainers = with maintainers; [ ckie ]; + mainProgram = "mommy"; + }; +} |