From 36039e24788d5577829ef2aa357cad7b423f7487 Mon Sep 17 00:00:00 2001 From: Rutherther Date: Sun, 14 Apr 2024 08:26:20 +0200 Subject: [PATCH] feat: add removal records for home files --- modules/home.nix | 11 +++++++++-- modules/tmpfiles.nix | 32 +++++++------------------------- 2 files changed, 16 insertions(+), 27 deletions(-) diff --git a/modules/home.nix b/modules/home.nix index 0ea32e4..548f643 100644 --- a/modules/home.nix +++ b/modules/home.nix @@ -44,14 +44,21 @@ in { tmpfiles.defaultUser = config.home.user; tmpfiles.defaultGroup = config.home.group; - tmpfiles.files = lib.attrValues (lib.mapAttrs (name: conf: { + tmpfiles.files = (lib.attrValues (lib.mapAttrs (name: conf: { type = "L+"; mode = "-"; user = "-"; group = "-"; text = "${config.home.homeFilesPackage}/${name}"; target = "${config.home.homeDirectory}/${name}"; - }) homeFiles); + }) homeFiles)) ++ (lib.attrValues (lib.mapAttrs (name: conf: { + type = "r"; + mode = "-"; + user = "-"; + group = "-"; + text = "-"; + target = "${config.home.homeDirectory}/${name}"; + }) homeFiles)); home.homeFilesPackage = pkgs.runCommandLocal "home-files" { nativeBuildInputs = [ pkgs.xorg.lndir ]; diff --git a/modules/tmpfiles.nix b/modules/tmpfiles.nix index 839ab95..3ab4960 100644 --- a/modules/tmpfiles.nix +++ b/modules/tmpfiles.nix @@ -26,14 +26,6 @@ in { type = lib.types.listOf lib.types.str; }; - configurationFile = lib.mkOption { - type = lib.types.str; - }; - - removalConfigurationFile = lib.mkOption { - type = lib.types.str; - }; - configurationPackage = lib.mkOption { type = lib.types.package; description = '' @@ -68,31 +60,21 @@ in { contents = if file.source != null then file.source else file.text; }))) tmpFiles; - tmpfiles.configurationFile = pkgs.lib.concatStringsSep "\n" config.tmpfiles.configurationFileLines; - - tmpfiles.removalConfigurationFile = lib.concatStrings (builtins.map (file: tmpLib.mkRmTmpFile ({ - type = if file.type == "d" then "R" else "r"; - target = file.target; - }) + "\n") tmpFiles); - - tmpfiles.configurationPackage = pkgs.runCommand "tmpfiles-configuration" { - configuration = config.tmpfiles.configurationFile; - removal = config.tmpfiles.removalConfigurationFile; - } '' - mkdir -p $out/share/tmpfiles $out/lib/tmpfiles.d - echo -n "$configuration" > "$out/lib/tmpfiles.d/tmpfiles.conf" - echo -n "$removal" > "$out/share/tmpfiles/rm-tmpfiles.conf" - ''; + tmpfiles.configurationPackage = pkgs.writeTextFile { + name = "100-tmpactivator.conf"; + destination = "/lib/tmpfiles.d/100-tmpactivator.conf"; + text = lib.concatStringsSep "\n" config.tmpfiles.configurationFileLines; + }; tmpfiles.activationPackage = pkgs.symlinkJoin { name = "tmpfiles-activation"; paths = [ (pkgs.writeShellScriptBin "activate" '' - systemd-tmpfiles --create "${config.tmpfiles.configurationPackage}/lib/tmpfiles.d/tmpfiles.conf" + systemd-tmpfiles --create "${config.tmpfiles.configurationPackage}/lib/tmpfiles.d/100-tmpactivator.conf" '') (pkgs.writeShellScriptBin "deactivate" '' - systemd-tmpfiles --remove "${config.tmpfiles.configurationPackage}/share/tmpfiles/rm-tmpfiles.conf" + systemd-tmpfiles --remove "${config.tmpfiles.configurationPackage}/lib/tmpfiles.d/100-tmpactivator.conf" '') config.tmpfiles.configurationPackage ]; -- 2.48.1