diff options
| author | qaristote <quentin.aristote@ens.fr> | 2023-03-14 12:23:56 +0100 |
|---|---|---|
| committer | qaristote <quentin.aristote@ens.fr> | 2023-03-14 12:23:56 +0100 |
| commit | 946323f0cad17e511ab0cf5052506e4f565edfe0 (patch) | |
| tree | c81cfd6ab22dbd503001dfbaa6b34fad85eb0da9 /modules | |
| parent | 2dad7cf1a9e79fee2d391ee771b85b677bba8676 (diff) | |
home & nixos: git: add config for system flake directory
Diffstat (limited to 'modules')
| -rw-r--r-- | modules/home-manager/personal/programs/git.nix | 11 | ||||
| -rw-r--r-- | modules/nixos/personal/nix.nix | 8 |
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}"; + }; + }; }; } |
