1{
2 lib,
3 stdenv,
4 writeText,
5 runtimeShell,
6}:
7
8let
9 script = writeText "script" ''
10 #!${runtimeShell}
11
12 if command -v sendmail > /dev/null 2>&1 && [ "$(command -v sendmail)" != "{{MYPATH}}" ]; then
13 exec sendmail "$@"
14 elif [ -x /run/wrappers/bin/sendmail ]; then
15 exec /run/wrappers/bin/sendmail "$@"
16 elif [ -x /run/current-system/sw/bin/sendmail ]; then
17 exec /run/current-system/sw/bin/sendmail "$@"
18 else
19 echo "Unable to find system sendmail." >&2
20 exit 1
21 fi
22 '';
23in
24stdenv.mkDerivation {
25 pname = "system-sendmail";
26 version = "1.0";
27
28 src = script;
29
30 dontUnpack = true;
31 dontInstall = true;
32
33 buildPhase = ''
34 mkdir -p $out/bin
35 < $src sed "s#{{MYPATH}}#$out/bin/sendmail#" > $out/bin/sendmail
36 chmod +x $out/bin/sendmail
37 '';
38
39 meta = with lib; {
40 description = ''
41 A sendmail wrapper that calls the system sendmail. Do not install as system-wide sendmail!
42 '';
43 platforms = platforms.unix;
44 maintainers = with maintainers; [ ekleog ];
45 mainProgram = "sendmail";
46 };
47}