From 111096fe4873214a15a47828d41f747dd0529791 Mon Sep 17 00:00:00 2001 From: SisMaker <1713699517@qq.com> Date: Sat, 7 Nov 2020 15:41:40 +0800 Subject: [PATCH] =?UTF-8?q?=E6=89=93=E5=8D=B0=E6=97=A5=E5=BF=97=E4=BF=AE?= =?UTF-8?q?=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 2 +- rebar.config | 2 +- src/sync/esSyncSrv.erl | 64 +++++++++++++++++++++--------------------- src/sync/esUtils.erl | 15 +++++----- 4 files changed, 42 insertions(+), 41 deletions(-) diff --git a/README.md b/README.md index d0ab2f8..ac13394 100644 --- a/README.md +++ b/README.md @@ -31,7 +31,7 @@ [ {listenPort, 12369}, {compileCmd, undefined}, - {srcDirs, undefined} + {extraDirs, undefined} {log, all}, {descendant, fix} ] diff --git a/rebar.config b/rebar.config index f107fab..07ddd66 100644 --- a/rebar.config +++ b/rebar.config @@ -1,7 +1,7 @@ {erl_opts, [no_debug_info]}. {deps, [ - {erlGbh, ".*", {git, "http://120.77.213.39:53000/SisMaker/erlGbh.git", {branch, "master"}}} + {erlGbh, ".*", {git, "http://47.108.26.175:53000/SisMaker/erlGbh.git", {branch, "master"}}} ]}. {shell, [ diff --git a/src/sync/esSyncSrv.erl b/src/sync/esSyncSrv.erl index 00e8529..2195ce5 100644 --- a/src/sync/esSyncSrv.erl +++ b/src/sync/esSyncSrv.erl @@ -147,38 +147,6 @@ handleCast(miRescan, _, State) -> handleCast(_Msg, _, _State) -> kpS_S. -handleInfo({inet_async, LSock, _Ref, Msg}, _, #state{sockMod = SockMod} = State) -> - case Msg of - {ok, Sock} -> - %% make it look like gen_tcp:accept - inet_db:register_socket(Sock, SockMod), - inet:setopts(Sock, [{active, true}]), - prim_inet:async_accept(LSock, -1), - - %% 建立了连接 先发送监听目录配置 - {AddSrcDirs, OnlySrcDirs, DelSrcDirs} = esUtils:mergeExtraDirs(false), - AddStr = string:join([filename:nativename(OneDir) || OneDir <- AddSrcDirs], "|"), - OnlyStr = string:join([filename:nativename(OneDir) || OneDir <- OnlySrcDirs], "|"), - DelStr = string:join([filename:nativename(OneDir) || OneDir <- DelSrcDirs], "|"), - AllStr = string:join([AddStr, OnlyStr, DelStr], "\r\n"), - gen_tcp:send(Sock, AllStr), - case ?esCfgSync:getv(?compileCmd) of - undefined -> - %% 然后收集一下监听目录下的src文件 - SrcFiles = esUtils:collSrcFiles(true), - {nextS, running, State#state{sock = Sock, srcFiles = SrcFiles}}; - _ -> - {nextS, running, State} - end; - {error, closed} -> - Msg = io_lib:format("error, closed listen sock error ~p~n", [closed]), - esUtils:logErrors(Msg), - {stop, normal}; - {error, Reason} -> - Msg = io_lib:format("listen sock error ~p~n", [Reason]), - esUtils:logErrors(Msg), - {stop, {lsock, Reason}} - end; handleInfo({tcp, _Socket, Data}, running, #state{srcFiles = SrcFiles, onsyncFun = OnsyncFun, swSyncNode = SwSyncNode} = State) -> FileList = binary:split(Data, <<"\r\n">>, [global]), %% 收集改动了beam hrl src 文件 然后执行相应的逻辑 @@ -211,6 +179,38 @@ handleInfo({tcp, _Socket, Data}, running, #state{srcFiles = SrcFiles, onsyncFun end, kpS_S end; +handleInfo({inet_async, LSock, _Ref, Msg}, _, #state{sockMod = SockMod} = State) -> + case Msg of + {ok, Sock} -> + %% make it look like gen_tcp:accept + inet_db:register_socket(Sock, SockMod), + inet:setopts(Sock, [{active, true}]), + prim_inet:async_accept(LSock, -1), + + %% 建立了连接 先发送监听目录配置 + {AddSrcDirs, OnlySrcDirs, DelSrcDirs} = esUtils:mergeExtraDirs(false), + AddStr = string:join([filename:nativename(OneDir) || OneDir <- AddSrcDirs], "|"), + OnlyStr = string:join([filename:nativename(OneDir) || OneDir <- OnlySrcDirs], "|"), + DelStr = string:join([filename:nativename(OneDir) || OneDir <- DelSrcDirs], "|"), + AllStr = string:join([AddStr, OnlyStr, DelStr], "\r\n"), + gen_tcp:send(Sock, AllStr), + case ?esCfgSync:getv(?compileCmd) of + undefined -> + %% 然后收集一下监听目录下的src文件 + SrcFiles = esUtils:collSrcFiles(true), + {nextS, running, State#state{sock = Sock, srcFiles = SrcFiles}}; + _ -> + {nextS, running, State} + end; + {error, closed} -> + Msg = io_lib:format("error, closed listen sock error ~p~n", [closed]), + esUtils:logErrors(Msg), + {stop, normal}; + {error, Reason} -> + Msg = io_lib:format("listen sock error ~p~n", [Reason]), + esUtils:logErrors(Msg), + {stop, {lsock, Reason}} + end; handleInfo({tcp_closed, _Socket}, running, _State) -> Msg = io_lib:format("esSyncSrv receive tcp_closed ~n", []), esUtils:logErrors(Msg), diff --git a/src/sync/esUtils.erl b/src/sync/esUtils.erl index 12ff575..9e7afde 100644 --- a/src/sync/esUtils.erl +++ b/src/sync/esUtils.erl @@ -521,14 +521,13 @@ printResults(_Module, SrcFile, [], []) -> Msg = io_lib:format("~s Recompiled", [SrcFile]), esUtils:logSuccess(lists:flatten(Msg)); printResults(_Module, SrcFile, [], Warnings) -> - Msg = [formatErrors(SrcFile, [], Warnings), io_lib:format("~s Recompiled with ~p warnings", [SrcFile, length(Warnings)])], - esUtils:logWarnings(Msg); + formatErrors(fun esUtils:logWarnings/1, SrcFile, [], Warnings), io_lib:format("~s Recompiled with ~p warnings", [SrcFile, length(Warnings)]); printResults(_Module, SrcFile, Errors, Warnings) -> - Msg = [formatErrors(SrcFile, Errors, Warnings)], - esUtils:logErrors(Msg). + formatErrors(fun esUtils:logErrors/1, SrcFile, Errors, Warnings). + %% @private Print error messages in a pretty and user readable way. -formatErrors(File, Errors, Warnings) -> +formatErrors(LogFun, File, Errors, Warnings) -> AllErrors1 = lists:sort(lists:flatten([X || {_, X} <- Errors])), AllErrors2 = [{Line, "Error", Module, Description} || {Line, Module, Description} <- AllErrors1], AllWarnings1 = lists:sort(lists:flatten([X || {_, X} <- Warnings])), @@ -537,9 +536,11 @@ formatErrors(File, Errors, Warnings) -> FPck = fun({Line, Prefix, Module, ErrorDescription}) -> Msg = formatError(Module, ErrorDescription), - io_lib:format("~s:~p: ~s: ~s", [File, Line, Prefix, Msg]) + LogMsg = io_lib:format("~s: ~p: ~s: ~s", [File, Line, Prefix, Msg]), + LogFun(LogMsg) end, - [FPck(X) || X <- Everything]. + [FPck(X) || X <- Everything], + ok. formatError(Module, ErrorDescription) -> case erlang:function_exported(Module, format_error, 1) of