From cad8954f75809eda533cfb01dc92de8d32f5332d Mon Sep 17 00:00:00 2001 From: Michael Hoang Date: Sat, 24 Jun 2023 13:58:56 +1000 Subject: etc: fail if we can't add a file Fixes #598 --- modules/system/etc.nix | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'modules/system') diff --git a/modules/system/etc.nix b/modules/system/etc.nix index b6c5827..d26c45e 100644 --- a/modules/system/etc.nix +++ b/modules/system/etc.nix @@ -51,6 +51,7 @@ in ln -sfn "$(readlink -f $systemConfig/etc)" /etc/static + errorOccurred=false for f in $(find /etc/static/* -type l); do l=/etc/''${f#/etc/static/} d=''${l%/*} @@ -79,6 +80,7 @@ in if [ -z "$h" ]; then echo "error: not linking environment.etc.\"''${l#/etc/}\" because $l already exists, skipping..." >&2 echo "existing file has unknown content $o, move and activate again to apply" >&2 + errorOccurred=true fi fi fi @@ -87,6 +89,10 @@ in fi done + if [ "$errorOccurred" != "false" ]; then + exit 1 + fi + for l in $(find /etc/* -type l 2> /dev/null); do f="$(echo $l | sed 's,/etc/,/etc/static/,')" f=/etc/static/''${l#/etc/} -- cgit v1.2.3