Description
Bug Report
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 example is considered to be valid, but the IDE breaks because unable to find the file (strict case rules)
To Reproduce
- Install
WiFiManager
and/orM5Stack
libraries - list examples
- check that all examples will be available
Current behavior
arduino-cli lib examples WiFiManager
the output will be
Examples for library WiFiManager
- /data/Dropbox/AppsDocuments/Arduino2/libraries/WiFiManager/examples/Advanced
- /data/Dropbox/AppsDocuments/Arduino2/libraries/WiFiManager/examples/AutoConnect/AutoConnectWithFeedbackLED
- /data/Dropbox/AppsDocuments/Arduino2/libraries/WiFiManager/examples/AutoConnect/AutoConnectWithFSParameters
- /data/Dropbox/AppsDocuments/Arduino2/libraries/WiFiManager/examples/AutoConnect/AutoConnectWithFSParametersAndCustomIP
- /data/Dropbox/AppsDocuments/Arduino2/libraries/WiFiManager/examples/Basic
- /data/Dropbox/AppsDocuments/Arduino2/libraries/WiFiManager/examples/DEV/OnDemandConfigPortal
- /data/Dropbox/AppsDocuments/Arduino2/libraries/WiFiManager/examples/NonBlocking/AutoConnectNonBlocking
- /data/Dropbox/AppsDocuments/Arduino2/libraries/WiFiManager/examples/NonBlocking/AutoConnectNonBlockingwParams
- /data/Dropbox/AppsDocuments/Arduino2/libraries/WiFiManager/examples/NonBlocking/OnDemandNonBlocking
- /data/Dropbox/AppsDocuments/Arduino2/libraries/WiFiManager/examples/Old_examples/AutoConnectWithFeedback
- /data/Dropbox/AppsDocuments/Arduino2/libraries/WiFiManager/examples/Old_examples/AutoConnectWithReset
- /data/Dropbox/AppsDocuments/Arduino2/libraries/WiFiManager/examples/Old_examples/AutoConnectWithStaticIP
- /data/Dropbox/AppsDocuments/Arduino2/libraries/WiFiManager/examples/Old_examples/AutoConnectWithTimeout
- /data/Dropbox/AppsDocuments/Arduino2/libraries/WiFiManager/examples/OnDemand/OnDemandConfigPortal
- /data/Dropbox/AppsDocuments/Arduino2/libraries/WiFiManager/examples/OnDemand/OnDemandWebPortal
- /data/Dropbox/AppsDocuments/Arduino2/libraries/WiFiManager/examples/ParamsChildClass
- /data/Dropbox/AppsDocuments/Arduino2/libraries/WiFiManager/examples/Tests
the listed example /data/Dropbox/AppsDocuments/Arduino2/libraries/WiFiManager/examples/OnDemand/OnDemandWebPortal
should not be present, because the .ino
file name has a case mismatch on the filename initial o
: onDemandWebPortal
vs OnDemandWebPortal
Essentially when listing examples and traversing the tree, the CLI queries the file system to check wether a file name OnDemandWebPortal
with extension .ino
is present, and the Mac OS FS returns true, because for this FS MYweirdFile
is equal to myWEIRDfile
.
Expected behavior
The CLI should ALWAYS test for exact case match, not rely on the weird user-accommodating File System
Environment
- CLI version 0.15.0
- OS and platform: Mac OS Mojave
Additional context
This issue causes the bug in arduino/arduino-pro-ide#418