From 3cf11923ebd3648ec8cd51414eb302827d9c4ce8 Mon Sep 17 00:00:00 2001 From: Daiderd Jordan Date: Sat, 19 Dec 2020 11:37:54 +0100 Subject: [PATCH] use --dry-run check to re-apply system patches --- modules/system/patches.nix | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/modules/system/patches.nix b/modules/system/patches.nix index 855d23f..0ef3e73 100644 --- a/modules/system/patches.nix +++ b/modules/system/patches.nix @@ -29,6 +29,10 @@ in description = '' Set of patches to apply to /. + + This can modify everything so use with caution. + + Useful for safely changing system files. Unlike the etc module this won't remove or modify files with unexpected content. ''; @@ -56,12 +60,12 @@ in fi done - ${concatMapStringsSep "\n" (f: '' - f="$(basename ${f})" - if ! diff "${cfg.build.patches}/patches/$f" "/run/current-system/patches/$f" &> /dev/null; then - patch --forward --backup -d / -p1 < '${f}' || true - fi - '') cfg.patches} + ${concatMapStringsSep "\n" (f: '' + f="$(basename ${f})" + if ! patch --reverse --dry-run -d / -p1 < '${f}' &> /dev/null; then + patch --forward --backup -d / -p1 < '${f}' || true + fi + '') cfg.patches} ''; };