get-dashboard.sh 1.3 KB

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