Unverified Commit 7b3170d6 authored by Felix Bühler's avatar Felix Bühler Committed by GitHub
Browse files

nixos/maddy: add package option (#396535)

parents e1b21eaa baf2d3e2
Loading
Loading
Loading
Loading
+9 −7
Original line number Diff line number Diff line
@@ -143,6 +143,8 @@ in

      enable = lib.mkEnableOption "Maddy, a free an open source mail server";

      package = lib.mkPackageOption pkgs "maddy" { };

      user = lib.mkOption {
        default = "maddy";
        type = with lib.types; uniq str;
@@ -386,7 +388,7 @@ in

    systemd = {

      packages = [ pkgs.maddy ];
      packages = [ cfg.package ];
      services = {
        maddy = {
          serviceConfig = {
@@ -402,16 +404,16 @@ in
          script = ''
            ${lib.optionalString (cfg.ensureAccounts != [ ]) ''
              ${lib.concatMapStrings (account: ''
                if ! ${pkgs.maddy}/bin/maddyctl imap-acct list | grep "${account}"; then
                  ${pkgs.maddy}/bin/maddyctl imap-acct create ${account}
                if ! ${cfg.package}/bin/maddyctl imap-acct list | grep "${account}"; then
                  ${cfg.package}/bin/maddyctl imap-acct create ${account}
                fi
              '') cfg.ensureAccounts}
            ''}
            ${lib.optionalString (cfg.ensureCredentials != { }) ''
              ${lib.concatStringsSep "\n" (
                lib.mapAttrsToList (name: cfg: ''
                  if ! ${pkgs.maddy}/bin/maddyctl creds list | grep "${name}"; then
                    ${pkgs.maddy}/bin/maddyctl creds create --password $(cat ${lib.escapeShellArg cfg.passwordFile}) ${name}
                lib.mapAttrsToList (name: credentials: ''
                  if ! ${cfg.package}/bin/maddyctl creds list | grep "${name}"; then
                    ${cfg.package}/bin/maddyctl creds create --password $(cat ${lib.escapeShellArg credentials.passwordFile}) ${name}
                  fi
                '') cfg.ensureCredentials
              )}
@@ -486,7 +488,7 @@ in
    };

    environment.systemPackages = [
      pkgs.maddy
      cfg.package
    ];
  };
}