refactor: always use hocon to generate config
previously we supports skipping config generation if USE_CUTTLEFISH not set to true. it has never been tested (at least not in automated tests) now it's time to drop it.
This commit is contained in:
parent
4b174b0277
commit
5546d24b6d
88
bin/emqx
88
bin/emqx
|
@ -123,9 +123,6 @@ fi
|
||||||
# Echo to stderr on errors
|
# Echo to stderr on errors
|
||||||
echoerr() { echo "$@" 1>&2; }
|
echoerr() { echo "$@" 1>&2; }
|
||||||
|
|
||||||
# By default, use hocon to generate app.config and vm.args
|
|
||||||
HOCON="${USE_HOCON:-yes}"
|
|
||||||
|
|
||||||
SED_REPLACE="sed -i "
|
SED_REPLACE="sed -i "
|
||||||
case $(sed --help 2>&1) in
|
case $(sed --help 2>&1) in
|
||||||
*GNU*) SED_REPLACE="sed -i ";;
|
*GNU*) SED_REPLACE="sed -i ";;
|
||||||
|
@ -202,55 +199,46 @@ generate_config() {
|
||||||
## changing the config 'log.rotation.size'
|
## changing the config 'log.rotation.size'
|
||||||
rm -rf "${RUNNER_LOG_DIR}"/*.siz
|
rm -rf "${RUNNER_LOG_DIR}"/*.siz
|
||||||
|
|
||||||
if [ "$HOCON" != "yes" ]; then
|
EMQX_LICENSE_CONF_OPTION=""
|
||||||
# Note: we have added a parameter '-vm_args' to this. It
|
if [ "${EMQX_LICENSE_CONF:-}" != "" ]; then
|
||||||
# appears redundant but it is not! the erlang vm allows us to
|
EMQX_LICENSE_CONF_OPTION="-i ${EMQX_LICENSE_CONF}"
|
||||||
# access all arguments to the erl command EXCEPT '-args_file',
|
|
||||||
# so in order to get access to this file location from within
|
|
||||||
# the vm, we need to pass it in twice.
|
|
||||||
CONFIG_ARGS=" -config $RUNNER_ETC_DIR/app.config -args_file $RUNNER_ETC_DIR/vm.args -vm_args $RUNNER_ETC_DIR/vm.args "
|
|
||||||
else
|
|
||||||
EMQX_LICENSE_CONF_OPTION=""
|
|
||||||
if [ "${EMQX_LICENSE_CONF:-}" != "" ]; then
|
|
||||||
EMQX_LICENSE_CONF_OPTION="-i ${EMQX_LICENSE_CONF}"
|
|
||||||
fi
|
|
||||||
|
|
||||||
set +e
|
|
||||||
# shellcheck disable=SC2086
|
|
||||||
HOCON_OUTPUT="$("$ERTS_PATH"/escript "$RUNNER_ROOT_DIR"/bin/hocon -s emqx_schema -c "$RUNNER_ETC_DIR"/emqx.conf -d "$RUNNER_DATA_DIR"/configs generate)"
|
|
||||||
echo $HOCON_OUTPUT
|
|
||||||
# shellcheck disable=SC2181
|
|
||||||
RESULT=$?
|
|
||||||
set -e
|
|
||||||
if [ $RESULT -gt 0 ]; then
|
|
||||||
echo "$HOCON_OUTPUT"
|
|
||||||
exit $RESULT
|
|
||||||
fi
|
|
||||||
# print override from environment variables (EMQX_*)
|
|
||||||
echo "$HOCON_OUTPUT" | sed -e '$d'
|
|
||||||
CONFIG_ARGS=$(echo "$HOCON_OUTPUT" | tail -n 1)
|
|
||||||
|
|
||||||
## Merge hocon generated *.args into the vm.args
|
|
||||||
HOCON_GEN_ARG_FILE=$(echo "$CONFIG_ARGS" | sed -n 's/^.*\(vm_args[[:space:]]\)//p' | awk '{print $1}')
|
|
||||||
TMP_ARG_FILE="$RUNNER_DATA_DIR/configs/vm.args.tmp"
|
|
||||||
cp "$RUNNER_ETC_DIR/vm.args" "$TMP_ARG_FILE"
|
|
||||||
echo "" >> "$TMP_ARG_FILE"
|
|
||||||
echo "-pa ${REL_DIR}/consolidated" >> "$TMP_ARG_FILE"
|
|
||||||
sed '/^#/d' "$HOCON_GEN_ARG_FILE" | sed '/^$/d' | while IFS='' read -r ARG_LINE || [ -n "$ARG_LINE" ]; do
|
|
||||||
ARG_KEY=$(echo "$ARG_LINE" | awk '{$NF="";print}')
|
|
||||||
ARG_VALUE=$(echo "$ARG_LINE" | awk '{print $NF}')
|
|
||||||
TMP_ARG_VALUE=$(grep "^$ARG_KEY" "$TMP_ARG_FILE" | awk '{print $NF}')
|
|
||||||
if [ "$ARG_VALUE" != "$TMP_ARG_VALUE" ] ; then
|
|
||||||
if [ -n "$TMP_ARG_VALUE" ]; then
|
|
||||||
sh -c "$SED_REPLACE 's/^$ARG_KEY.*$/$ARG_LINE/' $TMP_ARG_FILE"
|
|
||||||
else
|
|
||||||
echo "$ARG_LINE" >> "$TMP_ARG_FILE"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
mv -f "$TMP_ARG_FILE" "$HOCON_GEN_ARG_FILE"
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
set +e
|
||||||
|
# shellcheck disable=SC2086
|
||||||
|
HOCON_OUTPUT="$("$ERTS_PATH"/escript "$RUNNER_ROOT_DIR"/bin/hocon -s emqx_schema -c "$RUNNER_ETC_DIR"/emqx.conf -d "$RUNNER_DATA_DIR"/configs generate)"
|
||||||
|
echo $HOCON_OUTPUT
|
||||||
|
# shellcheck disable=SC2181
|
||||||
|
RESULT=$?
|
||||||
|
set -e
|
||||||
|
if [ $RESULT -gt 0 ]; then
|
||||||
|
echo "$HOCON_OUTPUT"
|
||||||
|
exit $RESULT
|
||||||
|
fi
|
||||||
|
# print override from environment variables (EMQX_*)
|
||||||
|
echo "$HOCON_OUTPUT" | sed -e '$d'
|
||||||
|
CONFIG_ARGS=$(echo "$HOCON_OUTPUT" | tail -n 1)
|
||||||
|
|
||||||
|
## Merge hocon generated *.args into the vm.args
|
||||||
|
HOCON_GEN_ARG_FILE=$(echo "$CONFIG_ARGS" | sed -n 's/^.*\(vm_args[[:space:]]\)//p' | awk '{print $1}')
|
||||||
|
TMP_ARG_FILE="$RUNNER_DATA_DIR/configs/vm.args.tmp"
|
||||||
|
cp "$RUNNER_ETC_DIR/vm.args" "$TMP_ARG_FILE"
|
||||||
|
echo "" >> "$TMP_ARG_FILE"
|
||||||
|
echo "-pa ${REL_DIR}/consolidated" >> "$TMP_ARG_FILE"
|
||||||
|
sed '/^#/d' "$HOCON_GEN_ARG_FILE" | sed '/^$/d' | while IFS='' read -r ARG_LINE || [ -n "$ARG_LINE" ]; do
|
||||||
|
ARG_KEY=$(echo "$ARG_LINE" | awk '{$NF="";print}')
|
||||||
|
ARG_VALUE=$(echo "$ARG_LINE" | awk '{print $NF}')
|
||||||
|
TMP_ARG_VALUE=$(grep "^$ARG_KEY" "$TMP_ARG_FILE" | awk '{print $NF}')
|
||||||
|
if [ "$ARG_VALUE" != "$TMP_ARG_VALUE" ] ; then
|
||||||
|
if [ -n "$TMP_ARG_VALUE" ]; then
|
||||||
|
sh -c "$SED_REPLACE 's/^$ARG_KEY.*$/$ARG_LINE/' $TMP_ARG_FILE"
|
||||||
|
else
|
||||||
|
echo "$ARG_LINE" >> "$TMP_ARG_FILE"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
mv -f "$TMP_ARG_FILE" "$HOCON_GEN_ARG_FILE"
|
||||||
|
|
||||||
# shellcheck disable=SC2086
|
# shellcheck disable=SC2086
|
||||||
if ! relx_nodetool chkconfig $CONFIG_ARGS; then
|
if ! relx_nodetool chkconfig $CONFIG_ARGS; then
|
||||||
echoerr "Error reading $CONFIG_ARGS"
|
echoerr "Error reading $CONFIG_ARGS"
|
||||||
|
|
Loading…
Reference in New Issue