summaryrefslogtreecommitdiff
path: root/modules
diff options
context:
space:
mode:
Diffstat (limited to 'modules')
-rw-r--r--modules/home-manager/personal/programs/git.nix11
-rw-r--r--modules/nixos/personal/nix.nix8
2 files changed, 18 insertions, 1 deletions
diff --git a/modules/home-manager/personal/programs/git.nix b/modules/home-manager/personal/programs/git.nix
index 85ce0e4..a34b1b3 100644
--- a/modules/home-manager/personal/programs/git.nix
+++ b/modules/home-manager/personal/programs/git.nix
@@ -1,4 +1,4 @@
-{ config, lib, pkgs, ... }:
+{ config, lib, pkgs, ... }@extraArgs:
let
primaryEmail = let
@@ -28,5 +28,14 @@ in {
result
''
];
+
+ extraConfig = {
+ safe.directory = lib.mkIf (extraArgs ? osConfig) (
+ let
+ flake = extraArgs.osConfig.system.autoUpgrade.flake;
+ flakeIsValid = flake != null && lib.hasPrefix "git+file://" flake;
+ flakePath = lib.removePrefix "git+file://" flake;
+ in lib.optional flakeIsValid flakePath);
+ };
};
}
diff --git a/modules/nixos/personal/nix.nix b/modules/nixos/personal/nix.nix
index 156f045..a4948f4 100644
--- a/modules/nixos/personal/nix.nix
+++ b/modules/nixos/personal/nix.nix
@@ -45,5 +45,13 @@ in {
wantedBy = lib.mkIf config.nix.gc.automatic [ "nix-gc.service" ];
};
};
+ programs.git = lib.mkIf (cfg.flake != null
+ && lib.hasPrefix "git+file" cfg.flake) {
+ enable = true;
+ config.user = {
+ name = "Root user of ${config.networking.hostName}";
+ email = "root@${config.networking.hostName}";
+ };
+ };
};
}