From 3ec49e023025764d039c1aa4338d8078ff33e661 Mon Sep 17 00:00:00 2001 From: Quentin Boyer Date: Fri, 9 Feb 2024 10:19:31 +0100 Subject: [PATCH] Introduce a home-manager module --- flake.nix | 5 ++++- home-manager.nix | 43 +++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 47 insertions(+), 1 deletion(-) create mode 100644 home-manager.nix diff --git a/flake.nix b/flake.nix index e58b9e7..230c773 100644 --- a/flake.nix +++ b/flake.nix @@ -30,5 +30,8 @@ }; defaultPackage = naersk'.buildPackage ./.; - }); + }) + // { + homeManagerModules.default = import ./home-manager.nix self; + }; } diff --git a/home-manager.nix b/home-manager.nix new file mode 100644 index 0000000..dfb19bb --- /dev/null +++ b/home-manager.nix @@ -0,0 +1,43 @@ +self: { + lib, + pkgs, + config, + ... +}: +with lib; let + cfg = config.programs.git-series-manager; + + tomlFormat = pkgs.formats.toml {}; +in { + options.programs.git-series-manager = { + enable = mkEnableOption "git-series-manager, a way to manage git patchsets"; + + package = mkOption { + type = types.package; + description = "Package to use by git-series-manager"; + default = self.defaultPackage."${pkgs.system}"; + }; + + settings = mkOption { + inherit (tomlFormat) type; + example = lib.literalExpression '' + { + sendmail_args = ["--sendmail-cmd=customSendmail" "--to=mail@list.com"]; + repo_url_base = "https://my.git-forge.com/my/project/"; + ci_url = "https://my.jenkins.instance/''${component}/job/''${branch}/''${ci_job}"; + editor = "nvim"; + } + ''; + description = '' + git-series-manager global configuration, can also be configured through ''${repo}/.patches/config.toml + ''; + }; + }; + + config = mkIf cfg.enable { + home.packages = [ cfg.package ]; + + xdg.configFile."git-series-manager/config.toml".source = + tomlFormat.generate "config.toml" cfg.settings; + }; +}