{ flake.modules.homeManager.git = { config, lib, pkgs, ... }: let cfg = config.arta.git; in { options.arta.git = { email = lib.mkOption { type = lib.types.str; }; name = lib.mkOption { type = lib.types.str; }; sendemail = { enable = lib.mkEnableOption "git-send-email"; user = lib.mkOption { type = lib.types.str; default = cfg.email; }; server = lib.mkOption { type = lib.types.str; default = "smtp.migadu.com"; }; }; }; config = { programs.git = { enable = true; package = pkgs.gitFull; settings = lib.mkMerge ([ { user = { email = cfg.email; name = cfg.name; }; } ] ++ lib.lists.optional cfg.sendemail.enable { sendemail = { smtpserver = cfg.sendemail.server; smtpuser = cfg.sendemail.user; smtpencryption = "ssl"; smtpserverport = 465; }; }); }; }; }; }