diff --git a/init.sh b/init.sh index 7e59bc0..35a4137 100755 --- a/init.sh +++ b/init.sh @@ -737,7 +737,12 @@ setupConfigsFromRepo() sudo mkdir -p "$dst" - if ! sudo cp -a "$src"/. "$dst"/; then + # No-clobber: only seed config files that don't already exist. On a fresh + # install this copies the whole template; on a re-run/deploy it preserves the + # user's live values (a plain cp -a here silently reset e.g. the Docker + # install type back to the template default). New *keys* in existing files + # are added separately by the add-only reconcile pass. + if ! sudo cp -an "$src"/. "$dst"/; then isError "Failed to copy configs from $src to $dst — aborting." exit 1 fi @@ -1047,7 +1052,8 @@ sync_configs_from_install() { return 1 fi sudo mkdir -p "$dst" - if ! sudo cp -a "$src"/. "$dst"/; then + # No-clobber: preserve the user's live config values; only add new files. + if ! sudo cp -an "$src"/. "$dst"/; then echo "ERROR: Failed to sync configs from $src to $dst." return 1 fi