diff options
| author | Arpit Chakladar <arpitchakladar@gmail.com> | 2026-07-09 01:13:32 +0530 |
|---|---|---|
| committer | Arpit Chakladar <arpitchakladar@gmail.com> | 2026-07-09 01:13:32 +0530 |
| commit | 611c66868c6c82aa3ae3a5344f72506b2d715855 (patch) | |
| tree | 43dca7977b3f1eeec2e24f53fe89c6b9764b441b /modules/programs/ssh/git.nix | |
| parent | 3a6f2ce2a2334c514c5310aa58cab626775d3e01 (diff) | |
| download | home-manager-config-611c66868c6c82aa3ae3a5344f72506b2d715855.tar.gz home-manager-config-611c66868c6c82aa3ae3a5344f72506b2d715855.zip | |
refactor: refactor SSH module and move git host configs to dedicated submodule
Diffstat (limited to 'modules/programs/ssh/git.nix')
| -rw-r--r-- | modules/programs/ssh/git.nix | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/modules/programs/ssh/git.nix b/modules/programs/ssh/git.nix new file mode 100644 index 0000000..de4fb40 --- /dev/null +++ b/modules/programs/ssh/git.nix @@ -0,0 +1,52 @@ +{ config, lib, ... }: + +let + homeDir = config.home.homeDirectory; + keyDir = "${homeDir}/.local/share/ssh/git"; + + hosts = [ + { + domain = "github.com"; + identityName = "github"; + } + { + domain = "gitlab.com"; + identityName = "gitlab"; + } + { + domain = "bitbucket.org"; + identityName = "bitbucket"; + } + { + domain = "codeberg.org"; + identityName = "codeberg"; + } + { + domain = "git.sr.ht"; + identityName = "sourcehut"; + } + ]; + + mkGitHost = + { domain, identityName }: + lib.nameValuePair domain { + hostname = domain; + user = "git"; + identityFile = "${keyDir}/${identityName}"; + }; + + mkKeyFile = + { identityName, ... }: + lib.nameValuePair identityName { + enable = true; + text = ""; + force = false; + }; +in +{ + config = lib.mkIf (config.programs.ssh.enable && config.programs.git.useSSH) { + home.file = builtins.listToAttrs (map mkKeyFile hosts); + + programs.ssh.settings = builtins.listToAttrs (map mkGitHost hosts); + }; +} |
