Skip to content

Commit

Permalink
fix: properly updating toolchain list after tools installation (#842)
Browse files Browse the repository at this point in the history
  • Loading branch information
sigmaaa authored Oct 27, 2023
1 parent b152760 commit de91c43
Showing 1 changed file with 26 additions and 14 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -146,13 +146,10 @@ public void initToolChain(IToolChainManager manager, IToolChainProvider toolchai

public File findDebugger(String target)
{
return toolchainElements
.values()
.stream()
.filter(espToolChainElement -> espToolChainElement.name.equals(target))
.map(espToolChainElement -> findToolChain(getAllPaths(), espToolChainElement.debuggerPattern))
.findFirst()
.orElse(null);
return toolchainElements.values().stream()
.filter(espToolChainElement -> espToolChainElement.name.equals(target))
.map(espToolChainElement -> findToolChain(getAllPaths(), espToolChainElement.debuggerPattern))
.findFirst().orElse(null);
}

public File findToolChain(List<String> paths, String filePattern)
Expand All @@ -174,10 +171,7 @@ public File findToolChain(List<String> paths, String filePattern)

private Path[] getDirectories(String path)
{
return Arrays.stream(path.split(File.pathSeparator))
.map(String::trim)
.map(Paths::get)
.toArray(Path[]::new);
return Arrays.stream(path.split(File.pathSeparator)).map(String::trim).map(Paths::get).toArray(Path[]::new);
}

private File findMatchingFile(Path dir, String filePattern)
Expand All @@ -204,7 +198,6 @@ private File findMatchingFile(Path dir, String filePattern)
return null;
}


public void removePrevInstalledToolchains(IToolChainManager manager)
{
try
Expand All @@ -224,17 +217,36 @@ private void addToolChain(IToolChainManager manager, IToolChainProvider toolchai
{
try
{
if (!isToolChainExist(manager, toolChainElement))
if (isToolChainExist(manager, toolChainElement))
{
manager.addToolChain(new ESPToolchain(toolchainProvider, compilerFile.toPath(), toolChainElement));
removeMatchedToolChain(manager, toolChainElement);
}

manager.addToolChain(new ESPToolchain(toolchainProvider, compilerFile.toPath(), toolChainElement));
}
catch (CoreException e)
{
CCorePlugin.log(e.getStatus());
}
}

private void removeMatchedToolChain(IToolChainManager manager, ESPToolChainElement toolChainElement)
{
Map<String, String> props = new HashMap<>();
props.put(IToolChain.ATTR_OS, toolChainElement.name);
props.put(IToolChain.ATTR_ARCH, toolChainElement.arch);
props.put(TOOLCHAIN_ATTR_ID, toolChainElement.fileName);
try
{
manager.getToolChainsMatching(props).forEach(toolchain -> manager.removeToolChain(toolchain));
}
catch (CoreException e)
{
Logger.log(e);
}

}

private boolean isToolChainExist(IToolChainManager manager, ESPToolChainElement toolChainElement)
throws CoreException
{
Expand Down

0 comments on commit de91c43

Please sign in to comment.