freebsd-update: re-edit files if merge conflict markers remain

freebsd-update will open ${EDITOR} if conflicts occur while merging
updates to config files.  Inform the user if they've left conflict
markers behind, and go back to editing the file.

PR:		185546
PR:		229689
Reviewed by:	delphij
Sponsored by:	The FreeBSD Foundation
Differential Revision:	https://reviews.freebsd.org/D37703
This commit is contained in:
Ed Maste 2022-12-14 12:34:59 -05:00
parent c5e54e56e6
commit ceb5f28ba5

View File

@ -2543,8 +2543,21 @@ The following file could not be merged automatically: ${F}
Press Enter to edit this file in ${EDITOR} and resolve the conflicts
manually...
EOF
read dummy </dev/tty
${EDITOR} `pwd`/merge/new/${F} < /dev/tty
while true; do
read dummy </dev/tty
${EDITOR} `pwd`/merge/new/${F} < /dev/tty
if ! egrep -q '^(<<<<<<<|=======|>>>>>>>)([[:space:]].*)?$' $(pwd)/merge/new/${F} ; then
break
fi
cat <<-EOF
Merge conflict markers remain in: ${F}
These must be resolved for the system to be functional.
Press Enter to return to editing this file.
EOF
done
done < failed.merges
rm failed.merges