svn commit: r207336 - user/dougb/portmaster

Doug Barton dougb at FreeBSD.org
Wed Apr 28 18:55:46 UTC 2010


Author: dougb
Date: Wed Apr 28 18:55:46 2010
New Revision: 207336
URL: http://svn.freebsd.org/changeset/base/207336

Log:
  Add error-checking to parse_index() so that if we don't find a line for
  the port we return an error code.
  
  Check for the error in the callers.
  
  Inspiration and some code from the PR.
  
  PR:		ports/145984
  Submitted by:	mandree

Modified:
  user/dougb/portmaster/portmaster

Modified: user/dougb/portmaster/portmaster
==============================================================================
--- user/dougb/portmaster/portmaster	Wed Apr 28 18:49:45 2010	(r207335)
+++ user/dougb/portmaster/portmaster	Wed Apr 28 18:55:46 2010	(r207336)
@@ -1153,7 +1153,7 @@ parse_index () {
 
 	[ -z "$pd" -a -n "$PM_INDEX_ONLY" ] && pd=/usr/ports
 
-	line=`grep -m1 .*\|${pd}/${1}\|.* $PM_INDEX`
+	line=`grep -m1 .*\|${pd}/${1}\|.* $PM_INDEX` || return 1
 
 	case "$2" in
 	name)		echo ${line%%|*} ;;
@@ -1205,8 +1205,12 @@ check_for_updates () {
 	origin=${2:-`origin_from_pdb $iport`} || return 0
 
 	if [ -n "$PM_INDEX" ]; then
-		port_ver=`parse_index $origin name`
-		check_pkg_version $iport $port_ver || { do_update=update_index ; }
+		if port_ver=`parse_index $origin name`; then
+			check_pkg_version $iport $port_ver ||
+				{ do_update=update_index ; }
+		else
+			echo "	===>>> Warning: No INDEX entry for $origin"
+		fi
 	fi
 
 	if [ -d "$pd/$origin" -a -z "$do_update" -a -z "$PM_INDEX_ONLY" ]; then
@@ -1880,7 +1884,8 @@ update_build_l () {
 	if [ -z "$PM_INDEX_ONLY" ]; then
 		pm_cd $pd/$origin && new_port=`pm_make -V PKGNAME`
 	else
-		new_port=`parse_index $origin name`
+		new_port=`parse_index $origin name` ||
+			fail "No INDEX entry for $origin"
 	fi
 
 	case `pkg_version -t $iport $new_port 2>/dev/null` in
@@ -2916,7 +2921,8 @@ if [ -z "$new_port" ]; then
 	if [ -z "$PM_INDEX_ONLY" ]; then
 		new_port=`pm_make -V PKGNAME`
 	else
-		new_port=`parse_index $portdir name`
+		new_port=`parse_index $portdir name` ||
+			fail "No INDEX entry for $origin"
 	fi
 fi
 


More information about the svn-src-user mailing list