Changeset View
Changeset View
Standalone View
Standalone View
head/Mk/Scripts/do-fetch.sh
#!/bin/sh | #!/bin/sh | ||||
# $FreeBSD$ | # $FreeBSD$ | ||||
# | # | ||||
# MAINTAINER: portmgr@FreeBSD.org | # MAINTAINER: portmgr@FreeBSD.org | ||||
set -e | set -e | ||||
. "${dp_SCRIPTSDIR}/functions.sh" | . "${dp_SCRIPTSDIR}/functions.sh" | ||||
validate_env dp_DEVELOPER dp_DISABLE_SIZE dp_DISTDIR dp_DISTINFO_FILE \ | validate_env dp_DEVELOPER dp_DISABLE_SIZE dp_DISTDIR dp_DISTINFO_FILE \ | ||||
dp_DIST_SUBDIR dp_ECHO_MSG dp_FETCH_AFTER_ARGS dp_FETCH_BEFORE_ARGS \ | dp_DIST_SUBDIR dp_ECHO_MSG dp_FETCH_AFTER_ARGS dp_FETCH_BEFORE_ARGS \ | ||||
dp_FETCH_CMD dp_FETCH_ENV dp_FORCE_FETCH_ALL dp_FORCE_FETCH_LIST \ | dp_FETCH_CMD dp_FETCH_ENV dp_FORCE_FETCH_ALL dp_FORCE_FETCH_LIST \ | ||||
dp_MASTER_SITE_BACKUP dp_MASTER_SITE_OVERRIDE dp_MASTER_SORT_AWK \ | dp_MASTER_SITE_BACKUP dp_MASTER_SITE_OVERRIDE dp_MASTER_SORT_AWK \ | ||||
dp_NO_CHECKSUM dp_RANDOMIZE_SITES dp_SITE_FLAVOR dp_SCRIPTSDIR \ | dp_NO_CHECKSUM dp_RANDOMIZE_SITES dp_SITE_FLAVOR dp_TARGET | ||||
dp_SORTED_MASTER_SITES_DEFAULT_CMD dp_SORTED_PATCH_SITES_DEFAULT_CMD \ | |||||
dp_TARGET | |||||
[ -n "${DEBUG_MK_SCRIPTS}" -o -n "${DEBUG_MK_SCRIPTS_DO_FETCH}" ] && set -x | [ -n "${DEBUG_MK_SCRIPTS}" -o -n "${DEBUG_MK_SCRIPTS_DO_FETCH}" ] && set -x | ||||
set -u | set -u | ||||
mkdir -p "${dp_DISTDIR}" | mkdir -p "${dp_DISTDIR}" | ||||
cd "${dp_DISTDIR}" | cd "${dp_DISTDIR}" | ||||
for _file in "${@}"; do | for _file in "${@}"; do | ||||
file=${_file%%:*} | file=${_file%%:*} | ||||
unescaped_file=$(unescape "${file}") | unescaped_file=$(unescape "${file}") | ||||
# If this files has groups | # If this files has groups | ||||
if [ "$_file" = "$file" ]; then | if [ "$_file" = "$file" ]; then | ||||
select='' | select=DEFAULT | ||||
else | else | ||||
select=$(echo "${_file##*:}" | sed -e 's/,/ /g') | select=$(echo "${_file##*:}" | sed -e 's/,/ /g') | ||||
fi | fi | ||||
filebasename=${file##*/} | filebasename=${file##*/} | ||||
if [ -n "${dp_FORCE_FETCH_ALL}" ]; then | if [ -n "${dp_FORCE_FETCH_ALL}" ]; then | ||||
force_fetch=true | force_fetch=true | ||||
else | else | ||||
Show All 26 Lines | if [ ! -f "${unescaped_file}" -a ! -f "$filebasename" -o "$force_fetch" = "true" ]; then | ||||
do-fetch|makesum) | do-fetch|makesum) | ||||
${dp_ECHO_MSG} "=> $file doesn't seem to exist in ${dp_DISTDIR}." | ${dp_ECHO_MSG} "=> $file doesn't seem to exist in ${dp_DISTDIR}." | ||||
if [ ! -w "${dp_DISTDIR}" ]; then | if [ ! -w "${dp_DISTDIR}" ]; then | ||||
${dp_ECHO_MSG} "=> ${dp_DISTDIR} is not writable by you; cannot fetch." | ${dp_ECHO_MSG} "=> ${dp_DISTDIR} is not writable by you; cannot fetch." | ||||
exit 1 | exit 1 | ||||
fi | fi | ||||
;; | ;; | ||||
esac | esac | ||||
if [ -n "$select" ] ; then | |||||
__MASTER_SITES_TMP= | __MASTER_SITES_TMP= | ||||
for group in $select; do | for group in $select; do | ||||
# Disable nounset for this, it may come up empty. | # Disable nounset for this, it may come up empty. | ||||
set +u | set +u | ||||
eval ___MASTER_SITES_TMP="\${_${dp_SITE_FLAVOR}_SITES_${group}}" | eval ___MASTER_SITES_TMP="\${_${dp_SITE_FLAVOR}_SITES_${group}}" | ||||
set -u | set -u | ||||
if [ -n "${___MASTER_SITES_TMP}" ] ; then | if [ -n "${___MASTER_SITES_TMP}" ] ; then | ||||
__MASTER_SITES_TMP="${__MASTER_SITES_TMP} ${___MASTER_SITES_TMP}" | __MASTER_SITES_TMP="${__MASTER_SITES_TMP} ${___MASTER_SITES_TMP}" | ||||
else | else | ||||
case ${dp_TARGET} in | case ${dp_TARGET} in | ||||
do-fetch|makesum) | do-fetch|makesum) | ||||
if [ -n "${dp_DEVELOPER}" ]; then | if [ -n "${dp_DEVELOPER}" ]; then | ||||
${dp_ECHO_MSG} "===> /!\\ Error /!\\" | ${dp_ECHO_MSG} "===> /!\\ Error /!\\" | ||||
else | else | ||||
${dp_ECHO_MSG} "===> /!\\ Warning /!\\" | ${dp_ECHO_MSG} "===> /!\\ Warning /!\\" | ||||
fi | fi | ||||
${dp_ECHO_MSG} " The :${group} group used for $file is missing" | ${dp_ECHO_MSG} " The :${group} group used for $file is missing" | ||||
${dp_ECHO_MSG} " from ${dp_SITE_FLAVOR}_SITES. Check for typos, or errors." | ${dp_ECHO_MSG} " from ${dp_SITE_FLAVOR}_SITES. Check for typos, or errors." | ||||
if [ -n "${dp_DEVELOPER}" ]; then | if [ -n "${dp_DEVELOPER}" ]; then | ||||
exit 1 | exit 1 | ||||
fi | fi | ||||
;; | ;; | ||||
esac | esac | ||||
fi | fi | ||||
done | done | ||||
___MASTER_SITES_TMP= | ___MASTER_SITES_TMP= | ||||
SORTED_MASTER_SITES_CMD_TMP="echo ${dp_MASTER_SITE_OVERRIDE} $(echo -n "${__MASTER_SITES_TMP}" | awk "${dp_MASTER_SORT_AWK}") ${dp_MASTER_SITE_BACKUP}" | SORTED_MASTER_SITES_CMD_TMP="echo ${dp_MASTER_SITE_OVERRIDE} $(echo -n "${__MASTER_SITES_TMP}" | awk "${dp_MASTER_SORT_AWK}") ${dp_MASTER_SITE_BACKUP}" | ||||
else | |||||
if [ ${dp_SITE_FLAVOR} = "MASTER" ]; then | |||||
SORTED_MASTER_SITES_CMD_TMP="${dp_SORTED_MASTER_SITES_DEFAULT_CMD}" | |||||
else | |||||
SORTED_MASTER_SITES_CMD_TMP="${dp_SORTED_PATCH_SITES_DEFAULT_CMD}" | |||||
fi | |||||
# Having this set when the next eval runs creates double entries. | |||||
unset _${dp_SITE_FLAVOR}_SITES_DEFAULT | |||||
fi | |||||
case ${dp_TARGET} in | case ${dp_TARGET} in | ||||
fetch-list) | fetch-list) | ||||
echo -n "mkdir -p ${dp_DISTDIR} && " | echo -n "mkdir -p ${dp_DISTDIR} && " | ||||
echo -n "cd ${dp_DISTDIR} && { " | echo -n "cd ${dp_DISTDIR} && { " | ||||
;; | ;; | ||||
esac | esac | ||||
sites_remaining=0 | sites_remaining=0 | ||||
sites="$(eval "${SORTED_MASTER_SITES_CMD_TMP} ${dp_RANDOMIZE_SITES}")" | sites="$(eval "${SORTED_MASTER_SITES_CMD_TMP} ${dp_RANDOMIZE_SITES}")" | ||||
▲ Show 20 Lines • Show All 57 Lines • Show Last 20 Lines |