get-dashboard.sh 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. #!/usr/bin/env bash
  2. set -euo pipefail
  3. # ensure dir
  4. cd -P -- "$(dirname -- "${BASH_SOURCE[0]}")/.."
  5. VERSION="${1}"
  6. case "$VERSION" in
  7. v*)
  8. RELEASE_ASSET_FILE="emqx-dashboard-$VERSION.zip"
  9. ;;
  10. e*)
  11. RELEASE_ASSET_FILE="emqx-enterprise-dashboard-$VERSION.zip"
  12. ;;
  13. *)
  14. echo "Unknown version $VERSION"
  15. exit 1
  16. ;;
  17. esac
  18. DASHBOARD_PATH='apps/emqx_dashboard/priv'
  19. DASHBOARD_REPO='emqx-dashboard5'
  20. DIRECT_DOWNLOAD_URL="https://github.com/emqx/${DASHBOARD_REPO}/releases/download/${VERSION}/${RELEASE_ASSET_FILE}"
  21. case $(uname) in
  22. *Darwin*) SED="sed -E";;
  23. *) SED="sed -r";;
  24. esac
  25. version() {
  26. grep -oE 'github_ref: (.*)' "$DASHBOARD_PATH/www/version" | $SED 's|github_ref: refs/tags/(.*)|\1|g'
  27. }
  28. if [ -d "$DASHBOARD_PATH/www" ] && [ "$(version)" = "$VERSION" ]; then
  29. exit 0
  30. fi
  31. echo "Downloading dashboard from: $DIRECT_DOWNLOAD_URL"
  32. curl -L --silent --show-error \
  33. --header "Accept: application/octet-stream" \
  34. --output "${RELEASE_ASSET_FILE}" \
  35. "$DIRECT_DOWNLOAD_URL"
  36. unzip -o -q "$RELEASE_ASSET_FILE" -d "$DASHBOARD_PATH"
  37. rm -rf "$DASHBOARD_PATH/www"
  38. mv "$DASHBOARD_PATH/dist" "$DASHBOARD_PATH/www"
  39. rm -f "$RELEASE_ASSET_FILE"