Closed
Description
According to the man page
arduino [FILE.ino…]
"A single .ino file should be given. If the sketch contains multiple .ino files, any one can be specified on the commandline, but the entire sketch will be compiled."
It says nothing about requiring an absolute path. It is convenient and reasonable to assume, given just a sketch file name, arduino will look in the sketchbook for a folder with the same name as sketch minus .ino, then look for the sketch and use it. It does not.
slo@sloNano:~$ arduino --version
Arduino: 1.8.10
slo@sloNano:~$ arduino --get-pref sketchbook.path
/home/slo/Arduino
slo@sloNano:~$ arduino --verify /home/slo/Arduino/Blink/Blink.ino
Verifying...
Sketch uses 12160 bytes (0%) of program storage space. Maximum is 2031616 bytes.
Global variables use 18528 bytes (1%) of dynamic memory, leaving 1030048 bytes for local
variables. Maximum is 1048576 bytes.
slo@sloNano:~$ arduino --verify Blink.ino
Verifying...
java.io.IOException: No valid code files found
at processing.app.Sketch.listSketchFiles(Sketch.java:117)
at processing.app.Sketch.<init>(Sketch.java:54)
at processing.app.Base.<init>(Base.java:415)
at processing.app.Base.main(Base.java:150)
java.io.IOException: Stream closed
at java.io.BufferedInputStream.getBufIfOpen(BufferedInputStream.java:170)
at java.io.BufferedInputStream.read(BufferedInputStream.java:336)
at com.fasterxml.jackson.core.json.ByteSourceJsonBootstrapper.ensureLoaded(ByteSourceJsonBootstrapper.java:522)
at com.fasterxml.jackson.core.json.ByteSourceJsonBootstrapper.detectEncoding(ByteSourceJsonBootstrapper.java:150)
at com.fasterxml.jackson.core.json.ByteSourceJsonBootstrapper.constructParser(ByteSourceJsonBootstrapper.java:246)
at com.fasterxml.jackson.core.JsonFactory._createParser(JsonFactory.java:1315)
at com.fasterxml.jackson.core.JsonFactory.createParser(JsonFactory.java:820)
at cc.arduino.packages.discoverers.PluggableDiscovery.run(PluggableDiscovery.java:80)
at java.lang.Thread.run(Thread.java:748)