feat: add eval-erl command to `bin/emqx`
This allows Erlang expressions to be evaluated easily even on nodes running Elixir.
This commit is contained in:
parent
e4b14a34b2
commit
1b3b2c0d03
|
@ -20,14 +20,8 @@ fi
|
||||||
|
|
||||||
is_node_up() {
|
is_node_up() {
|
||||||
local node="$1"
|
local node="$1"
|
||||||
if [ "${IS_ELIXIR:-no}" = "yes" ]
|
docker exec -i "$node" \
|
||||||
then
|
bash -c "emqx eval-erl \"['emqx@node1.emqx.io','emqx@node2.emqx.io'] = maps:get(running_nodes, ekka_cluster:info()).\"" > /dev/null 2>&1
|
||||||
docker exec -i "$node" \
|
|
||||||
bash -c "emqx eval \"[:\\\"emqx@node1.emqx.io\\\", :\\\"emqx@node2.emqx.io\\\"] = :ekka_cluster.info()[:running_nodes]\""
|
|
||||||
else
|
|
||||||
docker exec -i "$node" \
|
|
||||||
bash -c "emqx eval \"['emqx@node1.emqx.io','emqx@node2.emqx.io'] = maps:get(running_nodes, ekka_cluster:info()).\"" > /dev/null 2>&1
|
|
||||||
fi
|
|
||||||
}
|
}
|
||||||
|
|
||||||
is_node_listening() {
|
is_node_listening() {
|
||||||
|
|
11
bin/emqx
11
bin/emqx
|
@ -140,6 +140,9 @@ usage() {
|
||||||
eval)
|
eval)
|
||||||
echo "Evaluate an Erlang or Elxir expression in the EMQ X node"
|
echo "Evaluate an Erlang or Elxir expression in the EMQ X node"
|
||||||
;;
|
;;
|
||||||
|
eval-erl)
|
||||||
|
echo "Evaluate an Erlang expression in the EMQ X node, even on Elixir node"
|
||||||
|
;;
|
||||||
versions)
|
versions)
|
||||||
echo "List installed EMQ X versions and their status"
|
echo "List installed EMQ X versions and their status"
|
||||||
;;
|
;;
|
||||||
|
@ -200,7 +203,7 @@ usage() {
|
||||||
echo " Up/Down-grade: upgrade | downgrade | install | uninstall"
|
echo " Up/Down-grade: upgrade | downgrade | install | uninstall"
|
||||||
echo " Install info: ertspath | root_dir | versions | root_dir"
|
echo " Install info: ertspath | root_dir | versions | root_dir"
|
||||||
echo " Runtime info: pid | ping | versions"
|
echo " Runtime info: pid | ping | versions"
|
||||||
echo " Advanced: console_clean | escript | rpc | rpcterms | eval"
|
echo " Advanced: console_clean | escript | rpc | rpcterms | eval | eval-erl"
|
||||||
echo ''
|
echo ''
|
||||||
echo "Execute '$REL_NAME COMMAND help' for more information"
|
echo "Execute '$REL_NAME COMMAND help' for more information"
|
||||||
;;
|
;;
|
||||||
|
@ -875,6 +878,12 @@ case "${COMMAND}" in
|
||||||
relx_nodetool "eval" "$@"
|
relx_nodetool "eval" "$@"
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
|
eval-erl)
|
||||||
|
assert_node_alive
|
||||||
|
|
||||||
|
shift
|
||||||
|
relx_nodetool "eval" "$@"
|
||||||
|
;;
|
||||||
*)
|
*)
|
||||||
usage "$COMMAND"
|
usage "$COMMAND"
|
||||||
exit 1
|
exit 1
|
||||||
|
|
Loading…
Reference in New Issue