diff options
author | Franck Cuny <franck@fcuny.net> | 2023-12-14 06:19:50 -0800 |
---|---|---|
committer | Franck Cuny <franck@fcuny.net> | 2023-12-14 06:19:59 -0800 |
commit | 94142ef5780de4a049436de08b8d7e0cd3d04245 (patch) | |
tree | 7e55f6a70bba904934a088d43f464bccbb78bdb3 /home/git.nix | |
parent | build(deps): bump cachix/install-nix-action from 23 to 24 (diff) | |
download | world-94142ef5780de4a049436de08b8d7e0cd3d04245.tar.gz |
simplify the layout
Diffstat (limited to 'home/git.nix')
-rw-r--r-- | home/git.nix | 77 |
1 files changed, 77 insertions, 0 deletions
diff --git a/home/git.nix b/home/git.nix new file mode 100644 index 0000000..2c69c64 --- /dev/null +++ b/home/git.nix @@ -0,0 +1,77 @@ +{ lib, pkgs, config, ... }: +let + sshPub = builtins.fromTOML ( + builtins.readFile ../configs/ssh-pubkeys.toml + ); +in +{ + home.file.".ssh/allowed_signers".text = lib.concatMapStrings (x: "franck@fcuny.net ${x}\n") (with sshPub; [ aptos work git ykey-laptop op ]); + + programs.git = { + enable = true; + userName = "Franck Cuny"; + userEmail = "franck@fcuny.net"; + + signing = { + key = "key::${sshPub.op}"; + signByDefault = true; + }; + + aliases = { + amend = "commit --amend"; + ll = "log --pretty=\"format:%h %G? %aN %s\""; + }; + + extraConfig = { + core.whitespace = "trailing-space,space-before-tab"; + color.ui = "true"; + + gpg.format = "ssh"; + gpg.ssh.allowedSignersFile = "~/.ssh/allowed_signers"; + gpg.ssh.program = "/Applications/1Password.app/Contents/MacOS/op-ssh-sign"; + + # abort if the remote branch does not match the local one + push.default = "simple"; + + init.defaultBranch = "main"; + + pull.rebase = true; + rebase = { + # Automatically create a temporary stash entry before the + # operation begins, and apply it after the operation ends. + autoStash = true; + # Print a warning if some commits are removed + missingCommitsCheck = "warn"; + }; + + branch.autosetuprebase = "remote"; + branch.sort = "authordate"; + + commit.template = "${config.xdg.dataHome}/git/commit.template"; + }; + + ignores = [ + "*~" + ".direnv" + "__pycache__" + ]; + }; + + xdg.dataFile."git/commit.template".source = pkgs.writeText "commit.template" '' + + # (If applied, this commit will...) <subject> + + # Explain why this change is being made + + # --- COMMIT END --- + # Remember to + # Use the imperative mood, present tense: `change' not `changed' nor `changes' + # Do not end the subject line with a period + # Use the body to explain what and why vs. how + # Can use multiple lines with "-" for bullet points in body +''; + + home.packages = with pkgs; [ + gitAndTools.pre-commit + ]; +} |