azure-storage-azcopy: 10.27.1 -> 10.28.0 (#377459)
[NixPkgs.git] / pkgs / by-name / mo / mommy / package.nix
blobc38de622df239b7b72ceb9fa786429caf7cd5042
2   lib,
3   stdenv,
4   fetchFromGitHub,
5   makeWrapper,
6   writeText,
7   shellspec,
8   # usage:
9   # pkgs.mommy.override {
10   #  mommySettings.sweetie = "catgirl";
11   # }
12   #
13   # $ mommy
14   # who's my good catgirl~
15   mommySettings ? null,
18 let
19   variables = lib.mapAttrs' (
20     name: value: lib.nameValuePair "MOMMY_${lib.toUpper name}" value
21   ) mommySettings;
22   configFile = writeText "mommy-config" (lib.toShellVars variables);
24 stdenv.mkDerivation rec {
25   pname = "mommy";
26   version = "1.5.1";
28   src = fetchFromGitHub {
29     owner = "FWDekker";
30     repo = pname;
31     rev = "v${version}";
32     hash = "sha256-RgneMpxUDMjfo1nVJpqCDaEAs3FRum4dWe8dNF9CCTo=";
33   };
35   nativeBuildInputs = [ makeWrapper ];
36   nativeCheckInputs = [ shellspec ];
37   installFlags = [ "prefix=$(out)" ];
39   doCheck = true;
40   checkTarget = "test/unit";
42   postInstall = ''
43     ${lib.optionalString (mommySettings != null) ''
44       wrapProgram $out/bin/mommy \
45         --set-default MOMMY_OPT_CONFIG_FILE "${configFile}"
46     ''}
47   '';
49   meta = with lib; {
50     description = "mommy's here to support you, in any shell, on any system~ ❤️";
51     homepage = "https://github.com/FWDekker/mommy";
52     changelog = "https://github.com/FWDekker/mommy/blob/v${version}/CHANGELOG.md";
53     license = licenses.unlicense;
54     platforms = platforms.all;
55     maintainers = [ ];
56     mainProgram = "mommy";
57   };