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() {
|
||||
local node="$1"
|
||||
if [ "${IS_ELIXIR:-no}" = "yes" ]
|
||||
then
|
||||
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
|
||||
docker exec -i "$node" \
|
||||
bash -c "emqx eval-erl \"['emqx@node1.emqx.io','emqx@node2.emqx.io'] = maps:get(running_nodes, ekka_cluster:info()).\"" > /dev/null 2>&1
|
||||
}
|
||||
|
||||
is_node_listening() {
|
||||
|
|
11
bin/emqx
11
bin/emqx
|
@ -140,6 +140,9 @@ usage() {
|
|||
eval)
|
||||
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)
|
||||
echo "List installed EMQ X versions and their status"
|
||||
;;
|
||||
|
@ -200,7 +203,7 @@ usage() {
|
|||
echo " Up/Down-grade: upgrade | downgrade | install | uninstall"
|
||||
echo " Install info: ertspath | root_dir | versions | root_dir"
|
||||
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 "Execute '$REL_NAME COMMAND help' for more information"
|
||||
;;
|
||||
|
@ -875,6 +878,12 @@ case "${COMMAND}" in
|
|||
relx_nodetool "eval" "$@"
|
||||
fi
|
||||
;;
|
||||
eval-erl)
|
||||
assert_node_alive
|
||||
|
||||
shift
|
||||
relx_nodetool "eval" "$@"
|
||||
;;
|
||||
*)
|
||||
usage "$COMMAND"
|
||||
exit 1
|
||||
|
|
Loading…
Reference in New Issue