PERFORCE change 102277 for review

Gabor Kovesdan gabor at FreeBSD.org
Mon Jul 24 13:21:11 UTC 2006


http://perforce.freebsd.org/chv.cgi?CH=102277

Change 102277 by gabor at gabor_spitfire on 2006/07/24 13:20:57

	Add Tools/scripts/do-fetch.sh.  This script will handle the whole fetching process.
	Currently only the distfile fetcher part of the do-fetch target is moved, I'll
	move other parts step-by-step.  In bsd.port.mk FETCH_SCRIPT is introduced to
	point to Tools/scripts/do-fetch.sh.  I also added FETCH_SCRIPT_ENV to pass
	some variables to the script.  The passed environment will be reduced later
	when other parts have been moved.

Affected files ...

.. //depot/projects/soc2006/gabor_ports/Mk/bsd.port.mk#56 edit
.. //depot/projects/soc2006/gabor_ports/Tools/scripts/do-fetch.sh#1 add

Differences ...

==== //depot/projects/soc2006/gabor_ports/Mk/bsd.port.mk#56 (text+ko) ====

@@ -2114,6 +2114,20 @@
 PTHREAD_LIBS?=		-pthread
 .endif
 
+FETCH_SCRIPT=${PORTSDIR}/Tools/scripts/do-fetch.sh
+FETCH_SCRIPT_ENV= AWK="${AWK}" BASENAME="${BASENAME}" ECHO_CMD="${ECHO_CMD}" ECHO_MSG="${ECHO_MSG}" \
+		  GREP="${GREP}" MKDIR="${MKDIR}" SED="${SED}" SETENV="${SETENV}" \
+		  FETCH_CMD="${FETCH_CMD}" \
+		  FETCH_BEFORE_ARGS="${FETCH_BEFORE_ARGS}" FETCH_AFTER_ARGS="${FETCH_AFTER_ARGS}" \
+		  _DISTDIR="${_DISTDIR}" DIST_SUBDIR="${DIST_SUBDIR}" DISTFILES="${DISTFILES}" \
+		  FORCE_FETCH="${FORCE_FETCH}" NO_CHECKSUM="${NO_CHECKSUM}" MD5_FILE="${MD5_FILE}" \
+		  _MASTER_SITES="${_MASTER_SITES}" \
+		  _MASTER_SITE_OVERRIDE="${MASTER_SITE_OVERRIDE}" \
+		  _MASTER_SITE_BACKUP="${_MASTER_SITE_BACKUP}" MASTER_SORT_AWK="${MASTER_SORT_AWK}" \
+		  SORTED_MASTER_SITES_DEFAULT_CMD="${SORTED_MASTER_SITES_DEFAULT_CMD}" \
+		  _RANDOMIZE_SITES="${_RANDOMIZE_SITES}"
+		  
+
 .if exists(/usr/bin/fetch)
 FETCH_CMD?=		/usr/bin/fetch -ARr
 FETCH_REGET?=	1
@@ -3301,73 +3315,8 @@
 
 .if !target(do-fetch)
 do-fetch:
-	@${MKDIR} ${_DISTDIR}
-	@(cd ${_DISTDIR}; \
-	 ${_MASTER_SITES_ENV} ; \
-	 for _file in ${DISTFILES}; do \
-		file=`${ECHO_CMD} $$_file | ${SED} -E -e 's/:[^:]+$$//'` ; \
-		select=`${ECHO_CMD} $${_file#$${file}} | ${SED} -e 's/^://' -e 's/,/ /g'` ; \
-		force_fetch=false; \
-		filebasename=`${BASENAME} $$file`; \
-		for afile in ${FORCE_FETCH}; do \
-			afile=`${BASENAME} $$afile`; \
-			if [ "x$$afile" = "x$$filebasename" ]; then \
-				force_fetch=true; \
-			fi; \
-		done; \
-		if [ ! -f $$file -a ! -f $$filebasename -o "$$force_fetch" = "true" ]; then \
-			DIR=${DIST_SUBDIR}; \
-			pattern="$${DIR:+$$DIR/}`${ECHO_CMD} $$file | ${SED} -e 's/\./\\\\./g'`"; \
-			if [ -L $$file -o -L $$filebasename ]; then \
-				${ECHO_MSG} "=> ${_DISTDIR}/$$file is a broken symlink."; \
-				${ECHO_MSG} "=> Perhaps a filesystem (most likely a CD) isn't mounted?"; \
-				${ECHO_MSG} "=> Please correct this problem and try again."; \
-				exit 1; \
-			fi ; \
-			if [ -f ${MD5_FILE} -a "x${NO_CHECKSUM}" = "x" ]; then \
-				if ! ${GREP} -q "^MD5 ($$pattern)" ${MD5_FILE}; then \
-					${ECHO_MSG} "=> $${DIR:+$$DIR/}$$file is not in ${MD5_FILE}."; \
-					${ECHO_MSG} "=> Either ${MD5_FILE} is out of date, or"; \
-					${ECHO_MSG} "=> $${DIR:+$$DIR/}$$file is spelled incorrectly."; \
-					exit 1; \
-				fi; \
-			fi; \
-			${ECHO_MSG} "=> $$file doesn't seem to exist in ${_DISTDIR}."; \
-			if [ ! -w ${DISTDIR} ]; then \
-			   ${ECHO_MSG} "=> ${DISTDIR} is not writable by you; cannot fetch."; \
-			   exit 1; \
-			fi; \
-			if [ ! -z "$$select" ] ; then \
-				__MASTER_SITES_TMP= ; \
-				for group in $$select; do \
-					if [ ! -z \$${_MASTER_SITES_$${group}} ] ; then \
-						eval ___MASTER_SITES_TMP="\$${_MASTER_SITES_$${group}}" ; \
-						__MASTER_SITES_TMP="$${__MASTER_SITES_TMP} $${___MASTER_SITES_TMP}" ; \
-					fi \
-				done; \
-				___MASTER_SITES_TMP= ; \
-				SORTED_MASTER_SITES_CMD_TMP="${ECHO_CMD} ${_MASTER_SITE_OVERRIDE} `${ECHO_CMD} $${__MASTER_SITES_TMP} | ${AWK} '${MASTER_SORT_AWK:S|\\|\\\\|g}'` ${_MASTER_SITE_BACKUP}" ; \
-			else \
-				SORTED_MASTER_SITES_CMD_TMP="${SORTED_MASTER_SITES_DEFAULT_CMD}" ; \
-			fi ; \
-			for site in `eval $$SORTED_MASTER_SITES_CMD_TMP ${_RANDOMIZE_SITES}`; do \
-			    ${ECHO_MSG} "=> Attempting to fetch from $${site}."; \
-				DIR=${DIST_SUBDIR}; \
-				CKSIZE=`${GREP} "^SIZE ($${DIR:+$$DIR/}$$file)" ${MD5_FILE} | ${AWK} '{print $$4}'`; \
-				case $${file} in \
-				*/*)	${MKDIR} $${file%/*}; \
-						args="-o $${file} $${site}$${file}";; \
-				*)		args=$${site}$${file};; \
-				esac; \
-				if ${SETENV} ${FETCH_ENV} ${FETCH_CMD} ${FETCH_BEFORE_ARGS} $${args} ${FETCH_AFTER_ARGS}; then \
-					continue 2; \
-				fi \
-			done; \
-			${ECHO_MSG} "=> Couldn't fetch it - please try to retrieve this";\
-			${ECHO_MSG} "=> port manually into ${_DISTDIR} and try again."; \
-			exit 1; \
-	    fi \
-	 done)
+	${SETENV} ${FETCH_SCRIPT_ENV} ${SH} -x ${FETCH_SCRIPT}
+
 .if defined(PATCHFILES)
 	@(cd ${_DISTDIR}; \
 	 ${_PATCH_SITES_ENV} ; \


More information about the p4-projects mailing list