Skip to content
This repository was archived by the owner on Oct 22, 2021. It is now read-only.
This repository was archived by the owner on Oct 22, 2021. It is now read-only.

On Case-Insensitive FS, using libraries with unmatched Sketch name case breaks the IDE at launch #418

Closed
@ubidefeo

Description

@ubidefeo

Describe the bug
Only applies to Mac OS with Case-Insensitive HFS+ / APFS or other case insensitive File Systems (basically nowhere else)

If one or more libraries contain Sketch examples whose names have case mismatch with the containing folder,
the IDE breaks at launch while trying to populate the File > Examples menu.

To Reproduce
Steps to reproduce the behavior:

  1. On Mac OS install the library WiFiManager or M5Stack for ESP32/8266
  2. (re)launch the IDE
  3. The process will be interrupted

Expected behavior
As it happens for Sketches, when the Sketch folder and the Sketch .ino files are not an exact match (in case) the Sketch should be ignored.
To test this, try opening a random sketch from your Sketchbook folder into your Finder, change the case of only one letter of either the Sketch folder name or the .ino file name and (re)launch the IDE.
This sketch will no more be available in your File>Sketchbook list

Screenshots
n/a

Desktop (please complete the following information):

  • OS: Mac OS Mojave with Case-Insensitive FS (default setting for legacy reasons)
  • Version: 0.1.3-nightly-20210204

Additional context
This is a CLI related issue, because CLI returns the sketch list to the gRPC interface.
My guess is that the Go Path module find the folder name, checks to see if a .ino file with the same name is contained and returns true wether or not the case of the Sketch .ino name is an exact match with the folder name.
The sketch is then assumed to be valid and made available to the IDE for menu item.
When the IDE tries to load the Sketch name it fails to move forward because it expects an exact name (case-sensitive)
arduino/arduino-cli#1174

Metadata

Metadata

Assignees

Labels

topic: CLIAnything that has to implemented on the CLI side firsttype: imperfectionSomething isn't working

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions