summaryrefslogtreecommitdiffstats
path: root/usr.sbin/mergemaster
diff options
context:
space:
mode:
authordillon <dillon@FreeBSD.org>2003-01-25 19:12:06 +0000
committerdillon <dillon@FreeBSD.org>2003-01-25 19:12:06 +0000
commit84dc829bfcf899a3a74b734fe602e2a48239ef84 (patch)
tree5ca68cb91cbfd244907a61902ba1d7c279eabbb6 /usr.sbin/mergemaster
parent401c72026168bcd0604cb05f2074b300c1f84a9e (diff)
downloadFreeBSD-src-84dc829bfcf899a3a74b734fe602e2a48239ef84.zip
FreeBSD-src-84dc829bfcf899a3a74b734fe602e2a48239ef84.tar.gz
Commit simple mergemaster changes to make the UI more deterministic
(far easier to use) by limiting the initial display to the size of the window.
Diffstat (limited to 'usr.sbin/mergemaster')
-rwxr-xr-xusr.sbin/mergemaster/mergemaster.sh55
1 files changed, 44 insertions, 11 deletions
diff --git a/usr.sbin/mergemaster/mergemaster.sh b/usr.sbin/mergemaster/mergemaster.sh
index d2f1f90..5b20b05 100755
--- a/usr.sbin/mergemaster/mergemaster.sh
+++ b/usr.sbin/mergemaster/mergemaster.sh
@@ -12,6 +12,30 @@
PATH=/bin:/usr/bin:/usr/sbin
+# Figure out the number of columns and rows on the
+# terminal. Use 80x24 if there is any doubt.
+#
+if test -t 0; then
+ DIFFROWS=`stty size | awk '{ print $1; }'`
+ DIFFCOLS=`stty size | awk '{ print $2; }'`
+ if [ -z "$DIFFCOLS" ]; then
+ DIFFCOLS=80
+ fi
+ if [ -z "$DIFFROWS" ]; then
+ DIFFROWS=24
+ fi
+ if [ $DIFFROWS -le 0 ]; then
+ DIFFROWS=24
+ fi
+ if [ $DIFFCOLS -le 0 ]; then
+ DIFFCOLS=80
+ fi
+else
+ DIFFCOLS=80
+ DIFFROWS=24
+fi
+DIFFROWS=$(($DIFFROWS - 8))
+DIFFCOLS=$(($DIFFCOLS - 1))
display_usage () {
VERSION_NUMBER=`grep "[$]FreeBSD:" $0 | cut -d ' ' -f 4`
echo "mergemaster version ${VERSION_NUMBER}"
@@ -106,24 +130,33 @@ merge_loop () {
diff_loop () {
HANDLE_COMPFILE=v
+ FIRST_TIME=y
while [ "${HANDLE_COMPFILE}" = "v" -o "${HANDLE_COMPFILE}" = "V" -o \
"${HANDLE_COMPFILE}" = "NOT V" ]; do
if [ -f "${DESTDIR}${COMPFILE#.}" -a -f "${COMPFILE}" ]; then
if [ "${HANDLE_COMPFILE}" = "v" -o "${HANDLE_COMPFILE}" = "V" ]; then
+ if [ "$FIRST_TIME" = "y" ]; then
+ clear
+ (
+ echo " *** Displaying differences between ${COMPFILE} and installed version:"
+ echo ''
+ diff "${DIFF_FLAG}" "${DESTDIR}${COMPFILE#.}" "${COMPFILE}"
+ ) | cut -b 1-${DIFFCOLS} | head -${DIFFROWS}
+ echo '...'
+ else
+ clear
+ (
+ echo " *** Displaying differences between ${COMPFILE} and installed version:"
+ echo ''
+ diff "${DIFF_FLAG}" "${DESTDIR}${COMPFILE#.}" "${COMPFILE}"
+ ) | ${PAGER}
+ fi
echo ''
- echo ' ====================================================================== '
- echo ''
- (
- echo ''
- echo " *** Displaying differences between ${COMPFILE} and installed version:"
- echo ''
- diff "${DIFF_FLAG}" "${DESTDIR}${COMPFILE#.}" "${COMPFILE}"
- ) | ${PAGER}
- echo ''
+ FIRST_TIME=n
fi
else
- echo ''
+ clear
echo " *** There is no installed version of ${COMPFILE}"
echo ''
case "${AUTO_INSTALL}" in
@@ -151,7 +184,7 @@ diff_loop () {
case "${NO_INSTALLED}" in
'')
echo " Use 'm' to merge the temporary and installed versions"
- echo " Use 'v' to view the diff results again"
+ echo " Use 'v' to view the entire diff results"
;;
esac
echo ''
OpenPOWER on IntegriCloud