diff --git a/upload_box_to_vagrantcloud.sh b/upload_box_to_vagrantcloud.sh index b33f8469..b87e6d7d 100755 --- a/upload_box_to_vagrantcloud.sh +++ b/upload_box_to_vagrantcloud.sh @@ -152,7 +152,15 @@ cmdline() { esac echo -e "*** ${NAME} | ${SHORT_DESCRIPTION}" - vagrant cloud publish --force --description "$LONG_DESCRIPTION" --version-description "$LONG_DESCRIPTION" --release --short-description "${SHORT_DESCRIPTION}" "${VAGRANT_CLOUD_USER}/${NAME}" "${BOX_VERSION}" "${VAGRANT_PROVIDER}" "${VAGRANT_CLOUD_BOX_FILE}" + CHECKSUM_BOX_FILE=$(sha256sum "${VAGRANT_CLOUD_BOX_FILE}" | cut -d ' ' -f 1) + CHECKSUM_BOX_VAGRANT_CLOUD=$(curl -s "https://app.vagrantup.com/${VAGRANT_CLOUD_USER}/boxes/${NAME}" | jq -r ".versions[] | select (.version == \"${BOX_VERSION}\") .providers[] | select (.name == \"${VAGRANT_PROVIDER}\") .checksum") + + if [ "${CHECKSUM_BOX_FILE}" != "${CHECKSUM_BOX_VAGRANT_CLOUD}" ]; then + vagrant cloud publish --force --description "$LONG_DESCRIPTION" --version-description "$LONG_DESCRIPTION" --release --short-description "${SHORT_DESCRIPTION}" --checksum-type sha256 --checksum "${CHECKSUM_BOX_FILE}" "${VAGRANT_CLOUD_USER}/${NAME}" "${BOX_VERSION}" "${VAGRANT_PROVIDER}" "${VAGRANT_CLOUD_BOX_FILE}" + else + echo "*** Box '${NAME}' with version '${BOX_VERSION}', provider '${VAGRANT_PROVIDER}' and checksum '${CHECKSUM_BOX_FILE}' already exists." + echo "*** Skipping upload..." + fi }