From 17ee77fb332eeef1cf1cc43e700f1aaa2b1780c9 Mon Sep 17 00:00:00 2001 From: SisMaker <1713699517@qq.com> Date: Sun, 8 Nov 2020 00:27:18 +0800 Subject: [PATCH] =?UTF-8?q?src=20=E5=8C=B9=E9=85=8D=E8=8E=B7=E5=8F=96?= =?UTF-8?q?=E4=BC=98=E5=8C=96=E6=94=B9=E5=8A=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/sync/esUtils.erl | 32 ++++++++++++++++++++++++++++++-- 1 file changed, 30 insertions(+), 2 deletions(-) diff --git a/src/sync/esUtils.erl b/src/sync/esUtils.erl index b2b20f4..95f964f 100644 --- a/src/sync/esUtils.erl +++ b/src/sync/esUtils.erl @@ -218,6 +218,22 @@ determineIncludeDirFromBeamDir(IncludeBase, IncludeDir, BeamDir) -> end end. +%% get the src dir +getRootSrcDirFromSrcDir(SrcDir) -> + NewDirName = filename:dirname(SrcDir), + BaseName = filename:basename(SrcDir), + case BaseName of + ?rootSrcDir -> + NewDirName; + _ -> + case NewDirName =/= SrcDir of + true -> + getRootSrcDirFromSrcDir(NewDirName); + _ -> + undefined + end + end. + %% Then we dig back through the parent directories until we find our include directory findIncludeDirFromAncestors(Cwd, Cwd, _) -> undefined; findIncludeDirFromAncestors("/", _, _) -> undefined; @@ -361,7 +377,13 @@ collSrcFiles(IsAddPath) -> true -> case isDelDir(DelSrcDirs, OneFiles) of false -> - [RootSrcDir | _Other] = binary:split(OneFiles, ?rootSrcDir), + RootSrcDir = + case getRootSrcDirFromSrcDir(OneFiles) of + undefined -> + filename:dirname(OneFiles); + RetSrcDir -> + RetSrcDir + end, case getOptions(RootSrcDir) of undefined -> Mod = binary_to_atom(filename:basename(OneFiles, filename:extension(OneFiles))), @@ -711,7 +733,13 @@ reloadIfNecessary(Module, OldBinary, Binary, Filename) -> recompileSrcFile(SrcFile, SwSyncNode) -> %% Get the module, src dir, and options... - [RootSrcDir | _Other] = binary:split(SrcFile, ?rootSrcDir), + RootSrcDir = + case getRootSrcDirFromSrcDir(SrcFile) of + undefined -> + filename:dirname(SrcFile); + RetSrcDir -> + RetSrcDir + end, CurSrcDir = filename:dirname(SrcFile), {CompileFun, Module} = getCompileFunAndModuleName(SrcFile), {OldBinary, Filename} = getObjectCode(Module),