{ 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}" ''; }