From 9a65e088904d73c798dbfce3beee30cb4fecf0ec Mon Sep 17 00:00:00 2001 From: jo Date: Fri, 3 Feb 2023 14:07:07 +0100 Subject: [PATCH] fix(installer): print diff on file deployment --- install | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/install b/install index 940cf3f5d..425995648 100755 --- a/install +++ b/install @@ -208,11 +208,27 @@ backup_if_exists() { fi } +# diff_if_exists +diff_if_exists() { + src="$1" + dest="$2" + shift 2 + + if [[ -f "$dest" ]]; then + src_explicit_filename="$(dirname "$src")/$(basename "$dest").new" + cp "$src" "$src_explicit_filename" + # print what the existing file $dest would become if $src is copied + diff -u --color=always "$dest" "$src_explicit_filename" || : + rm -f "$src_explicit_filename" + fi +} + # cp_if_different cp_if_different() { if [[ -f "$2" ]] && diff -q "$1" "$2" > /dev/null; then return fi + diff_if_exists "$1" "$2" backup_if_exists "$2" cp "$1" "$2" }