| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- #!/usr/bin/env bash
- set -euo pipefail
- cd -P -- "$(dirname -- "$0")/../.."
- PROFILE="${PROFILE:-emqx}"
- DIR_NAME='examples'
- SCHEMA_MOD='emqx_conf_schema'
- if [ "${PROFILE}" = 'emqx-enterprise' ]; then
- DIR_NAME='ee-examples'
- SCHEMA_MOD='emqx_enterprise_schema'
- fi
- IFS=$'\n' read -r -d '' -a FILES < <(find "rel/config/${DIR_NAME}" -name "*.example" 2>/dev/null | sort && printf '\0')
- prepare_erl_libs() {
- local libs_dir="$1"
- local erl_libs="${ERL_LIBS:-}"
- local sep=':'
- for app in "${libs_dir}"/*; do
- if [ -d "${app}/ebin" ]; then
- if [ -n "$erl_libs" ]; then
- erl_libs="${erl_libs}${sep}${app}"
- else
- erl_libs="${app}"
- fi
- fi
- done
- export ERL_LIBS="$erl_libs"
- }
- # This is needed when checking schema
- export EMQX_ETC_DIR="apps/emqx/etc"
- prepare_erl_libs "_build/$PROFILE/lib"
- check_file() {
- local file="$1"
- erl -noshell -eval \
- "File=\"$file\",
- case emqx_hocon:load_and_check($SCHEMA_MOD, File) of
- {ok, _} ->
- io:format(\"check_example_config_ok: ~s~n\", [File]),
- halt(0);
- {error, Reason} ->
- io:format(\"failed_to_check_example_config: ~s~n~p~n\", [File, Reason]),
- halt(1)
- end."
- }
- for file in "${FILES[@]}"; do
- check_file "$file"
- done
|