diff --git a/README.md b/README.md index 58e57e6..afa28d4 100644 --- a/README.md +++ b/README.md @@ -46,7 +46,8 @@ {onMSyncFun, undefined}, {onCSyncFun, undefined}, {swSyncNode, false}, - {isJustMem, false} + {isJustMem, false}, + {debugInfoKeyFun, undefined} ] } ] \ No newline at end of file diff --git a/eSync.sample.config b/eSync.sample.config index fceb66f..2bd8f1d 100644 --- a/eSync.sample.config +++ b/eSync.sample.config @@ -29,18 +29,22 @@ %% 默认值: fix {descendant, fix}, - %% Beam更新回调函数 格式: undefined | {Mondule, Fun} | [{Mondule, Fun}, ...], Fun函数只有一个参数 - {onMSyncFun, undefined}, + %% Beam更新回调函数 格式: undefined | {Mondule, Fun} | [{Mondule, Fun}, ...], Fun函数只有一个参数 + {onMSyncFun, undefined}, - %% config更新回调函数 格式: undefined | {Mondule, Fun} | [{Mondule, Fun}, ...], Fun函数只有一个参数 - {onCSyncFun, undefined}, + %% config更新回调函数 格式: undefined | {Mondule, Fun} | [{Mondule, Fun}, ...], Fun函数只有一个参数 + {onCSyncFun, undefined}, - %% 是否开启集群同步加载 - {swSyncNode, false}, + %% 是否开启集群同步加载 + {swSyncNode, false}, - %% 仅仅内存编译还是编译写入到磁盘去 - {isJustMem, false} - ]} + %% 仅仅内存编译还是编译写入到磁盘去 + {isJustMem, false}, + + %% 如果存在debug_info_key 需要用户提供获取debug_info_key的函数 格式: undefined | {Mondule, Fun} + %% this fun need return: {debug_info_key, xxx} + {debugInfoKeyFun, undefined} + ]} ]. diff --git a/src/eSync.erl b/src/eSync.erl index ef1527f..faa206d 100644 --- a/src/eSync.erl +++ b/src/eSync.erl @@ -14,8 +14,7 @@ getOnCSync/0, setOnCSync/0, setOnCSync/1, - swSyncNode/1, - getDIK/0 + swSyncNode/1 ]). start() -> @@ -67,10 +66,6 @@ setOnCSync() -> setOnCSync(Fun) -> esSyncSrv:setOnCSync(Fun). - -getDIK() -> - %% if use debug_info_key please return the key in this fun: {debug_info_key, xxx} - ok. diff --git a/src/sync/esSyncSrv.erl b/src/sync/esSyncSrv.erl index 3e0bad5..c91bbf8 100644 --- a/src/sync/esSyncSrv.erl +++ b/src/sync/esSyncSrv.erl @@ -12,8 +12,9 @@ -define(onCSyncFun, onCSyncFun). -define(swSyncNode, swSyncNode). -define(isJustMem, isJustMem). +-define(debugInfoKeyFun, debugInfoKeyFun). --define(DefCfgList, [{?Log, all}, {?compileCmd, undefined}, {?extraDirs, undefined}, {?descendant, fix}, {?onMSyncFun, undefined}, {?onCSyncFun, undefined}, {?swSyncNode, false}, {?isJustMem, false}]). +-define(DefCfgList, [{?Log, all}, {?compileCmd, undefined}, {?extraDirs, undefined}, {?descendant, fix}, {?onMSyncFun, undefined}, {?onCSyncFun, undefined}, {?swSyncNode, false}, {?isJustMem, false}, {?debugInfoKeyFun, undefined}]). -define(esCfgSync, esCfgSync). -define(rootSrcDir, <<"src">>). diff --git a/src/sync/esUtils.erl b/src/sync/esUtils.erl index d98e833..481c902 100644 --- a/src/sync/esUtils.erl +++ b/src/sync/esUtils.erl @@ -11,8 +11,9 @@ -define(onCSyncFun, onCSyncFun). -define(swSyncNode, swSyncNode). -define(isJustMem, isJustMem). +-define(debugInfoKeyFun, debugInfoKeyFun). --define(DefCfgList, [{?Log, all}, {?compileCmd, undefined}, {?extraDirs, undefined}, {?descendant, fix}, {?onMSyncFun, undefined}, {?onCSyncFun, undefined}, {?swSyncNode, false}, {?isJustMem, false}]). +-define(DefCfgList, [{?Log, all}, {?compileCmd, undefined}, {?extraDirs, undefined}, {?descendant, fix}, {?onMSyncFun, undefined}, {?onCSyncFun, undefined}, {?swSyncNode, false}, {?isJustMem, false}, {?debugInfoKeyFun, undefined}]). -define(esCfgSync, esCfgSync). -define(rootSrcDir, <<"src">>). @@ -76,7 +77,7 @@ getModOptions(Module) -> Options5 = maybeAddCompileInfo(Options4), %% add filetype to options (DTL, LFE, erl, etc) Options6 = addFileType(Module, Options5), - Options7 = lists:keyreplace(debug_info_key, 1, Options6, eSync:getDIK()), + Options7 = lists:keyreplace(debug_info_key, 1, Options6, debugInfoKeyFun()), {ok, Options7} catch ExType:Error -> logWarnings("~p:0: ~p looking for options: ~p. ~n", [Module, ExType, Error]), @@ -100,7 +101,7 @@ tryGetModOptions(Module) -> Options5 = maybeAddCompileInfo(Options4), %% add filetype to options (DTL, LFE, erl, etc) Options6 = addFileType(Module, Options5), - Options7 = lists:keyreplace(debug_info_key, 1, Options6, eSync:getDIK()), + Options7 = lists:keyreplace(debug_info_key, 1, Options6, debugInfoKeyFun()), {ok, Options7} catch _ExType:_Error -> undefiend @@ -1012,4 +1013,12 @@ dateTimeToSec(DateTime) -> 0; true -> erlang:universaltime_to_posixtime(DateTime) + end. + +debugInfoKeyFun() -> + case ?esCfgSync:getv(?debugInfoKeyFun) of + undefined -> + {debug_info_key, undefined}; + {Mod, Fun} -> + Mod:Fun() end. \ No newline at end of file