16 lines
356 B
Bash
16 lines
356 B
Bash
# shellcheck shell=bash
|
|
|
|
source=$(realpath -m "$1")
|
|
target=$(realpath -m "$2")
|
|
|
|
if [[ -f "$target" ]]; then
|
|
temp=$(mktemp)
|
|
awk -F '=' 'NR==FNR{a[$1]=$0;next}($1 in a){$0=a[$1]}1' "$source" "$target" > "$temp"
|
|
mv "$temp" "$target"
|
|
else
|
|
mkdir -p "$(dirname "$target")"
|
|
cp "$source" "$target"
|
|
fi
|
|
|
|
echo "Configuration file $target has been updated."
|