fetch_libs.sh 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. #!/bin/bash
  2. VERSION=4.82.0
  3. if [ -z "$JENKINS_FAMILY_ENV" ]; then
  4. ARTIFACTORY_URL=https://artifactory.eu02.arm.com:443/artifactory/mcu.promoted
  5. else
  6. ARTIFACTORY_URL=https://eu-west-1.artifactory.aws.arm.com:443/artifactory/mcu.promoted
  7. fi
  8. if [ -z "$ARTIFACTORY_API_KEY" ]; then
  9. echo "Please set your Artifactory in ARTIFACTORY_API_KEY"
  10. echo ""
  11. echo "1. Browse to $(dirname $(dirname $ARTIFACTORY_URL))/ui/admin/artifactory/user_profile"
  12. echo "2. Copy the API Key"
  13. echo "3. Add 'export ARTIFACTORY_API_KEY=\"<API Key>\"' to ~/.bashrc"
  14. exit 1
  15. fi
  16. set -o pipefail
  17. function usage {
  18. echo "$(basename $0) [-h|--help] [-f|--force]"
  19. echo ""
  20. echo "Arguments:"
  21. echo " -h|--help Print this usage message and exit."
  22. echo " -f|--force Force (re)download."
  23. echo ""
  24. echo "Environment:"
  25. echo " curl"
  26. echo " sha256sum"
  27. echo ""
  28. }
  29. POSITIONAL=()
  30. while [[ $# -gt 0 ]]
  31. do
  32. key="$1"
  33. case $key in
  34. '-h'|'--help')
  35. usage
  36. exit 1
  37. ;;
  38. '-f'|'--force')
  39. FORCE=1
  40. ;;
  41. *) # unknown option
  42. POSITIONAL+=("$1") # save it in an array for later
  43. ;;
  44. esac
  45. shift # past argument
  46. done
  47. set -- "${POSITIONAL[@]}" # restore positional parameters
  48. pushd $(dirname $0) > /dev/null
  49. ARCHIVE_NAME="RTX-${VERSION}.zip"
  50. ARCHIVE_URL="${ARTIFACTORY_URL}/CMSIS_5/Libraries/${ARCHIVE_NAME}"
  51. echo "Fetching ${ARCHIVE_URL}..."
  52. if [[ $FORCE == 1 ]]; then
  53. rm ${ARCHIVE_NAME}
  54. fi
  55. if [[ -f ${ARCHIVE_NAME} ]]; then
  56. sha256sum=$(curl -s -I -H "X-JFrog-Art-Api:${ARTIFACTORY_API_KEY}" "${ARCHIVE_URL}" | grep "X-Checksum-Sha256" | cut -d" " -f2)
  57. if echo "${sha256sum} *${ARCHIVE_NAME}" | sha256sum -c --status; then
  58. echo "Already up-to-date"
  59. else
  60. rm ${ARCHIVE_NAME}
  61. fi
  62. fi
  63. if [[ ! -f ${ARCHIVE_NAME} ]]; then
  64. curl -C - -H "X-JFrog-Art-Api:${ARTIFACTORY_API_KEY}" -O "${ARCHIVE_URL}"
  65. fi
  66. unzip -u ${ARCHIVE_NAME}
  67. exit 0