Convert git from nixosModule to homeModule
This commit is contained in:
parent
fe55849333
commit
7dfe9f87be
|
@ -11,5 +11,9 @@
|
||||||
apps = {
|
apps = {
|
||||||
tmux.enable = true;
|
tmux.enable = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
tools = {
|
||||||
|
git.enable = true;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
87
modules/home/tools/git/default.nix
Normal file
87
modules/home/tools/git/default.nix
Normal file
|
@ -0,0 +1,87 @@
|
||||||
|
{
|
||||||
|
config,
|
||||||
|
pkgs,
|
||||||
|
lib,
|
||||||
|
namespace,
|
||||||
|
...
|
||||||
|
}: let
|
||||||
|
inherit (lib) mkIf mkEnableOption mkDefault;
|
||||||
|
|
||||||
|
cfg = config.${namespace}.tools.git;
|
||||||
|
in {
|
||||||
|
options.${namespace}.tools.git = {
|
||||||
|
enable = mkEnableOption "git";
|
||||||
|
userName = lib.options.mkOption {
|
||||||
|
type = lib.types.str;
|
||||||
|
default = "alejandro-angulo";
|
||||||
|
description = "The name to use for git commits.";
|
||||||
|
};
|
||||||
|
userEmail = lib.options.mkOption {
|
||||||
|
type = lib.types.str;
|
||||||
|
default = "iam@alejandr0angul0.dev";
|
||||||
|
description = "The email to use for git commits.";
|
||||||
|
};
|
||||||
|
signingKey = lib.options.mkOption {
|
||||||
|
type = lib.types.str;
|
||||||
|
default = "0xE1B13CCEFDEDDFB7";
|
||||||
|
description = "The key ID used to sign commits.";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
programs.zsh.shellAliases = {
|
||||||
|
"gco" = "${pkgs.git}/bin/git checkout $(${pkgs.git}/bin/git branch | ${pkgs.fzf}/bin/fzf)";
|
||||||
|
};
|
||||||
|
|
||||||
|
programs.git = {
|
||||||
|
delta = {
|
||||||
|
enable = true;
|
||||||
|
options = {
|
||||||
|
line-numbers = true;
|
||||||
|
navigate = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
enable = true;
|
||||||
|
userName = cfg.userName;
|
||||||
|
userEmail = cfg.userEmail;
|
||||||
|
|
||||||
|
aliases = {
|
||||||
|
lol = "log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit --date=relative";
|
||||||
|
pushup = "push -u origin HEAD";
|
||||||
|
};
|
||||||
|
|
||||||
|
signing = {
|
||||||
|
key = cfg.signingKey;
|
||||||
|
signByDefault = mkDefault true;
|
||||||
|
};
|
||||||
|
|
||||||
|
ignores = [
|
||||||
|
# PyCharm
|
||||||
|
".idea/"
|
||||||
|
|
||||||
|
# Vim artifacts
|
||||||
|
"*.swp"
|
||||||
|
"*.swo"
|
||||||
|
"tags"
|
||||||
|
".vimspector.json"
|
||||||
|
".vimlocal"
|
||||||
|
"Session.vim*"
|
||||||
|
|
||||||
|
# direnv
|
||||||
|
".envrc"
|
||||||
|
".direnv"
|
||||||
|
];
|
||||||
|
|
||||||
|
extraConfig = {
|
||||||
|
init = {
|
||||||
|
defaultBranch = "main";
|
||||||
|
};
|
||||||
|
|
||||||
|
pull = {
|
||||||
|
rebase = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
|
@ -16,7 +16,6 @@ in {
|
||||||
tools = {
|
tools = {
|
||||||
direnv.enable = true;
|
direnv.enable = true;
|
||||||
eza.enable = true;
|
eza.enable = true;
|
||||||
git.enable = true;
|
|
||||||
gpg.enable = true;
|
gpg.enable = true;
|
||||||
zsh.enable = true;
|
zsh.enable = true;
|
||||||
};
|
};
|
||||||
|
@ -27,9 +26,10 @@ in {
|
||||||
};
|
};
|
||||||
|
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
pre-commit
|
|
||||||
minio-client
|
|
||||||
awscli2
|
awscli2
|
||||||
|
minio-client
|
||||||
|
pre-commit
|
||||||
|
git
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,88 +0,0 @@
|
||||||
{
|
|
||||||
options,
|
|
||||||
config,
|
|
||||||
pkgs,
|
|
||||||
lib,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
with lib; let
|
|
||||||
cfg = config.aa.tools.git;
|
|
||||||
gpg = config.aa.tools.gpg;
|
|
||||||
user = config.aa.user;
|
|
||||||
in {
|
|
||||||
options.aa.tools.git = with types; {
|
|
||||||
enable = mkEnableOption "git";
|
|
||||||
userName = mkOption {
|
|
||||||
type = str;
|
|
||||||
default = user.fullName;
|
|
||||||
description = "The name to use for git commits.";
|
|
||||||
};
|
|
||||||
userEmail = mkOption {
|
|
||||||
type = str;
|
|
||||||
default = user.email;
|
|
||||||
description = "The email to use for git commits.";
|
|
||||||
};
|
|
||||||
signingKey = mkOption {
|
|
||||||
type = str;
|
|
||||||
default = "0xE1B13CCEFDEDDFB7";
|
|
||||||
description = "The key ID used to sign commits.";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
|
||||||
environment.systemPackages = with pkgs; [git];
|
|
||||||
|
|
||||||
aa.home.extraOptions = {
|
|
||||||
programs.git = {
|
|
||||||
delta = {
|
|
||||||
enable = true;
|
|
||||||
options = {
|
|
||||||
line-numbers = true;
|
|
||||||
navigate = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
enable = true;
|
|
||||||
userName = cfg.userName;
|
|
||||||
userEmail = cfg.userEmail;
|
|
||||||
|
|
||||||
aliases = {
|
|
||||||
lol = "log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit --date=relative";
|
|
||||||
pushup = "push -u origin HEAD";
|
|
||||||
};
|
|
||||||
|
|
||||||
signing = {
|
|
||||||
key = cfg.signingKey;
|
|
||||||
signByDefault = mkIf config.aa.tools.gpg.enable true;
|
|
||||||
};
|
|
||||||
|
|
||||||
ignores = [
|
|
||||||
# PyCharm
|
|
||||||
".idea/"
|
|
||||||
|
|
||||||
# Vim artifacts
|
|
||||||
"*.swp"
|
|
||||||
"*.swo"
|
|
||||||
"tags"
|
|
||||||
".vimspector.json"
|
|
||||||
".vimlocal"
|
|
||||||
"Session.vim*"
|
|
||||||
|
|
||||||
# direnv
|
|
||||||
".envrc"
|
|
||||||
".direnv"
|
|
||||||
];
|
|
||||||
|
|
||||||
extraConfig = {
|
|
||||||
init = {
|
|
||||||
defaultBranch = "main";
|
|
||||||
};
|
|
||||||
|
|
||||||
pull = {
|
|
||||||
rebase = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -18,7 +18,6 @@ with lib; {
|
||||||
nix.enable = true;
|
nix.enable = true;
|
||||||
|
|
||||||
suites.desktop.enable = true;
|
suites.desktop.enable = true;
|
||||||
tools.git.enable = true;
|
|
||||||
tools.zsh.enable = true;
|
tools.zsh.enable = true;
|
||||||
tools.eza.enable = true;
|
tools.eza.enable = true;
|
||||||
apps.neovim.enable = true;
|
apps.neovim.enable = true;
|
||||||
|
|
Loading…
Reference in a new issue