summaryrefslogtreecommitdiff
path: root/modules/common/git.nix
diff options
context:
space:
mode:
Diffstat (limited to 'modules/common/git.nix')
-rw-r--r--modules/common/git.nix173
1 files changed, 0 insertions, 173 deletions
diff --git a/modules/common/git.nix b/modules/common/git.nix
deleted file mode 100644
index fbe190e..0000000
--- a/modules/common/git.nix
+++ /dev/null
@@ -1,173 +0,0 @@
-{
- config,
- inputs,
- lib,
- localUsername ? lib.my.username,
- pkgs,
- ...
-}:
-with lib;
-let
- cfg = config.nixfiles.modules.git;
-in
-{
- options.nixfiles.modules.git.client.enable = mkEnableOption "Git client";
-
- config = mkIf cfg.client.enable {
- secrets = {
- glab-cli-config = {
- file = "${inputs.self}/secrets/glab-cli-config";
- path = "${config.dirs.config}/glab-cli/config.yml";
- owner = localUsername;
- };
- gh-hosts = {
- file = "${inputs.self}/secrets/gh-hosts";
- path = "${config.dirs.config}/gh/hosts.yml";
- owner = localUsername;
- };
- hut = {
- file = "${inputs.self}/secrets/hut";
- path = "${config.dirs.config}/hut/config";
- owner = localUsername;
- };
- };
-
- nixfiles.modules.common.shell.aliases = {
- gl = "glab";
- ht = "hut";
- };
-
- hm = {
- home.packages = with pkgs; [
- git-extras
- glab
- hut
- ];
-
- programs = {
- git = {
- enable = true;
-
- package = pkgs.git.override {
- doInstallCheck = false;
- pythonSupport = false;
- sendEmailSupport = true;
- withLibsecret = false;
- withSsh = true;
- };
-
- userName = my.fullname;
- userEmail = my.email;
- signing = {
- inherit (my.pgp) key;
- signByDefault = true;
- };
-
- extraConfig =
- {
- color.ui = true;
- core.whitespace = "trailing-space";
- init.defaultBranch = "master";
- status.submoduleSummary = true;
- commit.verbose = true;
- push.autoSetupRemote = true;
- pull.rebase = true;
- rebase = {
- autoStash = true;
- autoSquash = true;
- };
- rerere.enabled = true;
- branch.sort = "-committerdate";
- diff = {
- mnemonicPrefix = true;
- renames = "copies";
- submodule = "log";
- };
- submodule.recurse = true;
- sendemail = rec {
- smtpServer = my.domain.shire;
- smtpUser = "${my.username}@${smtpServer}";
- smtpEncryption = "ssl";
- smtpServerPort = 465;
- annotate = true;
- confirm = "always";
- };
- column.ui = "auto";
- github.user = my.username;
- gitlab.user = my.username;
- }
- // mapAttrs' (name: value: nameValuePair ''url "git@${value}:"'' { insteadOf = "${name}:"; }) {
- "bitbucket" = "bitbucket.com";
- "codeberg" = "codeberg.org";
- "github" = "github.com";
- "gitlab" = "gitlab.com";
- "sourcehut" = "git.sr.ht";
- }
- //
- mapAttrs' (name: values: nameValuePair ''url "https://${values}/"'' { insteadOf = "${name}:"; })
- {
- "alpine" = "gitlab.alpinelinux.org";
- "debian" = "salsa.debian.org";
- "freedesktop" = "gitlab.freedesktop.org";
- "gnome" = "gitlab.gnome.org";
- "haskell" = "gitlab.haskell.org";
- "homotopic" = "gitlab.homotopic.tech";
- "horizon" = "gitlab.horizon-haskell.net";
- "kde" = "invent.kde.org";
- "nixca" = "gitlab.nixca.dev";
- "notabug" = "notabug.org";
- "opencode" = "opencode.net";
- "torproject" = "gitlab.torproject.org";
- "videolan" = "code.videolan.org";
- };
-
- aliases =
- let
- git = getExe config.hm.programs.git.package;
- curl = getExe pkgs.curl;
- in
- {
- amend = "commit --amend";
- cat = "cat-file -p";
- fast = "clone --depth=1";
- fixup = "commit --fixup";
- fuck = "!${git} reset --hard && ${git} clean --force -dx";
- get = "pull --all --recurse-submodules --autostash";
- gud = ''commit -m "git gud"'';
- refresh = "clean --force -dx";
- tree = "log --graph --date=relative --pretty=tformat:'%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%an %ad)%Creset'";
- uncommit = "reset --soft HEAD~1";
- untrack = "rm --cache --";
- wtc = "!${curl} -sq whatthecommit.com/index.txt | ${git} commit -F -";
- };
-
- # All helper tools/editor generated files should go here. This must be
- # kept void of any project-specific or residual files.
- ignores = [
- "*~"
- ".DS_Store"
- ".cache/clangd/"
- ".ccls-cache/"
- ".gdb_history"
- ".netrwhist"
- ".projectile"
- "[._]*.s[a-v][a-z]"
- "[._]*.sw[a-p]"
- "[._]s[a-rt-v][a-z]"
- "[._]ss[a-gi-z]"
- "[._]sw[a-p]"
- "\#*\#"
- "compile_commands*.json"
- "cscope.*"
- "vgcore.*"
- ];
- };
-
- gh = {
- enable = true;
- settings.git_protocol = "ssh";
- };
- };
- };
- };
-}