mirror of
https://github.com/tuna/tunasync-scripts.git
synced 2025-04-20 04:12:42 +00:00
sync the latest release of all major versions (tuna/issues#748)
This commit is contained in:
parent
631848190d
commit
56e5567b57
@ -65,57 +65,68 @@ echo "Debian and ubuntu finished"
|
|||||||
|
|
||||||
# === download standalone packages ====
|
# === download standalone packages ====
|
||||||
|
|
||||||
|
timeout -s INT 30 wget ${WGET_OPTIONS:-} -q -O "/tmp/index.html" "${BASE_URL}/"
|
||||||
timeout -s INT 30 wget ${WGET_OPTIONS:-} -q -O "${BASE_PATH}/LATEST.TXT" "${BASE_URL}/LATEST.TXT"
|
timeout -s INT 30 wget ${WGET_OPTIONS:-} -q -O "${BASE_PATH}/LATEST.TXT" "${BASE_URL}/LATEST.TXT"
|
||||||
LATEST_VERSION=`cat "${BASE_PATH}/LATEST.TXT"`
|
|
||||||
LATEST_PATH="${BASE_PATH}/${LATEST_VERSION}"
|
|
||||||
|
|
||||||
mkdir -p ${LATEST_PATH}
|
for major in 4 5 6 7 8;do
|
||||||
timeout -s INT 30 wget ${WGET_OPTIONS:-} -q -O "${LATEST_PATH}/MD5SUMS" "${BASE_URL}/${LATEST_VERSION}/MD5SUMS"
|
LATEST_VERSION=$(grep -P -o "\"$major\.[\\d\\.]+/\"" -r /tmp/index.html|tail -n 1)
|
||||||
timeout -s INT 30 wget ${WGET_OPTIONS:-} -q -O "${LATEST_PATH}/SHA256SUMS" "${BASE_URL}/${LATEST_VERSION}/SHA256SUMS"
|
LATEST_VERSION=${LATEST_VERSION%/\"}
|
||||||
|
LATEST_VERSION=${LATEST_VERSION#\"}
|
||||||
|
[[ -z "$LATEST_VERSION" ]] && continue
|
||||||
|
|
||||||
while read line; do
|
LATEST_PATH="${BASE_PATH}/${LATEST_VERSION}"
|
||||||
read -a tokens <<< $line
|
|
||||||
pkg_checksum=${tokens[0]}
|
|
||||||
filename=${tokens[1]}
|
|
||||||
filename=${filename/\*/}
|
|
||||||
|
|
||||||
dest_filename="${LATEST_PATH}/${filename}"
|
mkdir -p ${LATEST_PATH}
|
||||||
pkg_url="${BASE_URL}/${LATEST_VERSION}/${filename}"
|
timeout -s INT 30 wget ${WGET_OPTIONS:-} -q -O "${LATEST_PATH}/MD5SUMS" "${BASE_URL}/${LATEST_VERSION}/MD5SUMS"
|
||||||
|
timeout -s INT 30 wget ${WGET_OPTIONS:-} -q -O "${LATEST_PATH}/SHA256SUMS" "${BASE_URL}/${LATEST_VERSION}/SHA256SUMS"
|
||||||
|
|
||||||
declare downloaded=false
|
while read line; do
|
||||||
|
read -a tokens <<< $line
|
||||||
|
pkg_checksum=${tokens[0]}
|
||||||
|
filename=${tokens[1]}
|
||||||
|
filename=${filename/\*/}
|
||||||
|
|
||||||
if [[ -f ${dest_filename} ]]; then
|
dest_filename="${LATEST_PATH}/${filename}"
|
||||||
echo "${pkg_checksum} ${dest_filename}" | md5sum -c - && {
|
pkg_url="${BASE_URL}/${LATEST_VERSION}/${filename}"
|
||||||
downloaded=true
|
|
||||||
echo "Skipping ${filename}"
|
declare downloaded=false
|
||||||
}
|
|
||||||
fi
|
if [[ -f ${dest_filename} ]]; then
|
||||||
for retry in `seq ${MAX_RETRY}`; do
|
echo "${pkg_checksum} ${dest_filename}" | md5sum -c - && {
|
||||||
rm ${dest_filename} || true
|
downloaded=true
|
||||||
echo "downloading ${pkg_url} to ${dest_filename}"
|
echo "Skipping ${filename}"
|
||||||
if [[ -z ${DRY_RUN:-} ]]; then
|
|
||||||
timeout -s INT "$DOWNLOAD_TIMEOUT" wget ${WGET_OPTIONS:-} -N -c -q -O ${dest_filename} ${pkg_url} && {
|
|
||||||
# two space for md5sum/sha1sum/sha256sum check format
|
|
||||||
echo "${pkg_checksum} ${dest_filename}" | md5sum -c - && downloaded=true
|
|
||||||
}
|
}
|
||||||
else
|
|
||||||
downloaded=true
|
|
||||||
fi
|
fi
|
||||||
[[ $downloaded == true ]] && break
|
for retry in `seq ${MAX_RETRY}`; do
|
||||||
done
|
[[ $downloaded == true ]] && break
|
||||||
if [[ $downloaded == false ]];then
|
rm ${dest_filename} || true
|
||||||
echo "failed to download ${pkg_url} to ${dest_filename}"
|
echo "downloading ${pkg_url} to ${dest_filename}"
|
||||||
exit 1
|
if [[ -z ${DRY_RUN:-} ]]; then
|
||||||
fi
|
timeout -s INT "$DOWNLOAD_TIMEOUT" wget ${WGET_OPTIONS:-} -N -c -q -O ${dest_filename} ${pkg_url} && {
|
||||||
|
# two space for md5sum/sha1sum/sha256sum check format
|
||||||
|
echo "${pkg_checksum} ${dest_filename}" | md5sum -c - && downloaded=true
|
||||||
|
}
|
||||||
|
else
|
||||||
|
downloaded=true
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
if [[ $downloaded == false ]];then
|
||||||
|
echo "failed to download ${pkg_url} to ${dest_filename}"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
done < "${LATEST_PATH}/MD5SUMS"
|
||||||
|
echo "Virtualbox ${LATEST_VERSION} finished"
|
||||||
|
done
|
||||||
|
|
||||||
|
LATEST_VERSION=`cat "${BASE_PATH}/LATEST.TXT"`
|
||||||
|
for filename in ${BASE_PATH}/${LATEST_VERSION}/*.*; do
|
||||||
case $filename in
|
case $filename in
|
||||||
*Win.exe)
|
*Win.exe)
|
||||||
ln -sf ${dest_filename} ${BASE_PATH}/virtualbox-Win-latest.exe
|
ln -sf "${filename}" "${BASE_PATH}/virtualbox-Win-latest.exe"
|
||||||
;;
|
;;
|
||||||
*OSX.dmg)
|
*OSX.dmg)
|
||||||
ln -sf ${dest_filename} ${BASE_PATH}/virtualbox-osx-latest.dmg
|
ln -sf "${filename}" "${BASE_PATH}/virtualbox-osx-latest.dmg"
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
done
|
||||||
done < "${LATEST_PATH}/MD5SUMS"
|
|
||||||
echo "Virtualbox ${LATEST_VERSION} finished"
|
|
Loading…
x
Reference in New Issue
Block a user