34 lines
704 B
Nix
34 lines
704 B
Nix
{
|
|
writeText,
|
|
stdenv,
|
|
dovecot_pigeonhole,
|
|
...
|
|
} @ pkgs: {
|
|
name,
|
|
src,
|
|
exts,
|
|
}: let
|
|
dummyConfig = writeText "dovecot.cfg" ''
|
|
plugin {
|
|
sieve_plugins = sieve_imapsieve sieve_extprograms
|
|
sieve_global_extensions = +vnd.dovecot.pipe
|
|
}
|
|
'';
|
|
in
|
|
stdenv.mkDerivation {
|
|
inherit name;
|
|
inherit src;
|
|
|
|
phases = ["copyPhase" "compilePhase"];
|
|
|
|
copyPhase = ''
|
|
mkdir $out
|
|
cp $src $out/${name}.sieve
|
|
sed -i 's|/nix/store/||g' $out/${name}.sieve
|
|
chmod 0755 $out/${name}.sieve
|
|
set +x
|
|
'';
|
|
compilePhase = ''
|
|
${dovecot_pigeonhole}/bin/sievec -c ${dummyConfig} $out/${name}.sieve $out/${name}.svbin -x "${toString exts}"
|
|
'';
|
|
}
|