Watcher state and constant
This commit is contained in:
parent
006a241293
commit
85c9443407
|
@ -18,8 +18,9 @@
|
|||
terminate/2, code_change/3]).
|
||||
|
||||
-define(SERVER, ?MODULE).
|
||||
-define(TAIL_CMD, "/usr/bin/tail -n0 --follow=name ").
|
||||
|
||||
-record(state, {}).
|
||||
-record(state, {file, supervisor, port}).
|
||||
|
||||
%%%===================================================================
|
||||
%%% API
|
||||
|
@ -53,9 +54,9 @@ start_link(SupPid, File) ->
|
|||
init([SupPid, File]) ->
|
||||
timer:sleep(1000),
|
||||
config ! {watcher_init, File},
|
||||
Cmd = "/usr/bin/tail -n0 --follow=name " ++ File,
|
||||
Cmd = ?TAIL_CMD ++ File,
|
||||
Port = open_port({spawn, Cmd}, [stderr_to_stdout, exit_status, binary]),
|
||||
{ok, [File, SupPid, Port]}.
|
||||
{ok, #state{file = File, supervisor = SupPid, port = Port}}.
|
||||
|
||||
%%--------------------------------------------------------------------
|
||||
%% @private
|
||||
|
@ -98,14 +99,14 @@ handle_cast(_Msg, State) ->
|
|||
%% {stop, Reason, State}
|
||||
%% @end
|
||||
%%--------------------------------------------------------------------
|
||||
handle_info(Msg, [File, SupPid, Port]) ->
|
||||
handle_info(Msg, State = #state{file = _, supervisor = SupPid, port = Port}) ->
|
||||
case Msg of
|
||||
{Port, {data, Text}} ->
|
||||
GathererPid = gatherer_pid(SupPid),
|
||||
GathererPid ! {log_line, binary_to_list(Text)},
|
||||
{noreply, [File, SupPid, Port]};
|
||||
{noreply, State};
|
||||
{Port, {exit_status, _Status}} ->
|
||||
{stop, tail_exit, [File]}
|
||||
{stop, tail_exit, State}
|
||||
end.
|
||||
|
||||
%%--------------------------------------------------------------------
|
||||
|
@ -119,8 +120,8 @@ handle_info(Msg, [File, SupPid, Port]) ->
|
|||
%% @spec terminate(Reason, State) -> void()
|
||||
%% @end
|
||||
%%--------------------------------------------------------------------
|
||||
terminate(_Reason, [File]) ->
|
||||
config ! {watcher_terminate, File},
|
||||
terminate(_Reason, State) ->
|
||||
config ! {watcher_terminate, State#state.file},
|
||||
shutdown.
|
||||
|
||||
%%--------------------------------------------------------------------
|
||||
|
|
Loading…
Reference in New Issue
Block a user