fix(installer): print diff on file deployment
This commit is contained in:
parent
a5e4d17e20
commit
9a65e08890
16
install
16
install
|
@ -208,11 +208,27 @@ backup_if_exists() {
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# diff_if_exists <src> <dest>
|
||||||
|
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 <src> <dest>
|
# cp_if_different <src> <dest>
|
||||||
cp_if_different() {
|
cp_if_different() {
|
||||||
if [[ -f "$2" ]] && diff -q "$1" "$2" > /dev/null; then
|
if [[ -f "$2" ]] && diff -q "$1" "$2" > /dev/null; then
|
||||||
return
|
return
|
||||||
fi
|
fi
|
||||||
|
diff_if_exists "$1" "$2"
|
||||||
backup_if_exists "$2"
|
backup_if_exists "$2"
|
||||||
cp "$1" "$2"
|
cp "$1" "$2"
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue