diff options
-rw-r--r-- | files/core-functions.sh | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/files/core-functions.sh b/files/core-functions.sh index 667667c..ec753c7 100644 --- a/files/core-functions.sh +++ b/files/core-functions.sh @@ -970,10 +970,37 @@ function getpkg() { # function checkchangelog() { + if ! [ -e ${ROOT}/${WORKDIR}/CHECKSUMS.md5.asc ]; then + touch ${ROOT}/${WORKDIR}/CHECKSUMS.md5.asc + fi + if ! [ -e ${ROOT}/${WORKDIR}/ChangeLog.txt ]; then touch ${ROOT}/${WORKDIR}/ChangeLog.txt fi + # First we will download CHECKSUMS.md5.asc since it is a very small + # file and if it has not changed, we can know that the ChangeLog + # has not changed either. If it _has_ changed, we'll need to pull + # the ChangeLog to check that as well. + echo -e "\tDownloading..." + getfile ${SOURCE}CHECKSUMS.md5.asc $TMPDIR/CHECKSUMS.md5.asc + if ! grep -q "PGP" $TMPDIR/CHECKSUMS.md5.asc ; then + echo -e "\ +\nError downloading from $SOURCE.\n\ +Please check your mirror and try again." + cleanup + fi + if diff --brief ${ROOT}/${WORKDIR}/CHECKSUMS.md5.asc $TMPDIR/CHECKSUMS.md5.asc ; then + # Before returning with the result that these signatures (and + # therefore the ChangeLog) are the same, we need to copy the + # ChangeLog into ${TMPDIR} in case the user decides to + # "download all other files": + cp ${ROOT}/${WORKDIR}/ChangeLog.txt $TMPDIR/ChangeLog.txt + return 0 + fi + # CHECKSUMS.md5.asc was different, so we'll go on to download and test + # the full ChangeLog.txt. + echo -e "\tDownloading..." # # Download ChangeLog.txt first of all and test if it's equal |