Skip to content

Commit f59c54b

Browse files
authored
refactor no need for install folder / entry
1 parent 4284c61 commit f59c54b

File tree

1 file changed

+13
-13
lines changed

1 file changed

+13
-13
lines changed

platform.py

+13-13
Original file line numberDiff line numberDiff line change
@@ -45,15 +45,13 @@ def configure_default_packages(self, variables, targets):
4545
frameworks = variables.get("pioframework", [])
4646

4747
def install_tool(TOOL):
48-
INSTALL_TOOL = "install-" + TOOL.split('-', 1)[-1]
49-
self.packages[INSTALL_TOOL]["optional"] = False
50-
INSTALL_TOOL_PATH = os.path.join(ProjectConfig.get_instance().get("platformio", "packages_dir"), INSTALL_TOOL)
48+
self.packages[TOOL]["optional"] = False
5149
TOOL_PATH = os.path.join(ProjectConfig.get_instance().get("platformio", "packages_dir"), TOOL)
5250
TOOL_PACKAGE_PATH = os.path.join(TOOL_PATH, "package.json")
5351
TOOLS_PATH_DEFAULT = os.path.join(os.path.expanduser("~"), ".platformio")
5452
IDF_TOOLS = os.path.join(ProjectConfig.get_instance().get("platformio", "packages_dir"), "tl-install", "tools", "idf_tools.py")
55-
TOOLS_JSON_PATH = os.path.join(INSTALL_TOOL_PATH, "tools.json")
56-
TOOLS_PACK_PATH = os.path.join(INSTALL_TOOL_PATH, "package.json")
53+
TOOLS_JSON_PATH = os.path.join(TOOL_PATH, "tools.json")
54+
TOOLS_PIO_PATH = os.path.join(TOOL_PATH, ".piopm")
5755
IDF_TOOLS_CMD = (
5856
python_exe,
5957
IDF_TOOLS,
@@ -66,22 +64,26 @@ def install_tool(TOOL):
6664

6765
tl_flag = bool(os.path.exists(IDF_TOOLS))
6866
json_flag = bool(os.path.exists(TOOLS_JSON_PATH))
69-
tool_flag = bool(os.path.exists(TOOL_PACKAGE_PATH))
70-
if tl_flag and json_flag and not tool_flag:
67+
pio_flag = bool(os.path.exists(TOOLS_PIO_PATH))
68+
if tl_flag and json_flag:
7169
rc = subprocess.run(IDF_TOOLS_CMD).returncode
7270
if rc != 0:
7371
sys.stderr.write("Error: Couldn't execute 'idf_tools.py install'\n")
7472
else:
7573
tl_path = "file://" + join(TOOLS_PATH_DEFAULT, "tools", TOOL)
7674
if not os.path.exists(join(TOOLS_PATH_DEFAULT, "tools", TOOL, "package.json")):
77-
shutil.copyfile(TOOLS_PACK_PATH, join(TOOLS_PATH_DEFAULT, "tools", TOOL, "package.json"))
75+
shutil.copyfile(TOOL_PACKAGE_PATH, join(TOOLS_PATH_DEFAULT, "tools", TOOL, "package.json"))
76+
self.packages.pop(TOOL, None)
77+
if os.path.exists(TOOL_PATH,) and os.path.isdir(TOOL_PATH):
78+
try:
79+
shutil.rmtree(TOOL_PATH)
80+
except Exception as e:
81+
print(f"Error while removing the tool folder: {e}")
7882
pm.install(tl_path)
79-
self.packages[INSTALL_TOOL]["optional"] = True
8083
# tool is already installed, just activate it
81-
if tl_flag and json_flag and tool_flag:
84+
if tl_flag and pio_flag and not json_flag:
8285
self.packages[TOOL]["version"] = TOOL_PATH
8386
self.packages[TOOL]["optional"] = False
84-
self.packages[INSTALL_TOOL]["optional"] = True
8587

8688
return
8789

@@ -140,8 +142,6 @@ def install_tool(TOOL):
140142
for gdb_package in ("tool-xtensa-esp-elf-gdb", "tool-riscv32-esp-elf-gdb"):
141143
self.packages[gdb_package]["optional"] = False
142144
install_tool("tool-openocd-esp32")
143-
else:
144-
self.packages["install-openocd-esp32"]["optional"] = True
145145

146146
# Common packages for IDF and mixed Arduino+IDF projects
147147
if "espidf" in frameworks:

0 commit comments

Comments
 (0)