| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100 |
- #!/bin/bash
- set -euo pipefail
- force="${1:-no}"
- apps=(
- # "emqx_auth_http" # permanently diverged
- # "emqx_web_hook" # permanently diverged
- "emqx_auth_jwt"
- "emqx_auth_ldap"
- "emqx_auth_mongo"
- "emqx_auth_mysql"
- "emqx_auth_pgsql"
- "emqx_auth_redis"
- "emqx_bridge_mqtt"
- "emqx_coap"
- "emqx_dashboard"
- "emqx_exhook"
- "emqx_exproto"
- "emqx_lua_hook"
- "emqx_lwm2m"
- "emqx_management"
- "emqx_plugin_template"
- "emqx_prometheus"
- "emqx_psk_file"
- "emqx_recon"
- "emqx_retainer"
- "emqx_rule_engine"
- "emqx_sasl"
- "emqx_sn"
- "emqx_stomp"
- "emqx_telemetry"
- )
- if git status --porcelain | grep -qE 'apps/'; then
- echo 'apps dir is not git-clear, refuse to sync'
- # exit 1
- fi
- mkdir -p tmp/
- download_zip() {
- local app="$1"
- local ref="$2"
- local vsn="$(echo "$ref" | tr '/' '-')"
- local file="tmp/${app}-${vsn}.zip"
- if [ -f "$file" ] && [ "$force" != "force" ]; then
- return 0
- fi
- local repo="$(echo "$app" | sed 's#_#-#g')"
- local url="https://github.com/emqx/$repo/archive/$ref.zip"
- echo "downloading ${url}"
- curl -fLsS -o "$file" "$url"
- }
- default_vsn="dev/v4.3.0"
- download_zip "emqx_auth_mnesia" "e4.2.3"
- for app in ${apps[@]}; do
- download_zip "$app" "$default_vsn"
- done
- extract_zip(){
- local app="$1"
- local ref="$2"
- local vsn_arg="${3:-}"
- local vsn_dft="$(echo "$ref" | tr '/' '-')"
- local vsn
- if [ -n "$vsn_arg" ]; then
- vsn="$vsn_arg"
- else
- vsn="$vsn_dft"
- fi
- local file="tmp/${app}-${vsn_dft}.zip"
- local repo="$(echo "$app" | sed 's#_#-#g')"
- rm -rf "apps/${app}/"
- unzip "$file" -d apps/
- mv "apps/${repo}-${vsn}/" "apps/$app/"
- }
- extract_zip "emqx_auth_mnesia" "e4.2.3" "e4.2.3"
- for app in ${apps[@]}; do
- extract_zip "$app" "$default_vsn"
- done
- cleanup_app(){
- local app="$1"
- pushd "apps/$app"
- rm -f Makefile rebar.config.script LICENSE src/*.app.src.script src/*.appup.src
- rm -rf ".github" ".ci"
- # restore rebar.config and app.src
- git checkout rebar.config
- git checkout src/*.app.src
- popd
- }
- apps+=( "emqx_auth_mnesia" )
- for app in ${apps[@]}; do
- cleanup_app $app
- done
|