diff options
| author | 0scar <qgt268@alumni.ku.dk> | 2023-03-22 11:10:28 +0000 |
|---|---|---|
| committer | 0scar <qgt268@alumni.ku.dk> | 2023-03-22 11:10:28 +0000 |
| commit | d9a19b14ec4f40986eec35c1e9448d1e47e71b5f (patch) | |
| tree | 6d16eaef6b124449afa3afd4729f8e07db0f6b6b | |
| parent | 938507ebac2e7e1b3dccf0b579a87dc1f7582ec6 (diff) | |
Add option to count diff in mergeconf and query before merging
| -rwxr-xr-x | merge_conf | 31 |
1 files changed, 26 insertions, 5 deletions
@@ -8,6 +8,17 @@ for submodule in ${SUBMODULES}; do FILES=$(printf '%s' "${FILES}" | sed -E "/${SS}/d") done +function prompt_mergeskip () { + read -p "Merge $1 with local copy? [y/n]" yn + case $yn in + [Yy]*) vimdiff "${HOME}/$1" "$1";; + [Nn]*) return;; + esac +} + +NEW_FILES=$((0)) +CHG_FILES=$((0)) + function copy() { local FILE="${1}" echo -ne "missing $FILE\n" @@ -18,9 +29,19 @@ function copy() { esac } -for f in ${FILES}; do - [ -e "${HOME}/${f}" ] || copy $f +if [ "$1" = "-c" ]; then + for f in ${FILES}; do + [ -e "${HOME}/${f}" ] || NEW_FILES=$(($NEW_FILES + 1)) - diff -q "${HOME}/${f}" "${f}" >/dev/null - [ $? -ne 0 ] && vimdiff "${HOME}/${f}" "${f}" -done + diff -q -I 'email|name|signingkey' "${HOME}/${f}" "${f}" >/dev/null + [ $? -ne 0 ] && CHG_FILES=$(($CHG_FILES + 1)) + done + printf "New files: %d\nFiles changed: %d\n" "${NEW_FILES}" "${CHG_FILES}" +else + for f in ${FILES}; do + [ -e "${HOME}/${f}" ] || copy $f + + diff -q -I 'email|name|signingkey' "${HOME}/${f}" "${f}" >/dev/null + [ $? -ne 0 ] && prompt_mergeskip "${f}" + done +fi |
