Kaynağa Gözat

Fix error exit code from emqttd_ctl

turtled 8 yıl önce
ebeveyn
işleme
a427a53a30
1 değiştirilmiş dosya ile 13 ekleme ve 6 silme
  1. 13 6
      src/emqttd_ctl.erl

+ 13 - 6
src/emqttd_ctl.erl

@@ -64,14 +64,22 @@ cast(Msg) -> gen_server:cast(?SERVER, Msg).
 
 
 %% @doc Run a command
 %% @doc Run a command
 -spec(run([string()]) -> any()).
 -spec(run([string()]) -> any()).
-run([]) -> usage();
+run([]) -> usage(), ok;
 
 
-run(["help"]) -> usage();
+run(["help"]) -> usage(), ok;
 
 
 run([CmdS|Args]) ->
 run([CmdS|Args]) ->
     case lookup(list_to_atom(CmdS)) of
     case lookup(list_to_atom(CmdS)) of
-        [{Mod, Fun}] -> Mod:Fun(Args), ok;
-        [] -> usage() 
+        [{Mod, Fun}] ->
+            try Mod:Fun(Args) of
+               _ -> ok
+            catch
+                _:Reason ->
+                    {error, Reason}
+            end;
+        [] ->
+            usage(),
+            {error, cmd_not_found}
     end.
     end.
 
 
 %% @doc Lookup a command
 %% @doc Lookup a command
@@ -86,8 +94,7 @@ lookup(Cmd) ->
 usage() ->
 usage() ->
     ?PRINT("Usage: ~s~n", [?MODULE]),
     ?PRINT("Usage: ~s~n", [?MODULE]),
     [begin ?PRINT("~80..-s~n", [""]), Mod:Cmd(usage) end
     [begin ?PRINT("~80..-s~n", [""]), Mod:Cmd(usage) end
-        || {_, {Mod, Cmd}, _} <- ets:tab2list(?CMD_TAB)],
-    ok.
+        || {_, {Mod, Cmd}, _} <- ets:tab2list(?CMD_TAB)].
 
 
 %%--------------------------------------------------------------------
 %%--------------------------------------------------------------------
 %% gen_server callbacks
 %% gen_server callbacks