Date: Sun, 6 Nov 2011 08:03:33 +0000 (UTC) From: Doug Barton <dougb@FreeBSD.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org Subject: svn commit: r227150 - stable/7/usr.sbin/mergemaster Message-ID: <201111060803.pA683Xqu007409@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: dougb Date: Sun Nov 6 08:03:33 2011 New Revision: 227150 URL: http://svn.freebsd.org/changeset/base/227150 Log: MFC r227013: 1. Add a new option, --run-updates, to always or never run the newalises, pwd_mkdb, etc. updates at the end of the comparison. 2. Add an update to the end to handle /etc/localtime, if it exists. If /var/db/zoneinfo exists, automatically update /etc/localtime, which should (hopefully) be safe to do. If not, prompt the user to run tzsetup. 3. Update run_it_now(), the function that handles input for the updates, to make sure that we got a valid answer, and to handle the --run-updates option if supplied. Modified: stable/7/usr.sbin/mergemaster/mergemaster.8 stable/7/usr.sbin/mergemaster/mergemaster.sh Directory Properties: stable/7/usr.sbin/mergemaster/ (props changed) Modified: stable/7/usr.sbin/mergemaster/mergemaster.8 ============================================================================== --- stable/7/usr.sbin/mergemaster/mergemaster.8 Sun Nov 6 08:01:17 2011 (r227149) +++ stable/7/usr.sbin/mergemaster/mergemaster.8 Sun Nov 6 08:03:33 2011 (r227150) @@ -24,7 +24,7 @@ .\" .\" $FreeBSD$ .\" -.Dd August 9, 2011 +.Dd November 1, 2011 .Dt MERGEMASTER 8 .Os .Sh NAME @@ -34,6 +34,7 @@ .Nm .Op Fl scrvhpCP .Op Fl a|iFU +.Op Fl -run-updates=[always|never] .Op Fl m Ar /path/to/sources .Op Fl t Ar /path/to/temp/root .Op Fl d @@ -246,6 +247,11 @@ rc file. Attempt to auto upgrade files that have not been user modified. This option can be dangerous when there are critical changes in the new versions that affect your running system. +.It Fl -run-updates=[always|never] +Specify always or never to run newaliases, pwd_mkdb, etc. +at the end of the comparison run. +If this option is omitted the default is to prompt the user +for each update as necessary. .It Fl m Ar /path/to/sources Specify the path to the directory where you want to do the .Xr make 1 . @@ -365,6 +371,9 @@ with all values commented out: # ***DANGEROUS*** #AUTO_UPGRADE= # +# Either always or never run newaliases, pwd_mkdb at the end (--run-updates) +#RUN_UPDATES= +# # Compare /etc/rc.conf[.local] to /etc/defaults/rc.conf (-C) #COMP_CONFS= # Modified: stable/7/usr.sbin/mergemaster/mergemaster.sh ============================================================================== --- stable/7/usr.sbin/mergemaster/mergemaster.sh Sun Nov 6 08:01:17 2011 (r227149) +++ stable/7/usr.sbin/mergemaster/mergemaster.sh Sun Nov 6 08:03:33 2011 (r227150) @@ -15,7 +15,7 @@ PATH=/bin:/usr/bin:/usr/sbin display_usage () { VERSION_NUMBER=`grep "[$]FreeBSD:" $0 | cut -d ' ' -f 4` echo "mergemaster version ${VERSION_NUMBER}" - echo 'Usage: mergemaster [-scrvhpCP] [-a|[-iFU]]' + echo 'Usage: mergemaster [-scrvhpCP] [-a|[-iFU]] [--run-updates=always|never]' echo ' [-m /path] [-t /path] [-d] [-u N] [-w N] [-A arch] [-D /path]' echo "Options:" echo " -s Strict comparison (diff every pair of files)" @@ -31,6 +31,7 @@ display_usage () { echo ' -P Preserve files that are overwritten' echo " -U Attempt to auto upgrade files that have not been user modified" echo ' ***DANGEROUS***' + echo ' --run-updates= Specify always or never to run newalises, pwd_mkdb, etc.' echo '' echo " -m /path/directory Specify location of source to do the make in" echo " -t /path/directory Specify temp root directory" @@ -262,6 +263,20 @@ if [ -r "$HOME/.mergemasterrc" ]; then . "$HOME/.mergemasterrc" fi +for var in "$@" ; do + case "$var" in + --run-updates*) + RUN_UPDATES=`echo ${var#--run-updates=} | tr [:upper:] [:lower:]` + ;; + *) + newopts="$newopts $var" + ;; + esac +done + +set -- $newopts +unset var newopts + # Check the command line options # while getopts ":ascrvhipCPm:t:du:w:D:A:FU" COMMAND_LINE_ARGUMENT ; do @@ -1223,34 +1238,43 @@ case "${AUTO_UPGRADED_FILES}" in esac run_it_now () { - case "${AUTO_RUN}" in - '') - unset YES_OR_NO - echo '' - echo -n ' Would you like to run it now? y or n [n] ' - read YES_OR_NO + [ -n "$AUTO_RUN" ] && return + + local answer + + echo '' + while : ; do + if [ "$RUN_UPDATES" = always ]; then + answer=y + elif [ "$RUN_UPDATES" = never ]; then + answer=n + else + echo -n ' Would you like to run it now? y or n [n] ' + read answer + fi - case "${YES_OR_NO}" in + case "$answer" in y) echo " Running ${1}" echo '' eval "${1}" + return ;; ''|n) - echo '' - echo " *** Cancelled" - echo '' + if [ ! "$RUN_UPDATES" = never ]; then + echo '' + echo " *** Cancelled" + echo '' + fi echo " Make sure to run ${1} yourself" + return ;; *) echo '' - echo " *** Sorry, I do not understand your answer (${YES_OR_NO})" + echo " *** Sorry, I do not understand your answer (${answer})" echo '' - echo " Make sure to run ${1} yourself" esac - ;; - *) ;; - esac + done } case "${NEED_NEWALIASES}" in @@ -1298,6 +1322,19 @@ case "${NEED_PWD_MKDB}" in ;; esac +if [ -e "${DESTDIR}/etc/localtime" ]; then # Ignore if TZ == UTC + echo '' + if [ -f "${DESTDIR}/var/db/zoneinfo" ]; then + echo "*** Reinstalling `cat ${DESTDIR}/var/db/zoneinfo` as ${DESTDIR}/etc/localtime" + [ -n "${DESTDIR}" ] && tzs_args="-C ${DESTDIR}" + tzsetup $tzs_args -r + else + echo "*** There is no ${DESTDIR}/var/db/zoneinfo file to update ${DESTDIR}/etc/localtime." + echo ' You should run tzsetup' + run_it_now tzsetup + fi +fi + echo '' if [ -r "${MM_EXIT_SCRIPT}" ]; then
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201111060803.pA683Xqu007409>