about summary refs log tree commit diff
path: root/modules/common/git.nix
diff options
context:
space:
mode:
authorAzat Bahawi <azat@bahawi.net>2024-04-21 02:15:42 +0300
committerAzat Bahawi <azat@bahawi.net>2024-04-21 02:15:42 +0300
commite6ed60548397627bf10f561f9438201dbba0a36e (patch)
treef9a84c5957d2cc4fcd148065ee9365a0c851ae1c /modules/common/git.nix
parent2024-04-18 (diff)
2024-04-21
Diffstat (limited to '')
-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";
-        };
-      };
-    };
-  };
-}

Consider giving Nix/NixOS a try! <3