From 0f8699b971e0b73ece7eaae7489c8e59d2b4dd04 Mon Sep 17 00:00:00 2001 From: punkfairie Date: Fri, 15 Nov 2024 17:44:46 -0800 Subject: [PATCH] feat(home): My module --- modules/home/me/default.nix | 4 -- modules/home/my/default.nix | 73 +++++++++++++++++++++++++++++++++++++ 2 files changed, 73 insertions(+), 4 deletions(-) delete mode 100644 modules/home/me/default.nix create mode 100644 modules/home/my/default.nix diff --git a/modules/home/me/default.nix b/modules/home/me/default.nix deleted file mode 100644 index 5e946b8..0000000 --- a/modules/home/me/default.nix +++ /dev/null @@ -1,4 +0,0 @@ -{ namespace, lib, ... }: -{ - -} diff --git a/modules/home/my/default.nix b/modules/home/my/default.nix new file mode 100644 index 0000000..b5a7888 --- /dev/null +++ b/modules/home/my/default.nix @@ -0,0 +1,73 @@ +{ + namespace, + lib, + config, + ... +}: +let + inherit (lib) + mkOption + types + mkDefault + mkIf + ; +in +{ + options.${namespace}.my = rec { + name = mkOption { + type = types.str; + default = config.snowfallorg.user.name or "marley"; + description = "Your username, for use as your login name."; + }; + + username = mkOption { + type = types.str; + default = name; + description = "Your username, for external profiles."; + }; + + fullName = mkOption { + type = types.str; + default = name; + description = "Your full name, for display purposes."; + }; + + email = mkOption { + type = types.NullOr types.str; + default = null; + description = "Your email"; + }; + + git.name = mkOption { + type = types.str; + default = name; + description = "Your git committer name."; + }; + + git.email = mkOption { + type = types.nullOr types.str; + default = email; + description = "Your git committer email."; + }; + }; + + config = + let + cfg = config.${namespace}.my; + in + { + assertions = [ + { + assertion = cfg.name != null; + message = "${namespace}.my.name must be set."; + } + ]; + + home.username = mkDefault cfg.name; + + programs.git = mkIf config.programs.git.enable { + userName = mkDefault cfg.git.name; + userEmail = mkDefault cfg.git.email; + }; + }; +}