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 --- |