From 946323f0cad17e511ab0cf5052506e4f565edfe0 Mon Sep 17 00:00:00 2001 From: qaristote Date: Tue, 14 Mar 2023 12:23:56 +0100 Subject: home & nixos: git: add config for system flake directory --- modules/home-manager/personal/programs/git.nix | 11 ++++++++++- modules/nixos/personal/nix.nix | 8 ++++++++ 2 files changed, 18 insertions(+), 1 deletion(-) 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}"; + }; + }; }; } -- cgit v1.2.3