svn commit: r220121 - user/dougb/portmaster
Doug Barton
dougb at FreeBSD.org
Tue Mar 29 01:17:30 UTC 2011
Author: dougb
Date: Tue Mar 29 01:17:30 2011
New Revision: 220121
URL: http://svn.freebsd.org/changeset/base/220121
Log:
Add --update-if-newer which will operate on a list of ports given
on the command line. If the port list is already up to date, it
will be skipped.
Modified:
user/dougb/portmaster/portmaster
Modified: user/dougb/portmaster/portmaster
==============================================================================
--- user/dougb/portmaster/portmaster Tue Mar 29 00:47:00 2011 (r220120)
+++ user/dougb/portmaster/portmaster Tue Mar 29 01:17:30 2011 (r220121)
@@ -360,8 +360,8 @@ usage () {
echo "${0##*/} [Common flags] <full name of port directory in $pdb>"
echo "${0##*/} [Common flags] <full path to $pd/foo/bar>"
echo "${0##*/} [Common flags] <glob pattern of directories in $pdb>"
- echo "${0##*/} [Common flags] Multiple full names/paths from $pdb|$pd"
- echo " and/or multiple globs from $pdb"
+ echo "${0##*/} [Common flags] [--update-if-newer] Multiple full names/paths"
+ echo " from $pdb|$pd and/or multiple globs from $pdb"
echo ''
echo "${0##*/} [Common flags] . [Use in $pd/foo/bar to build that port]"
echo ''
@@ -424,6 +424,9 @@ usage () {
echo '--delete-build-only delete ports that are build-only dependencies'
echo ' after a successful run, only if installed this run'
echo ''
+ echo '--update-if-newer (only for multiple ports listed on command line)'
+ echo ' do not rebuild/reinstall if the installed version is up to date'
+ echo ''
echo '-P|--packages use packages, but build port if not available'
echo '-PP|--packages-only fail if no package is available'
echo '--packages-build use packages for all build dependencies'
@@ -585,6 +588,8 @@ for var in "$@" ; do
--delete-packages) PM_DELETE_PACKAGES=pm_delete_packages
export PM_DELETE_PACKAGES ;;
-[A-Za-z0-9]*) newopts="$newopts $var" ;;
+ --update-if-newer) PM_UPDATE_IF_NEWER=pm_update_if_newer
+ export PM_UPDATE_IF_NEWER ;;
--delete-build-only) PM_DEL_BUILD_ONLY=pm_dbo
export PM_DEL_BUILD_ONLY ;;
--no-confirm) PM_NO_CONFIRM=pm_no_confirm
@@ -1512,9 +1517,10 @@ check_force_multi () {
check_for_updates () {
# Global: num_updates
- local nf iport origin port_ver do_update skip
+ local multi nf iport origin port_ver do_update skip
[ "$1" = 'list' ] && { nf=nonfatal; shift; }
+ [ "$1" = 'multi' ] && { multi=multi; nf=nonfatal; shift; }
iport=$1 ; origin=${2:-`origin_from_pdb $iport`} || return 0
@@ -1604,6 +1610,8 @@ check_for_updates () {
unset moved_npd
fi
return 0
+ elif [ -n "$multi" ]; then
+ return 1
elif [ "$PM_RBP" = "$iport" ]; then
PM_RBP_NEEDS_UPGRADE=pm_rbp_needs_upgrade
return 0
@@ -2623,6 +2631,16 @@ multiport () {
check_exclude $port || continue
check_interactive $port || continue
+ if [ -n "$PM_UPDATE_IF_NEWER" ]; then
+ if check_for_updates multi $port; then
+ if [ -n "$PM_VERBOSE" ]; then
+ echo ''
+ echo "===>>> $port is up to date, skipping"
+ fi
+ continue
+ fi
+ fi
+
worklist="$worklist $port"
portlist="${portlist}\t${port}\n"
PM_MULTI_PORTS="${PM_MULTI_PORTS}${port}:"
More information about the svn-src-user
mailing list