Deleted Added
full compact
mergemaster.sh (186689) mergemaster.sh (186695)
1#!/bin/sh
2
3# mergemaster
4
5# Compare files created by /usr/src/etc/Makefile (or the directory
6# the user specifies) with the currently installed copies.
7
8# Copyright 1998-2009 Douglas Barton
9# DougB@FreeBSD.org
10
1#!/bin/sh
2
3# mergemaster
4
5# Compare files created by /usr/src/etc/Makefile (or the directory
6# the user specifies) with the currently installed copies.
7
8# Copyright 1998-2009 Douglas Barton
9# DougB@FreeBSD.org
10
11# $FreeBSD: head/usr.sbin/mergemaster/mergemaster.sh 186689 2009-01-02 00:37:59Z dougb $
11# $FreeBSD: head/usr.sbin/mergemaster/mergemaster.sh 186695 2009-01-02 07:25:30Z dougb $
12
13PATH=/bin:/usr/bin:/usr/sbin
14
15display_usage () {
16 VERSION_NUMBER=`grep "[$]FreeBSD:" $0 | cut -d ' ' -f 4`
17 echo "mergemaster version ${VERSION_NUMBER}"
18 echo 'Usage: mergemaster [-scrvahipCP] [-m /path]'
19 echo ' [-t /path] [-d] [-u N] [-w N] [-D /path]'

--- 346 unchanged lines hidden (view full) ---

366fi
367
368echo ''
369
370# If the user has a pager defined, make sure we can run it
371#
372case "${DONT_CHECK_PAGER}" in
373'')
12
13PATH=/bin:/usr/bin:/usr/sbin
14
15display_usage () {
16 VERSION_NUMBER=`grep "[$]FreeBSD:" $0 | cut -d ' ' -f 4`
17 echo "mergemaster version ${VERSION_NUMBER}"
18 echo 'Usage: mergemaster [-scrvahipCP] [-m /path]'
19 echo ' [-t /path] [-d] [-u N] [-w N] [-D /path]'

--- 346 unchanged lines hidden (view full) ---

366fi
367
368echo ''
369
370# If the user has a pager defined, make sure we can run it
371#
372case "${DONT_CHECK_PAGER}" in
373'')
374 while ! type "${PAGER%% *}" >/dev/null && [ -n "${PAGER}" ]; do
374check_pager () {
375 while ! type "${PAGER%% *}" >/dev/null; do
375 echo " *** Your PAGER environment variable specifies '${PAGER}', but"
376 echo " due to the limited PATH that I use for security reasons,"
377 echo " I cannot execute it. So, what would you like to do?"
378 echo ''
379 echo " Use 'e' to exit mergemaster and fix your PAGER variable"
380 if [ -x /usr/bin/less -o -x /usr/local/bin/less ]; then
381 echo " Use 'l' to set PAGER to 'less' for this run"
382 fi

--- 25 unchanged lines hidden (view full) ---

408 PAGER=more
409 ;;
410 *)
411 echo ''
412 echo "invalid choice: ${FIXPAGER}"
413 esac
414 echo ''
415 done
376 echo " *** Your PAGER environment variable specifies '${PAGER}', but"
377 echo " due to the limited PATH that I use for security reasons,"
378 echo " I cannot execute it. So, what would you like to do?"
379 echo ''
380 echo " Use 'e' to exit mergemaster and fix your PAGER variable"
381 if [ -x /usr/bin/less -o -x /usr/local/bin/less ]; then
382 echo " Use 'l' to set PAGER to 'less' for this run"
383 fi

--- 25 unchanged lines hidden (view full) ---

409 PAGER=more
410 ;;
411 *)
412 echo ''
413 echo "invalid choice: ${FIXPAGER}"
414 esac
415 echo ''
416 done
417}
418 if [ -n "${PAGER}" ]; then
419 check_pager
420 fi
416 ;;
417esac
418
419# If user has a pager defined, or got assigned one above, use it.
420# If not, use more.
421#
422PAGER=${PAGER:-more}
423

--- 15 unchanged lines hidden (view full) ---

439 echo " *** The source directory you specified (${SOURCEDIR})"
440 echo " will be reset to ${SOURCEDIR}/.."
441 echo ''
442 sleep 3
443 SOURCEDIR=${SOURCEDIR}/..
444fi
445
446# Setup make to use system files from SOURCEDIR
421 ;;
422esac
423
424# If user has a pager defined, or got assigned one above, use it.
425# If not, use more.
426#
427PAGER=${PAGER:-more}
428

--- 15 unchanged lines hidden (view full) ---

444 echo " *** The source directory you specified (${SOURCEDIR})"
445 echo " will be reset to ${SOURCEDIR}/.."
446 echo ''
447 sleep 3
448 SOURCEDIR=${SOURCEDIR}/..
449fi
450
451# Setup make to use system files from SOURCEDIR
447MM_MAKE="make -m ${SOURCEDIR}/share/mk"
452MM_MAKE="make ${ARCHSTRING} -m ${SOURCEDIR}/share/mk"
448
449# Check DESTDIR against the mergemaster mtree database to see what
450# files the user changed from the reference files.
451#
452CHANGED=
453if [ -n "${AUTO_UPGRADE}" -a -f "${DESTDIR}${MTREEFILE}" ]; then
454 for file in `mtree -eq -f ${DESTDIR}${MTREEFILE} -p ${DESTDIR}/ \
455 2>/dev/null | awk '($2 == "changed") {print $1}'`; do

--- 123 unchanged lines hidden (view full) ---

579 esac
580
581 case "${PRE_WORLD}" in
582 '')
583 { cd ${SOURCEDIR} &&
584 case "${DESTDIR}" in
585 '') ;;
586 *)
453
454# Check DESTDIR against the mergemaster mtree database to see what
455# files the user changed from the reference files.
456#
457CHANGED=
458if [ -n "${AUTO_UPGRADE}" -a -f "${DESTDIR}${MTREEFILE}" ]; then
459 for file in `mtree -eq -f ${DESTDIR}${MTREEFILE} -p ${DESTDIR}/ \
460 2>/dev/null | awk '($2 == "changed") {print $1}'`; do

--- 123 unchanged lines hidden (view full) ---

584 esac
585
586 case "${PRE_WORLD}" in
587 '')
588 { cd ${SOURCEDIR} &&
589 case "${DESTDIR}" in
590 '') ;;
591 *)
587 ${MM_MAKE} DESTDIR=${DESTDIR} ${ARCHSTRING} distrib-dirs
592 ${MM_MAKE} DESTDIR=${DESTDIR} distrib-dirs
588 ;;
589 esac
593 ;;
594 esac
590 ${MM_MAKE} DESTDIR=${TEMPROOT} ${ARCHSTRING} distrib-dirs &&
591 MAKEOBJDIRPREFIX=${TEMPROOT}/usr/obj ${MM_MAKE} ${ARCHSTRING} obj SUBDIR_OVERRIDE=etc &&
592 MAKEOBJDIRPREFIX=${TEMPROOT}/usr/obj ${MM_MAKE} ${ARCHSTRING} all SUBDIR_OVERRIDE=etc &&
593 MAKEOBJDIRPREFIX=${TEMPROOT}/usr/obj ${MM_MAKE} ${ARCHSTRING} \
594 DESTDIR=${TEMPROOT} distribution;} ||
595 ${MM_MAKE} DESTDIR=${TEMPROOT} distrib-dirs &&
596 MAKEOBJDIRPREFIX=${TEMPROOT}/usr/obj ${MM_MAKE} obj SUBDIR_OVERRIDE=etc &&
597 MAKEOBJDIRPREFIX=${TEMPROOT}/usr/obj ${MM_MAKE} all SUBDIR_OVERRIDE=etc &&
598 MAKEOBJDIRPREFIX=${TEMPROOT}/usr/obj ${MM_MAKE} DESTDIR=${TEMPROOT} distribution;} ||
595 { echo '';
596 echo " *** FATAL ERROR: Cannot 'cd' to ${SOURCEDIR} and install files to";
597 echo " the temproot environment";
598 echo '';
599 exit 1;}
600 ;;
601 *)
602 # Only set up files that are crucial to {build|install}world

--- 643 unchanged lines hidden ---
599 { echo '';
600 echo " *** FATAL ERROR: Cannot 'cd' to ${SOURCEDIR} and install files to";
601 echo " the temproot environment";
602 echo '';
603 exit 1;}
604 ;;
605 *)
606 # Only set up files that are crucial to {build|install}world

--- 643 unchanged lines hidden ---