feat(home-manager): add scm
module
For `git` and `jujutsu`
This commit is contained in:
parent
3dc5d9ac6c
commit
6e0c2adc1c
2 changed files with 104 additions and 14 deletions
|
@ -92,25 +92,15 @@
|
||||||
direnv = true;
|
direnv = true;
|
||||||
zoxide = true;
|
zoxide = true;
|
||||||
};
|
};
|
||||||
|
scm = {
|
||||||
|
git.enable = true;
|
||||||
|
jj.enable = true;
|
||||||
|
};
|
||||||
wezterm = {
|
wezterm = {
|
||||||
enable = true;
|
enable = true;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
programs.git = {
|
|
||||||
enable = true;
|
|
||||||
userName = "reo101";
|
|
||||||
# userEmail = "pavel.atanasov@limechain.tech";
|
|
||||||
userEmail = "pavel.atanasov2001@gmail.com";
|
|
||||||
signing = {
|
|
||||||
signByDefault = true;
|
|
||||||
key = "675AA7EF13964ACB";
|
|
||||||
};
|
|
||||||
lfs = {
|
|
||||||
enable = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
home.file.".gnupg/gpg-agent.conf" = {
|
home.file.".gnupg/gpg-agent.conf" = {
|
||||||
text = ''
|
text = ''
|
||||||
allow-preset-passphrase
|
allow-preset-passphrase
|
||||||
|
|
100
modules/home-manager/reo101-scm/default.nix
Normal file
100
modules/home-manager/reo101-scm/default.nix
Normal file
|
@ -0,0 +1,100 @@
|
||||||
|
{ lib, pkgs, config, ... }:
|
||||||
|
|
||||||
|
let
|
||||||
|
cfg = config.reo101.scm;
|
||||||
|
|
||||||
|
inherit (lib)
|
||||||
|
mkEnableOption
|
||||||
|
types
|
||||||
|
mkIf
|
||||||
|
optionals
|
||||||
|
mkMerge;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
imports =
|
||||||
|
[
|
||||||
|
];
|
||||||
|
|
||||||
|
options =
|
||||||
|
{
|
||||||
|
reo101.scm = {
|
||||||
|
git = {
|
||||||
|
enable = mkEnableOption "reo101 git setup";
|
||||||
|
};
|
||||||
|
jj = {
|
||||||
|
enable = mkEnableOption "reo101 jj setup";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
config = let
|
||||||
|
# TODO: agenix???
|
||||||
|
name = "reo101";
|
||||||
|
email = "pavel.atanasov2001@gmail.com";
|
||||||
|
key = "675AA7EF13964ACB";
|
||||||
|
in {
|
||||||
|
home.packages = with pkgs;
|
||||||
|
builtins.concatLists [
|
||||||
|
(optionals cfg.git.enable [
|
||||||
|
git
|
||||||
|
])
|
||||||
|
(optionals cfg.jj.enable [
|
||||||
|
jujutsu
|
||||||
|
])
|
||||||
|
];
|
||||||
|
|
||||||
|
programs.git = mkIf cfg.git.enable {
|
||||||
|
enable = true;
|
||||||
|
userName = name;
|
||||||
|
userEmail = email;
|
||||||
|
signing = {
|
||||||
|
signByDefault = true;
|
||||||
|
inherit key;
|
||||||
|
};
|
||||||
|
lfs = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
|
extraConfig = {
|
||||||
|
init.defaultBranch = "master";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
programs.jujutsu = mkIf cfg.jj.enable {
|
||||||
|
enable = true;
|
||||||
|
package = pkgs.jujutsu;
|
||||||
|
settings = {
|
||||||
|
user = {
|
||||||
|
# name = "reo101";
|
||||||
|
# email = "pavel.atanasov2001@gmail.com";
|
||||||
|
# name = config.programs.git.userName;
|
||||||
|
# email = config.programs.git.userEmail;
|
||||||
|
inherit name email;
|
||||||
|
};
|
||||||
|
git = {
|
||||||
|
fetch = ["origin" "upstream"];
|
||||||
|
push = "github";
|
||||||
|
};
|
||||||
|
signing = {
|
||||||
|
backend = "gpg";
|
||||||
|
# sign-all = true;
|
||||||
|
# key = "675AA7EF13964ACB";
|
||||||
|
# sign-all = config.programs.git.signing.signByDefault;
|
||||||
|
# key = config.programs.git.signing.key;
|
||||||
|
sign-all = true;
|
||||||
|
inherit key;
|
||||||
|
};
|
||||||
|
core.fsmonitor = "watchman";
|
||||||
|
ui = {
|
||||||
|
color = "always";
|
||||||
|
# pager = "nvim";
|
||||||
|
editor = "nvim";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
meta = {
|
||||||
|
maintainers = with lib.maintainers; [ reo101 ];
|
||||||
|
};
|
||||||
|
}
|
Loading…
Reference in a new issue