mirror of
https://git.sr.ht/~magic_rb/cluster
synced 2024-11-28 02:56:13 +01:00
99 lines
3 KiB
Nix
99 lines
3 KiB
Nix
|
{ nglib, nixpkgs }@a:
|
||
|
nglib.makeSystem {
|
||
|
system = "x86_64-linux";
|
||
|
name = "ra-systems-getmail";
|
||
|
inherit nixpkgs;
|
||
|
config = ({ pkgs, config, nglib, lib, ... }:
|
||
|
{
|
||
|
config = {
|
||
|
dumb-init = {
|
||
|
enable = true;
|
||
|
type.services = {};
|
||
|
};
|
||
|
|
||
|
users.users."vmail" = {
|
||
|
uid = config.ids.uids.vmail;
|
||
|
description = "vmail user.";
|
||
|
group = "vmail";
|
||
|
shell = "${pkgs.bash}/bin/bash";
|
||
|
};
|
||
|
users.groups."vmail" = {
|
||
|
gid = config.ids.gids.vmail;
|
||
|
};
|
||
|
|
||
|
init.services.getmail =
|
||
|
let
|
||
|
courier-unicode = with pkgs;
|
||
|
stdenv.mkDerivation rec {
|
||
|
name = "courier-unicode";
|
||
|
version = "2.2.3";
|
||
|
|
||
|
src = pkgs.fetchurl {
|
||
|
url = "mirror://sourceforge/courier/courier-unicode/${version}/${name}-${version}.tar.bz2";
|
||
|
sha256 = "sha256-COz13JdSnOOqncqghYYHYt5jbr75aL9LbgzfqvGMev8=";
|
||
|
};
|
||
|
|
||
|
nativeBuildInputs = [ perl ];
|
||
|
};
|
||
|
maildrop-fixed = pkgs.maildrop.overrideAttrs (
|
||
|
old:
|
||
|
{ patches =
|
||
|
[ ./dont-reset-path.patch
|
||
|
./maildrop.configure.hack.patch
|
||
|
];
|
||
|
version = "3.0.7";
|
||
|
src = pkgs.fetchurl {
|
||
|
url = "mirror://sourceforge/courier/maildrop/3.0.7/maildrop-3.0.7.tar.bz2";
|
||
|
sha256 = "sha256-YFzoHDk5BEcy2uRyQhlTTl27UVyAdgvjYRkUq1wfeCU=";
|
||
|
};
|
||
|
nativeBuildInputs = with pkgs; [ pcre2 pkg-config ];
|
||
|
buildInputs = with pkgs; [ libidn courier-unicode ];
|
||
|
});
|
||
|
|
||
|
getmail6-fixed = pkgs.getmail6.overrideAttrs (
|
||
|
old:
|
||
|
{ patches =
|
||
|
[ ./getmail-read-exec-from-path.patch
|
||
|
];
|
||
|
}
|
||
|
);
|
||
|
in
|
||
|
{
|
||
|
shutdownOnExit = true;
|
||
|
script = pkgs.writeShellScript "getmail-run"
|
||
|
''
|
||
|
export PATH=${with pkgs; lib.makeBinPath [ busybox runit bash getmail6-fixed maildrop-fixed ]}:${pkgs.opensmtpd}/libexec/opensmtpd:$PATH
|
||
|
|
||
|
|
||
|
chown vmail:vmail -R /getmail.d
|
||
|
|
||
|
set -m
|
||
|
|
||
|
for rcfile in /getmail.d/getmail.*.rc
|
||
|
do
|
||
|
foo="$(basename "''${rcfile}")"
|
||
|
bar="''${foo#"getmail."}"
|
||
|
email="''${bar%".rc"}"
|
||
|
|
||
|
mkdir -p "/getmail.d/''${email}"
|
||
|
chown vmail:vmail -R "/getmail.d/''${email}"
|
||
|
|
||
|
(
|
||
|
while true
|
||
|
do
|
||
|
chpst -u vmail:vmail getmail -i INBOX -n -r "/getmail.d/getmail.''${email}.rc" --getmaildir "/getmail.d/''${email}"
|
||
|
sleep 10
|
||
|
done
|
||
|
) &
|
||
|
done
|
||
|
|
||
|
wait
|
||
|
'';
|
||
|
enabled = true;
|
||
|
};
|
||
|
};
|
||
|
});
|
||
|
}
|
||
|
|
||
|
# /usr/lib/sendmail -i -oem -f %F %T
|