| |
| |
| |
| |
| exp_rtl_fetch_url_git() { |
| local _tgtdir="${1}" _subdir="${2}" _url="${3}" _branch="${4}" \ |
| _oldpwd=""; |
| if [ -e "${BUILD_DLCACHEDIR}/${_subdir}" ]; then |
| (ex_rtl_fileop cd "${BUILD_DLCACHEDIR}/${_subdir}" &&\ |
| git pull origin "${_branch:-main}"); |
| else |
| git clone "${_url}" "${BUILD_DLCACHEDIR}/${_subdir}"; |
| if [ -n "${_branch}" ]; then |
| (ex_rtl_fileop cd "${BUILD_DLCACHEDIR}/${_subdir}" &&\ |
| git checkout "${_branch}"); |
| fi; |
| fi; |
| _oldpwd="${PWD}"; ex_rtl_fileop cd "${PKG_BASE_DIR}"; |
| ex_rtl_fileop rm "${_tgtdir}/${_subdir}"; |
| ex_rtl_fileop cp "${BUILD_DLCACHEDIR}/${_subdir}" "${_tgtdir}"; |
| ex_rtl_fileop cd "${_oldpwd}"; |
| }; |
| |
| ex_rtl_fetch_urls_git() { |
| local _tgtdir="" _url_spec="" _subdir="" _url="" _git_branch=""; |
| _tgtdir="${1}"; shift; |
| for _url_spec in "${@}"; do |
| _subdir="${_url_spec%=*}"; |
| _url="${_url_spec#*=}"; |
| _url="${_url%@*}"; |
| if [ "${_url_spec#*@}" != "${_url_spec}" ]; then |
| _git_branch=${_url_spec#*@}; |
| fi; |
| exp_rtl_fetch_url_git "${_tgtdir}" "${_subdir}" \ |
| "${_url}" "${_git_branch}"; |
| done; |
| }; |
| |
| |
| ex_rtl_fetch_url_wget() { |
| local _url="${1}" _sha256sum_src="${2}" _sha256sum_dst=""; |
| if [ -z "${3}" ]; then |
| _url_dst="${BUILD_DLCACHEDIR}/$(ex_rtl_basename "${_url}")"; |
| else |
| _url_dst="${BUILD_DLCACHEDIR}/${3}"; |
| fi; |
| if [ -e "${_url_dst}.fetched" ]; then |
| return 0; |
| else |
| wget ${DEFAULT_WGET_ARGS} -c -O "${_url_dst}" "${_url}"; |
| fi; |
| if [ -n "${_sha256sum_src}" ]; then |
| set -- $(openssl dgst -sha256 "${_url_dst}"); shift $((${#}-1)); |
| if [ "${_sha256sum_dst:=${1}}" != "${_sha256sum_src}" ]; then |
| ex_rtl_log_msg failexit "Error: hash mismatch for URL \`${_url}' (downloaded file: ${_sha256sum_dst}, from build variables: ${_sha256sum_src}.)"; |
| fi; |
| fi; |
| touch "${_url_dst}.fetched"; |
| }; |
| |
| |