platformio / platform-ststm8

ST STM8: development platform for PlatformIO
https://registry.platformio.org/platforms/platformio/ststm8
Apache License 2.0
40 stars 26 forks source link

'pio boards' fails if a board without openocd_target exists in boards directory #59

Open janhrach opened 1 year ago

janhrach commented 1 year ago

Hi,

$ pio boards 
Error: Traceback (most recent call last):
  File "/home/petka/.platformio/penv/lib/python3.8/site-packages/platformio/__main__.py", line 102, in main
    cli()  # pylint: disable=no-value-for-parameter
  File "/home/petka/.platformio/penv/lib/python3.8/site-packages/click/core.py", line 1130, in __call__
    return self.main(*args, **kwargs)
  File "/home/petka/.platformio/penv/lib/python3.8/site-packages/click/core.py", line 1055, in main
    rv = self.invoke(ctx)
  File "/home/petka/.platformio/penv/lib/python3.8/site-packages/platformio/cli.py", line 71, in invoke
    return super().invoke(ctx)
  File "/home/petka/.platformio/penv/lib/python3.8/site-packages/click/core.py", line 1657, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/home/petka/.platformio/penv/lib/python3.8/site-packages/click/core.py", line 1404, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/home/petka/.platformio/penv/lib/python3.8/site-packages/click/core.py", line 760, in invoke
    return __callback(*args, **kwargs)
  File "/home/petka/.platformio/penv/lib/python3.8/site-packages/platformio/commands/boards.py", line 34, in cli
    for board in _get_boards(installed):
  File "/home/petka/.platformio/penv/lib/python3.8/site-packages/platformio/commands/boards.py", line 75, in _get_boards
    return pm.get_installed_boards() if installed else pm.get_all_boards()
  File "/home/petka/.platformio/penv/lib/python3.8/site-packages/platformio/package/manager/platform.py", line 124, in get_all_boards
    boards = self.get_installed_boards()
  File "/home/petka/.platformio/penv/lib/python3.8/site-packages/platformio/util.py", line 56, in wrapper
    self.cache[key] = (time.time(), func(*args, **kwargs))
  File "/home/petka/.platformio/penv/lib/python3.8/site-packages/platformio/package/manager/platform.py", line 112, in get_installed_boards
    for config in p.get_boards().values():
  File "/home/petka/.platformio/platforms/ststm8/platform.py", line 33, in get_boards
    result[key] = self._add_default_debug_tools(result[key])
  File "/home/petka/.platformio/platforms/ststm8/platform.py", line 53, in _add_default_debug_tools
    assert debug.get("openocd_target"), (
AssertionError: Missing target configuration for sparkfun_promicro16

Here is a diff that fixes it for me:

diff ~/.platformio/platforms/ststm8/platform.py{_orig,}
45a46,47
>             if link not in upload_protocols or link in debug["tools"]:
>                 continue