diff --git a/src/core/Boss.Modules.PackageProcessor.pas b/src/core/Boss.Modules.PackageProcessor.pas index c42e07e..839dbf2 100644 --- a/src/core/Boss.Modules.PackageProcessor.pas +++ b/src/core/Boss.Modules.PackageProcessor.pas @@ -86,19 +86,23 @@ function TBossPackageProcessor.GetEnv(AEnv: string): string; procedure TBossPackageProcessor.MakeLink(AProjectPath, AEnv: string); var LCommand: PChar; + LFile: string; begin - System.TMonitor.Enter(Self); try if DirectoryExists(GetEnv(AEnv)) then TFile.Delete(GetEnv(AEnv)); - LCommand := PChar(Format('cmd /c mklink /D /J "%0:s" "%1:s"', - [GetEnv(AEnv), AProjectPath + TPath.DirectorySeparatorChar + C_MODULES_FOLDER + '.' + AEnv])); - ExecuteAndWait(LCommand); + + ForceDirectories(GetEnv(AEnv)); + + for LFile in TDirectory.GetFiles(AProjectPath + TPath.DirectorySeparatorChar + C_MODULES_FOLDER + '.' + AEnv) do + begin + TFile.Copy(LFile, TPath.Combine(GetEnv(AEnv), TPath.GetFileName(LFile)), True); + end; + except on E: Exception do TProviderMessage.GetInstance.WriteLn('Failed on make link: ' + E.Message); end; - System.TMonitor.Exit(Self); end; constructor TBossPackageProcessor.Create; @@ -110,6 +114,12 @@ constructor TBossPackageProcessor.Create; if FileExists(GetDataCachePath) then FDataFile.LoadFromFile(GetDataCachePath); + if not FDataFile.Values[BPLS].IsEmpty then + begin + FDataFile.Delimiter := ';'; + FDataFile.DelimitedText := FDataFile.Values[BPLS]; + end; + if DirectoryExists(GetEnv(EmptyStr)) then ForceDirectories(GetEnv(EmptyStr));