|
|
@ -36,7 +36,10 @@ |
|
|
|
|
|
|
|
-record(state, { |
|
|
|
srcFiles = #{} :: map() |
|
|
|
, onsyncFun = undefined |
|
|
|
, hrlFiles = #{} :: map() |
|
|
|
, configs = #{} :: map() |
|
|
|
, beams = #{} :: map() |
|
|
|
, onSyncFun = undefined |
|
|
|
, swSyncNode = false |
|
|
|
, port = undefined |
|
|
|
}). |
|
|
@ -81,7 +84,7 @@ getOnsync() -> |
|
|
|
es_gen_ipc:call(?SERVER, miGetOnsync). |
|
|
|
|
|
|
|
setOnsync(Fun) -> |
|
|
|
es_gen_ipc:call(?SERVER, {miSetOnsync, Fun}). |
|
|
|
es_gen_ipc:call(?SERVER, {miSetOnSync, Fun}). |
|
|
|
|
|
|
|
%% ************************************ API end *************************** |
|
|
|
start_link() -> |
|
|
@ -100,10 +103,10 @@ handleAfter(?None, waiting, State) -> |
|
|
|
Port = erlang:open_port({spawn_executable, PortName}, Opts), |
|
|
|
{kpS, State#state{port = Port}, {sTimeout, 4000, waitConnOver}}. |
|
|
|
|
|
|
|
handleCall(miGetOnsync, _, #state{onsyncFun = OnSync} = State, _From) -> |
|
|
|
{reply, OnSync, State}; |
|
|
|
handleCall({miSetOnsync, Fun}, _, State, _From) -> |
|
|
|
{reply, ok, State#state{onsyncFun = Fun}}; |
|
|
|
handleCall(miGetOnsync, _, #state{onSyncFun = OnSyncFun} = State, _From) -> |
|
|
|
{reply, OnSyncFun, State}; |
|
|
|
handleCall({miSetOnSync, Fun}, _, State, _From) -> |
|
|
|
{reply, ok, State#state{onSyncFun = Fun}}; |
|
|
|
handleCall(miCurInfo, _, State, _Form) -> |
|
|
|
{reply, {erlang:get(), State}, State}; |
|
|
|
handleCall(_Request, _, _State, _From) -> |
|
|
@ -126,12 +129,12 @@ handleCast(miRescan, _, State) -> |
|
|
|
handleCast(_Msg, _, _State) -> |
|
|
|
kpS_S. |
|
|
|
|
|
|
|
handleInfo({_Port, {data, Data}}, running, #state{srcFiles = SrcFiles, onsyncFun = OnsyncFun, swSyncNode = SwSyncNode} = State) -> |
|
|
|
handleInfo({_Port, {data, Data}}, running, #state{srcFiles = SrcFiles, onSyncFun = OnSyncFun, swSyncNode = SwSyncNode} = State) -> |
|
|
|
FileList = binary:split(Data, <<"\r\n">>, [global]), |
|
|
|
%% 收集改动了beam hrl src 文件 然后执行相应的逻辑 |
|
|
|
{Beams, Hrls, Srcs, Configs} = esUtils:classifyChangeFile(FileList, [], [], [], []), |
|
|
|
esUtils:fireOnsync(OnsyncFun, Configs), |
|
|
|
esUtils:reloadChangedMod(Beams, SwSyncNode, OnsyncFun, []), |
|
|
|
esUtils:fireOnsync(OnSyncFun, Configs), |
|
|
|
esUtils:reloadChangedMod(Beams, SwSyncNode, OnSyncFun, []), |
|
|
|
case ?esCfgSync:getv(?compileCmd) of |
|
|
|
undefined -> |
|
|
|
esUtils:recompileChangeHrlFile(Hrls, SrcFiles, SwSyncNode), |
|
|
|