├── docs ├── img │ └── icon_mac_light.png ├── installation.md ├── index.md └── deprecated.md ├── firmwares ├── NINA │ ├── 1.0.0 │ │ └── NINA.bin │ ├── 1.1.0 │ │ └── NINA.bin │ ├── 1.2.1 │ │ ├── NINA.bin │ │ └── NINA-arduino.megaavr.uno2018.bin │ ├── 1.2.2 │ │ ├── NINA.bin │ │ └── NINA-arduino.megaavr.uno2018.bin │ ├── 1.2.3 │ │ ├── NINA.bin │ │ └── NINA-arduino.megaavr.uno2018.bin │ ├── 1.2.4 │ │ ├── NINA.bin │ │ └── NINA-arduino.megaavr.uno2018.bin │ ├── 1.3.0 │ │ ├── NINA.bin │ │ └── NINA-arduino.megaavr.uno2018.bin │ ├── 1.4.0 │ │ ├── NINA.bin │ │ └── NINA-arduino.megaavr.uno2018.bin │ ├── 1.4.1 │ │ ├── NINA.bin │ │ └── NINA-arduino.megaavr.uno2018.bin │ ├── 1.4.2 │ │ ├── NINA.bin │ │ └── NINA-arduino.megaavr.uno2018.bin │ ├── 1.4.3 │ │ ├── NINA.bin │ │ └── NINA-arduino.megaavr.uno2018.bin │ ├── 1.4.4 │ │ ├── NINA.bin │ │ └── NINA-arduino.megaavr.uno2018.bin │ ├── 1.4.5 │ │ ├── NINA.bin │ │ ├── NINA-arduino.megaavr.uno2018.bin │ │ └── NINA-arduino.mbed_nano.nanorp2040connect.bin │ ├── 1.4.6 │ │ ├── NINA.bin │ │ ├── NINA-arduino.megaavr.uno2018.bin │ │ └── NINA-arduino.mbed_nano.nanorp2040connect.bin │ ├── 1.4.7 │ │ ├── NINA.bin │ │ ├── NINA-arduino.megaavr.uno2018.bin │ │ └── NINA-arduino.mbed_nano.nanorp2040connect.bin │ ├── 1.4.8 │ │ ├── NINA.bin │ │ ├── NINA-arduino.megaavr.uno2018.bin │ │ └── NINA-arduino.mbed_nano.nanorp2040connect.bin │ ├── 1.5.0 │ │ ├── NINA.bin │ │ ├── NINA-arduino.megaavr.uno2018.bin │ │ └── NINA-arduino.mbed_nano.nanorp2040connect.bin │ ├── 1.6.0 │ │ ├── NINA.bin │ │ ├── NINA-arduino.megaavr.uno2018.bin │ │ └── NINA-arduino.mbed_nano.nanorp2040connect.bin │ └── 2.0.0 │ │ ├── NINA.bin │ │ ├── NINA-arduino.megaavr.uno2018.bin │ │ └── NINA-arduino.mbed_nano.nanorp2040connect.bin ├── ESP32-C3 │ └── 1.5.0 │ │ └── ESP32-C3.bin └── ESP32-S3 │ ├── 0.1.0 │ └── ESP32-S3.bin │ ├── 0.2.0 │ └── ESP32-S3.bin │ ├── 0.2.1 │ └── ESP32-S3.bin │ ├── 0.3.0 │ └── ESP32-S3.bin │ ├── 0.4.1 │ └── ESP32-S3.bin │ ├── 0.5.2 │ └── ESP32-S3.bin │ └── 0.6.0 │ └── ESP32-S3.bin ├── indexes ├── testdata │ └── package_index.json.sig ├── download │ └── testdata │ │ ├── package_index.json.sig │ │ └── plugin_firmware_index.json.sig ├── firmwareindex │ ├── testdata │ │ └── plugin_firmware_index.json.sig │ └── firmwareindex_test.go └── indexes_test.go ├── cli ├── globals │ ├── keys │ │ └── plugin_firmware_index_public.gpg.key │ └── globals.go ├── certificates │ └── certificates.go ├── firmware │ ├── firmware.go │ ├── list.go │ └── getversion.go ├── arguments │ └── arguments.go └── version │ └── version.go ├── package.json ├── .markdownlintignore ├── .prettierrc ├── .markdown-link-check.json ├── .prettierignore ├── .gitignore ├── test ├── pytest.ini ├── test_main.py └── conftest.py ├── .ecrc ├── certificates └── certutils_test.go ├── .flake8 ├── pyproject.toml ├── .github ├── dependabot.yml ├── ISSUE_TEMPLATE │ ├── config.yml │ ├── feature-request.yml │ └── bug-report.yml └── workflows │ ├── generate-index.yml │ ├── check-mkdocs-task.yml │ ├── check-general-formatting-task.yml │ └── test-go-integration-task.yml ├── main.go ├── .licenses └── arduino-fwuploader │ └── go │ ├── github.com │ ├── mailru │ │ ├── easyjson.dep.yml │ │ └── easyjson │ │ │ ├── jwriter.dep.yml │ │ │ ├── jlexer.dep.yml │ │ │ └── buffer.dep.yml │ ├── spf13 │ │ ├── viper.dep.yml │ │ ├── jwalterweatherman.dep.yml │ │ ├── cast.dep.yml │ │ └── pflag.dep.yml │ ├── mattn │ │ ├── go-isatty.dep.yml │ │ ├── go-colorable.dep.yml │ │ └── go-runewidth.dep.yml │ ├── josharian │ │ └── intern.dep.yml │ ├── h2non │ │ ├── filetype.dep.yml │ │ └── filetype │ │ │ ├── types.dep.yml │ │ │ ├── matchers.dep.yml │ │ │ └── matchers │ │ │ └── isobmff.dep.yml │ ├── subosito │ │ └── gotenv.dep.yml │ ├── codeclysm │ │ └── extract │ │ │ └── v3.dep.yml │ ├── sirupsen │ │ └── logrus.dep.yml │ ├── rivo │ │ └── uniseg.dep.yml │ ├── rifflock │ │ └── lfshook.dep.yml │ ├── leonelquinteros │ │ ├── gotext.dep.yml │ │ └── gotext │ │ │ └── plurals.dep.yml │ ├── mitchellh │ │ └── mapstructure.dep.yml │ ├── fatih │ │ └── color.dep.yml │ ├── cmaglie │ │ └── pb.dep.yml │ ├── pkg │ │ └── errors.dep.yml │ ├── ulikunitz │ │ ├── xz.dep.yml │ │ └── xz │ │ │ ├── internal │ │ │ ├── hash.dep.yml │ │ │ └── xlog.dep.yml │ │ │ └── lzma.dep.yml │ ├── golang │ │ └── protobuf │ │ │ ├── ptypes │ │ │ ├── any.dep.yml │ │ │ ├── duration.dep.yml │ │ │ └── timestamp.dep.yml │ │ │ ├── proto.dep.yml │ │ │ ├── ptypes.dep.yml │ │ │ └── jsonpb.dep.yml │ ├── pmylund │ │ └── sortutil.dep.yml │ └── magiconair │ │ └── properties.dep.yml │ ├── go.bug.st │ ├── cleanup.dep.yml │ ├── downloader │ │ └── v2.dep.yml │ └── relaxed-semver.dep.yml │ ├── golang.org │ └── x │ │ ├── net │ │ ├── http2.dep.yml │ │ └── trace.dep.yml │ │ ├── text │ │ └── runes.dep.yml │ │ ├── crypto │ │ ├── cast5.dep.yml │ │ ├── openpgp.dep.yml │ │ └── openpgp │ │ │ ├── armor.dep.yml │ │ │ └── errors.dep.yml │ │ ├── term.dep.yml │ │ └── sys │ │ └── unix.dep.yml │ └── google.golang.org │ └── protobuf │ ├── internal │ ├── impl.dep.yml │ └── encoding │ │ └── json.dep.yml │ ├── types │ ├── descriptorpb.dep.yml │ ├── gofeaturespb.dep.yml │ └── known │ │ └── wrapperspb.dep.yml │ └── proto.dep.yml ├── flasher └── flasher.go ├── .editorconfig ├── docsgen └── main.go ├── .markdownlint.yml ├── version └── version.go ├── mkdocs.yml ├── README.md ├── .licensed.yml ├── go.mod ├── generator └── new_boards.json └── extras └── package_index.json.template /docs/img/icon_mac_light.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arduino/arduino-fwuploader/HEAD/docs/img/icon_mac_light.png -------------------------------------------------------------------------------- /firmwares/NINA/1.0.0/NINA.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arduino/arduino-fwuploader/HEAD/firmwares/NINA/1.0.0/NINA.bin -------------------------------------------------------------------------------- /firmwares/NINA/1.1.0/NINA.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arduino/arduino-fwuploader/HEAD/firmwares/NINA/1.1.0/NINA.bin -------------------------------------------------------------------------------- /firmwares/NINA/1.2.1/NINA.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arduino/arduino-fwuploader/HEAD/firmwares/NINA/1.2.1/NINA.bin -------------------------------------------------------------------------------- /firmwares/NINA/1.2.2/NINA.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arduino/arduino-fwuploader/HEAD/firmwares/NINA/1.2.2/NINA.bin -------------------------------------------------------------------------------- /firmwares/NINA/1.2.3/NINA.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arduino/arduino-fwuploader/HEAD/firmwares/NINA/1.2.3/NINA.bin -------------------------------------------------------------------------------- /firmwares/NINA/1.2.4/NINA.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arduino/arduino-fwuploader/HEAD/firmwares/NINA/1.2.4/NINA.bin -------------------------------------------------------------------------------- /firmwares/NINA/1.3.0/NINA.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arduino/arduino-fwuploader/HEAD/firmwares/NINA/1.3.0/NINA.bin -------------------------------------------------------------------------------- /firmwares/NINA/1.4.0/NINA.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arduino/arduino-fwuploader/HEAD/firmwares/NINA/1.4.0/NINA.bin -------------------------------------------------------------------------------- /firmwares/NINA/1.4.1/NINA.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arduino/arduino-fwuploader/HEAD/firmwares/NINA/1.4.1/NINA.bin -------------------------------------------------------------------------------- /firmwares/NINA/1.4.2/NINA.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arduino/arduino-fwuploader/HEAD/firmwares/NINA/1.4.2/NINA.bin -------------------------------------------------------------------------------- /firmwares/NINA/1.4.3/NINA.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arduino/arduino-fwuploader/HEAD/firmwares/NINA/1.4.3/NINA.bin -------------------------------------------------------------------------------- /firmwares/NINA/1.4.4/NINA.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arduino/arduino-fwuploader/HEAD/firmwares/NINA/1.4.4/NINA.bin -------------------------------------------------------------------------------- /firmwares/NINA/1.4.5/NINA.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arduino/arduino-fwuploader/HEAD/firmwares/NINA/1.4.5/NINA.bin -------------------------------------------------------------------------------- /firmwares/NINA/1.4.6/NINA.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arduino/arduino-fwuploader/HEAD/firmwares/NINA/1.4.6/NINA.bin -------------------------------------------------------------------------------- /firmwares/NINA/1.4.7/NINA.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arduino/arduino-fwuploader/HEAD/firmwares/NINA/1.4.7/NINA.bin -------------------------------------------------------------------------------- /firmwares/NINA/1.4.8/NINA.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arduino/arduino-fwuploader/HEAD/firmwares/NINA/1.4.8/NINA.bin -------------------------------------------------------------------------------- /firmwares/NINA/1.5.0/NINA.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arduino/arduino-fwuploader/HEAD/firmwares/NINA/1.5.0/NINA.bin -------------------------------------------------------------------------------- /firmwares/NINA/1.6.0/NINA.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arduino/arduino-fwuploader/HEAD/firmwares/NINA/1.6.0/NINA.bin -------------------------------------------------------------------------------- /firmwares/NINA/2.0.0/NINA.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arduino/arduino-fwuploader/HEAD/firmwares/NINA/2.0.0/NINA.bin -------------------------------------------------------------------------------- /firmwares/ESP32-C3/1.5.0/ESP32-C3.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arduino/arduino-fwuploader/HEAD/firmwares/ESP32-C3/1.5.0/ESP32-C3.bin -------------------------------------------------------------------------------- /firmwares/ESP32-S3/0.1.0/ESP32-S3.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arduino/arduino-fwuploader/HEAD/firmwares/ESP32-S3/0.1.0/ESP32-S3.bin -------------------------------------------------------------------------------- /firmwares/ESP32-S3/0.2.0/ESP32-S3.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arduino/arduino-fwuploader/HEAD/firmwares/ESP32-S3/0.2.0/ESP32-S3.bin -------------------------------------------------------------------------------- /firmwares/ESP32-S3/0.2.1/ESP32-S3.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arduino/arduino-fwuploader/HEAD/firmwares/ESP32-S3/0.2.1/ESP32-S3.bin -------------------------------------------------------------------------------- /firmwares/ESP32-S3/0.3.0/ESP32-S3.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arduino/arduino-fwuploader/HEAD/firmwares/ESP32-S3/0.3.0/ESP32-S3.bin -------------------------------------------------------------------------------- /firmwares/ESP32-S3/0.4.1/ESP32-S3.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arduino/arduino-fwuploader/HEAD/firmwares/ESP32-S3/0.4.1/ESP32-S3.bin -------------------------------------------------------------------------------- /firmwares/ESP32-S3/0.5.2/ESP32-S3.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arduino/arduino-fwuploader/HEAD/firmwares/ESP32-S3/0.5.2/ESP32-S3.bin -------------------------------------------------------------------------------- /firmwares/ESP32-S3/0.6.0/ESP32-S3.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arduino/arduino-fwuploader/HEAD/firmwares/ESP32-S3/0.6.0/ESP32-S3.bin -------------------------------------------------------------------------------- /indexes/testdata/package_index.json.sig: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arduino/arduino-fwuploader/HEAD/indexes/testdata/package_index.json.sig -------------------------------------------------------------------------------- /indexes/download/testdata/package_index.json.sig: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arduino/arduino-fwuploader/HEAD/indexes/download/testdata/package_index.json.sig -------------------------------------------------------------------------------- /cli/globals/keys/plugin_firmware_index_public.gpg.key: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arduino/arduino-fwuploader/HEAD/cli/globals/keys/plugin_firmware_index_public.gpg.key -------------------------------------------------------------------------------- /firmwares/NINA/1.2.1/NINA-arduino.megaavr.uno2018.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arduino/arduino-fwuploader/HEAD/firmwares/NINA/1.2.1/NINA-arduino.megaavr.uno2018.bin -------------------------------------------------------------------------------- /firmwares/NINA/1.2.2/NINA-arduino.megaavr.uno2018.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arduino/arduino-fwuploader/HEAD/firmwares/NINA/1.2.2/NINA-arduino.megaavr.uno2018.bin -------------------------------------------------------------------------------- /firmwares/NINA/1.2.3/NINA-arduino.megaavr.uno2018.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arduino/arduino-fwuploader/HEAD/firmwares/NINA/1.2.3/NINA-arduino.megaavr.uno2018.bin -------------------------------------------------------------------------------- /firmwares/NINA/1.2.4/NINA-arduino.megaavr.uno2018.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arduino/arduino-fwuploader/HEAD/firmwares/NINA/1.2.4/NINA-arduino.megaavr.uno2018.bin -------------------------------------------------------------------------------- /firmwares/NINA/1.3.0/NINA-arduino.megaavr.uno2018.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arduino/arduino-fwuploader/HEAD/firmwares/NINA/1.3.0/NINA-arduino.megaavr.uno2018.bin -------------------------------------------------------------------------------- /firmwares/NINA/1.4.0/NINA-arduino.megaavr.uno2018.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arduino/arduino-fwuploader/HEAD/firmwares/NINA/1.4.0/NINA-arduino.megaavr.uno2018.bin -------------------------------------------------------------------------------- /firmwares/NINA/1.4.1/NINA-arduino.megaavr.uno2018.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arduino/arduino-fwuploader/HEAD/firmwares/NINA/1.4.1/NINA-arduino.megaavr.uno2018.bin -------------------------------------------------------------------------------- /firmwares/NINA/1.4.2/NINA-arduino.megaavr.uno2018.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arduino/arduino-fwuploader/HEAD/firmwares/NINA/1.4.2/NINA-arduino.megaavr.uno2018.bin -------------------------------------------------------------------------------- /firmwares/NINA/1.4.3/NINA-arduino.megaavr.uno2018.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arduino/arduino-fwuploader/HEAD/firmwares/NINA/1.4.3/NINA-arduino.megaavr.uno2018.bin -------------------------------------------------------------------------------- /firmwares/NINA/1.4.4/NINA-arduino.megaavr.uno2018.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arduino/arduino-fwuploader/HEAD/firmwares/NINA/1.4.4/NINA-arduino.megaavr.uno2018.bin -------------------------------------------------------------------------------- /firmwares/NINA/1.4.5/NINA-arduino.megaavr.uno2018.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arduino/arduino-fwuploader/HEAD/firmwares/NINA/1.4.5/NINA-arduino.megaavr.uno2018.bin -------------------------------------------------------------------------------- /firmwares/NINA/1.4.6/NINA-arduino.megaavr.uno2018.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arduino/arduino-fwuploader/HEAD/firmwares/NINA/1.4.6/NINA-arduino.megaavr.uno2018.bin -------------------------------------------------------------------------------- /firmwares/NINA/1.4.7/NINA-arduino.megaavr.uno2018.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arduino/arduino-fwuploader/HEAD/firmwares/NINA/1.4.7/NINA-arduino.megaavr.uno2018.bin -------------------------------------------------------------------------------- /firmwares/NINA/1.4.8/NINA-arduino.megaavr.uno2018.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arduino/arduino-fwuploader/HEAD/firmwares/NINA/1.4.8/NINA-arduino.megaavr.uno2018.bin -------------------------------------------------------------------------------- /firmwares/NINA/1.5.0/NINA-arduino.megaavr.uno2018.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arduino/arduino-fwuploader/HEAD/firmwares/NINA/1.5.0/NINA-arduino.megaavr.uno2018.bin -------------------------------------------------------------------------------- /firmwares/NINA/1.6.0/NINA-arduino.megaavr.uno2018.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arduino/arduino-fwuploader/HEAD/firmwares/NINA/1.6.0/NINA-arduino.megaavr.uno2018.bin -------------------------------------------------------------------------------- /firmwares/NINA/2.0.0/NINA-arduino.megaavr.uno2018.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arduino/arduino-fwuploader/HEAD/firmwares/NINA/2.0.0/NINA-arduino.megaavr.uno2018.bin -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "devDependencies": { 3 | "markdown-link-check": "^3.12.1", 4 | "markdownlint-cli": "^0.37.0", 5 | "prettier": "^3.3.3" 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /indexes/download/testdata/plugin_firmware_index.json.sig: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arduino/arduino-fwuploader/HEAD/indexes/download/testdata/plugin_firmware_index.json.sig -------------------------------------------------------------------------------- /indexes/firmwareindex/testdata/plugin_firmware_index.json.sig: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arduino/arduino-fwuploader/HEAD/indexes/firmwareindex/testdata/plugin_firmware_index.json.sig -------------------------------------------------------------------------------- /firmwares/NINA/1.4.5/NINA-arduino.mbed_nano.nanorp2040connect.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arduino/arduino-fwuploader/HEAD/firmwares/NINA/1.4.5/NINA-arduino.mbed_nano.nanorp2040connect.bin -------------------------------------------------------------------------------- /firmwares/NINA/1.4.6/NINA-arduino.mbed_nano.nanorp2040connect.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arduino/arduino-fwuploader/HEAD/firmwares/NINA/1.4.6/NINA-arduino.mbed_nano.nanorp2040connect.bin -------------------------------------------------------------------------------- /firmwares/NINA/1.4.7/NINA-arduino.mbed_nano.nanorp2040connect.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arduino/arduino-fwuploader/HEAD/firmwares/NINA/1.4.7/NINA-arduino.mbed_nano.nanorp2040connect.bin -------------------------------------------------------------------------------- /firmwares/NINA/1.4.8/NINA-arduino.mbed_nano.nanorp2040connect.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arduino/arduino-fwuploader/HEAD/firmwares/NINA/1.4.8/NINA-arduino.mbed_nano.nanorp2040connect.bin -------------------------------------------------------------------------------- /firmwares/NINA/1.5.0/NINA-arduino.mbed_nano.nanorp2040connect.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arduino/arduino-fwuploader/HEAD/firmwares/NINA/1.5.0/NINA-arduino.mbed_nano.nanorp2040connect.bin -------------------------------------------------------------------------------- /firmwares/NINA/1.6.0/NINA-arduino.mbed_nano.nanorp2040connect.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arduino/arduino-fwuploader/HEAD/firmwares/NINA/1.6.0/NINA-arduino.mbed_nano.nanorp2040connect.bin -------------------------------------------------------------------------------- /firmwares/NINA/2.0.0/NINA-arduino.mbed_nano.nanorp2040connect.bin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arduino/arduino-fwuploader/HEAD/firmwares/NINA/2.0.0/NINA-arduino.mbed_nano.nanorp2040connect.bin -------------------------------------------------------------------------------- /.markdownlintignore: -------------------------------------------------------------------------------- 1 | # Source: https://github.com/arduino/tooling-project-assets/blob/main/workflow-templates/assets/check-markdown/.markdownlintignore 2 | .licenses/ 3 | __pycache__/ 4 | node_modules/ 5 | -------------------------------------------------------------------------------- /.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "semi": false, 3 | "printWidth": 120, 4 | "overrides": [ 5 | { 6 | "files": "*.md", 7 | "options": { 8 | "proseWrap": "always" 9 | } 10 | } 11 | ] 12 | } 13 | -------------------------------------------------------------------------------- /.markdown-link-check.json: -------------------------------------------------------------------------------- 1 | { 2 | "httpHeaders": [ 3 | { 4 | "urls": ["https://docs.github.com/"], 5 | "headers": { 6 | "Accept-Encoding": "gzip, deflate, br" 7 | } 8 | } 9 | ], 10 | "retryOn429": true, 11 | "retryCount": 3, 12 | "aliveStatusCodes": [200, 206] 13 | } 14 | -------------------------------------------------------------------------------- /.prettierignore: -------------------------------------------------------------------------------- 1 | # IDE files 2 | .idea/ 3 | .vscode/ 4 | .vs/ 5 | .ionide/ 6 | 7 | indexes/download/testdata/plugin_firmware_index.json 8 | indexes/download/testdata/package_index.json 9 | indexes/firmwareindex/testdata/plugin_firmware_index.json 10 | indexes/testdata/package_index.json 11 | 12 | # Generated files 13 | /.licenses/ 14 | node_modules/ 15 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | /debug 2 | /arduino-fwuploader* 3 | !/arduino-fwuploader*/ 4 | /.vscode/ 5 | /node_modules/ 6 | .idea 7 | coverage_*.txt 8 | /dist 9 | __pycache__/ 10 | /generator/boards/ 11 | /generator/firmwares/ 12 | 13 | # Misc. 14 | .DS_Store 15 | 16 | # Mkdocs 17 | /site/ 18 | /docsgen/arduino-fwuploader 19 | /docsgen/arduino-fwuploader.exe 20 | /docs/commands/ 21 | -------------------------------------------------------------------------------- /test/pytest.ini: -------------------------------------------------------------------------------- 1 | # Source: https://github.com/arduino/tooling-project-assets/blob/main/workflow-templates/assets/test-python/pytest.ini 2 | [pytest] 3 | filterwarnings = 4 | error 5 | ignore::DeprecationWarning 6 | ignore::ResourceWarning 7 | 8 | # --capture=no - disable per-test capture 9 | # --tb=long sets the length of the traceback in case of failures 10 | addopts = --capture=no --tb=long --verbose 11 | -------------------------------------------------------------------------------- /.ecrc: -------------------------------------------------------------------------------- 1 | { 2 | "Exclude": [ 3 | "^indexes/download/testdata/plugin_firmware_index\\.json$", 4 | "^indexes/download/testdata/package_index\\.json$", 5 | "^indexes/testdata/package_index\\.json$", 6 | "^indexes/firmwareindex/testdata/plugin_firmware_index\\.json$", 7 | "^LICENSE\\.txt$", 8 | "^poetry\\.lock$", 9 | "^\\.licenses/", 10 | ".+\\.cer$", 11 | ".+\\.elf$", 12 | ".+\\.key$", 13 | ".+\\.sig$" 14 | ] 15 | } 16 | -------------------------------------------------------------------------------- /certificates/certutils_test.go: -------------------------------------------------------------------------------- 1 | package certificates_test 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/arduino/arduino-fwuploader/certificates" 7 | "github.com/stretchr/testify/require" 8 | ) 9 | 10 | func TestScrapeRootCertificatesFromURL(t *testing.T) { 11 | rootCerts, err := certificates.ScrapeRootCertificatesFromURL("www.arduino.cc:443") 12 | require.NoError(t, err) 13 | for _, cert := range rootCerts { 14 | require.Equal(t, cert.Issuer, cert.Subject) 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /.flake8: -------------------------------------------------------------------------------- 1 | # Source: https://github.com/arduino/tooling-project-assets/blob/main/workflow-templates/assets/check-python/.flake8 2 | # See: https://flake8.pycqa.org/en/latest/user/configuration.html 3 | # The code style defined in this file is the official standardized style to be used in all Arduino tooling projects and 4 | # should not be modified. 5 | 6 | [flake8] 7 | doctests = True 8 | # W503 and W504 are mutually exclusive. PEP 8 recommends line break before. 9 | ignore = W503 10 | max-complexity = 10 11 | max-line-length = 120 12 | select = E,W,F,C,N 13 | -------------------------------------------------------------------------------- /docs/installation.md: -------------------------------------------------------------------------------- 1 | ## Install 2 | 3 | You can download the Arduino Firmware Uploader directly from the GitHub release page: 4 | 5 | https://github.com/arduino/arduino-fwuploader/releases/latest 6 | 7 | ### How to build the tools from source file 8 | 9 | To build we use [task](https://taskfile.dev/) for simplicity. From the sources root directory run: 10 | 11 | ``` 12 | task dist:_ 13 | ``` 14 | 15 | Where could be one of: `macOS`,`Windows`,`Linux`. And : `32bit`, `64bit`, `ARMv6`, `ARMv7` or `ARM64` 16 | 17 | This will create the `arduino-fwuploader` executable. 18 | -------------------------------------------------------------------------------- /docs/index.md: -------------------------------------------------------------------------------- 1 | The Arduino Firmware Uploader is a tool made to update the firmware and/or add SSL certificates for any Arduino board 2 | equipped with ESP32-S3 or NINA Wi-Fi module. 3 | 4 | ## Installation 5 | 6 | You have several options to install the latest version of the Arduino Firmware Uploader on your system, see the 7 | [installation] page. 8 | 9 | ## Getting started 10 | 11 | Follow the [Usage guide] to see how to use the most common CLI commands. 12 | 13 | ## Plugins 14 | 15 | Read the [plugins] section to learn more on the topic. 16 | 17 | [installation]: installation.md 18 | [usage guide]: usage.md 19 | [plugins]: plugins.md 20 | -------------------------------------------------------------------------------- /pyproject.toml: -------------------------------------------------------------------------------- 1 | [tool.poetry] 2 | name = "arduino-fwuploader" 3 | version = "0.0.0" 4 | description = "arduino-fwuploader" 5 | authors = ["Arduino "] 6 | 7 | [tool.poetry.dependencies] 8 | python = "^3.8" 9 | semver = "^2.13.0" 10 | python-dateutil = "^2.8.1" 11 | 12 | [tool.poetry.dev-dependencies] 13 | flake8 = "^3.9.2" 14 | black = "^24.3" 15 | mkdocs = "^1.4.3" 16 | mkdocs-material = "^7.3.6" 17 | mdx-truly-sane-lists = "^1.3" 18 | GitPython = "^3.1.41" 19 | mike = "^1.1.2" 20 | pep8-naming = "^0.12.1" 21 | invoke = "^1.5.0" 22 | pytest = "^6.2.4" 23 | 24 | [tool.black] 25 | line-length = 120 26 | target-version = ["py38"] 27 | -------------------------------------------------------------------------------- /.github/dependabot.yml: -------------------------------------------------------------------------------- 1 | # See: https://docs.github.com/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file#about-the-dependabotyml-file 2 | version: 2 3 | 4 | updates: 5 | # Configure check for outdated GitHub Actions actions in workflows. 6 | # Source: https://github.com/arduino/tooling-project-assets/blob/main/workflow-templates/assets/dependabot/README.md 7 | # See: https://docs.github.com/code-security/dependabot/working-with-dependabot/keeping-your-actions-up-to-date-with-dependabot 8 | - package-ecosystem: github-actions 9 | directory: / # Check the repository's workflows under /.github/workflows/ 10 | schedule: 11 | interval: daily 12 | labels: 13 | - "topic: infrastructure" 14 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/config.yml: -------------------------------------------------------------------------------- 1 | # Source: https://github.com/arduino/tooling-project-assets/blob/main/issue-templates/template-choosers/general/config.yml 2 | # See: https://docs.github.com/communities/using-templates-to-encourage-useful-issues-and-pull-requests/configuring-issue-templates-for-your-repository#configuring-the-template-chooser 3 | 4 | blank_issues_enabled: true 5 | contact_links: 6 | - name: Learn about using this project 7 | url: https://arduino.github.io/arduino-fwuploader/dev/ 8 | about: Detailed usage documentation is available here. 9 | - name: Support request 10 | url: https://forum.arduino.cc/ 11 | about: We can help you out on the Arduino Forum! 12 | - name: Discuss development work on the project 13 | url: https://groups.google.com/a/arduino.cc/g/developers 14 | about: Arduino Developers Mailing List 15 | -------------------------------------------------------------------------------- /docs/deprecated.md: -------------------------------------------------------------------------------- 1 | # Deprecated boards 2 | 3 | ## MKR 1000 4 | 5 | The [Arduino MKR 1000] has been deprecated during the migration to the [plugin] system because the board has reached 6 | it's EOL state. If you wish to update the firmware it's still possible by using version [2.3.0] of the Arduino Firmware 7 | Uploader. 8 | 9 | ## MKR Vidor 4000 10 | 11 | The [Arduino MKR Vidor 4000] has been deprecated during the migration to the [plugin] system because the board has reached 12 | it's EOL state. If you wish to update the firmware it's still possible by using version [2.3.0] of the Arduino Firmware Uploader. 13 | 14 | [Arduino MKR 1000]: https://docs.arduino.cc/hardware/mkr-1000-wifi 15 | [Arduino MKR Vidor 4000]: https://docs.arduino.cc/hardware/mkr-vidor-4000 16 | [2.3.0]: https://github.com/arduino/arduino-fwuploader/releases/tag/2.3.0 17 | [plugin]: plugins.md 18 | -------------------------------------------------------------------------------- /main.go: -------------------------------------------------------------------------------- 1 | /* 2 | arduino-fwuploader 3 | Copyright (c) 2021 Arduino LLC. All right reserved. 4 | 5 | This program is free software: you can redistribute it and/or modify 6 | it under the terms of the GNU Affero General Public License as published 7 | by the Free Software Foundation, either version 3 of the License, or 8 | (at your option) any later version. 9 | 10 | This program is distributed in the hope that it will be useful, 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | GNU Affero General Public License for more details. 14 | 15 | You should have received a copy of the GNU Affero General Public License 16 | along with this program. If not, see . 17 | */ 18 | 19 | package main 20 | 21 | import ( 22 | "os" 23 | 24 | "github.com/arduino/arduino-fwuploader/cli" 25 | ) 26 | 27 | func main() { 28 | uploaderCmd := cli.NewCommand() 29 | if len(os.Args) == 1 { 30 | // Show help if user doesn't specify any parameter 31 | uploaderCmd.Help() 32 | os.Exit(1) 33 | } 34 | if err := uploaderCmd.Execute(); err != nil { 35 | os.Exit(1) 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /cli/certificates/certificates.go: -------------------------------------------------------------------------------- 1 | /* 2 | arduino-fwuploader 3 | Copyright (c) 2021 Arduino LLC. All right reserved. 4 | 5 | This program is free software: you can redistribute it and/or modify 6 | it under the terms of the GNU Affero General Public License as published 7 | by the Free Software Foundation, either version 3 of the License, or 8 | (at your option) any later version. 9 | 10 | This program is distributed in the hope that it will be useful, 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | GNU Affero General Public License for more details. 14 | 15 | You should have received a copy of the GNU Affero General Public License 16 | along with this program. If not, see . 17 | */ 18 | 19 | package certificates 20 | 21 | import ( 22 | "os" 23 | 24 | "github.com/spf13/cobra" 25 | ) 26 | 27 | func NewCommand() *cobra.Command { 28 | firmwareCmd := &cobra.Command{ 29 | Use: "certificates", 30 | Short: "Commands to operate on certificates.", 31 | Long: "A subset of commands to perform various certificates operations.", 32 | Example: " " + os.Args[0] + " certificates ...", 33 | } 34 | 35 | firmwareCmd.AddCommand(NewFlashCommand()) 36 | return firmwareCmd 37 | } 38 | -------------------------------------------------------------------------------- /cli/globals/globals.go: -------------------------------------------------------------------------------- 1 | /* 2 | arduino-fwuploader 3 | Copyright (c) 2021 Arduino LLC. All right reserved. 4 | 5 | This program is free software: you can redistribute it and/or modify 6 | it under the terms of the GNU Affero General Public License as published 7 | by the Free Software Foundation, either version 3 of the License, or 8 | (at your option) any later version. 9 | 10 | This program is distributed in the hope that it will be useful, 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | GNU Affero General Public License for more details. 14 | 15 | You should have received a copy of the GNU Affero General Public License 16 | along with this program. If not, see . 17 | */ 18 | 19 | package globals 20 | 21 | import ( 22 | "embed" 23 | 24 | "github.com/arduino/go-paths-helper" 25 | ) 26 | 27 | var ( 28 | PackageIndexGZURL = "https://downloads.arduino.cc/packages/package_index.json.gz" 29 | PluginFirmwareIndexGZURL = "https://downloads.arduino.cc/arduino-fwuploader/boards/plugin_firmware_index.json.gz" 30 | FwUploaderPath = paths.TempDir().Join("fwuploader") 31 | Verbose bool 32 | LogLevel string 33 | ) 34 | 35 | //go:embed keys/* 36 | var Keys embed.FS 37 | -------------------------------------------------------------------------------- /cli/firmware/firmware.go: -------------------------------------------------------------------------------- 1 | /* 2 | arduino-fwuploader 3 | Copyright (c) 2021 Arduino LLC. All right reserved. 4 | 5 | This program is free software: you can redistribute it and/or modify 6 | it under the terms of the GNU Affero General Public License as published 7 | by the Free Software Foundation, either version 3 of the License, or 8 | (at your option) any later version. 9 | 10 | This program is distributed in the hope that it will be useful, 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | GNU Affero General Public License for more details. 14 | 15 | You should have received a copy of the GNU Affero General Public License 16 | along with this program. If not, see . 17 | */ 18 | 19 | package firmware 20 | 21 | import ( 22 | "os" 23 | 24 | "github.com/spf13/cobra" 25 | ) 26 | 27 | func NewCommand() *cobra.Command { 28 | firmwareCmd := &cobra.Command{ 29 | Use: "firmware", 30 | Short: "Commands to operate on firmwares.", 31 | Long: "A subset of commands to perform various firmware operations.", 32 | Example: " " + os.Args[0] + " firmware ...", 33 | } 34 | 35 | firmwareCmd.AddCommand(NewFlashCommand()) 36 | firmwareCmd.AddCommand(newListCommand()) 37 | firmwareCmd.AddCommand(NewGetVersionCommand()) 38 | return firmwareCmd 39 | } 40 | -------------------------------------------------------------------------------- /indexes/indexes_test.go: -------------------------------------------------------------------------------- 1 | /* 2 | arduino-fwuploader 3 | Copyright (c) 2021 Arduino LLC. All right reserved. 4 | 5 | This program is free software: you can redistribute it and/or modify 6 | it under the terms of the GNU Affero General Public License as published 7 | by the Free Software Foundation, either version 3 of the License, or 8 | (at your option) any later version. 9 | 10 | This program is distributed in the hope that it will be useful, 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | GNU Affero General Public License for more details. 14 | 15 | You should have received a copy of the GNU Affero General Public License 16 | along with this program. If not, see . 17 | */ 18 | 19 | package indexes 20 | 21 | import ( 22 | "testing" 23 | 24 | "github.com/arduino/arduino-cli/arduino/cores/packagemanager" 25 | "github.com/arduino/arduino-fwuploader/cli/globals" 26 | "github.com/stretchr/testify/require" 27 | ) 28 | 29 | func TestGetPackageIndex(t *testing.T) { 30 | pmb := packagemanager.NewBuilder(nil, nil, nil, nil, "") 31 | err := GetPackageIndex(pmb, globals.PackageIndexGZURL) 32 | require.NoError(t, err) 33 | } 34 | 35 | func TestGetFirmwareIndex(t *testing.T) { 36 | index, err := GetFirmwareIndex(globals.PluginFirmwareIndexGZURL, true) 37 | require.NoError(t, err) 38 | require.NotNil(t, index) 39 | } 40 | -------------------------------------------------------------------------------- /.licenses/arduino-fwuploader/go/github.com/mailru/easyjson.dep.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: github.com/mailru/easyjson 3 | version: v0.7.7 4 | type: go 5 | summary: Package easyjson contains marshaler/unmarshaler interfaces and helper functions. 6 | homepage: https://pkg.go.dev/github.com/mailru/easyjson 7 | license: mit 8 | licenses: 9 | - sources: LICENSE 10 | text: | 11 | Copyright (c) 2016 Mail.Ru Group 12 | 13 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 14 | 15 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 16 | 17 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 18 | notices: [] 19 | -------------------------------------------------------------------------------- /.licenses/arduino-fwuploader/go/github.com/mailru/easyjson/jwriter.dep.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: github.com/mailru/easyjson/jwriter 3 | version: v0.7.7 4 | type: go 5 | summary: Package jwriter contains a JSON writer. 6 | homepage: https://pkg.go.dev/github.com/mailru/easyjson/jwriter 7 | license: mit 8 | licenses: 9 | - sources: easyjson@v0.7.7/LICENSE 10 | text: | 11 | Copyright (c) 2016 Mail.Ru Group 12 | 13 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 14 | 15 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 16 | 17 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 18 | notices: [] 19 | -------------------------------------------------------------------------------- /.licenses/arduino-fwuploader/go/github.com/mailru/easyjson/jlexer.dep.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: github.com/mailru/easyjson/jlexer 3 | version: v0.7.7 4 | type: go 5 | summary: Package jlexer contains a JSON lexer implementation. 6 | homepage: https://pkg.go.dev/github.com/mailru/easyjson/jlexer 7 | license: mit 8 | licenses: 9 | - sources: easyjson@v0.7.7/LICENSE 10 | text: | 11 | Copyright (c) 2016 Mail.Ru Group 12 | 13 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 14 | 15 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 16 | 17 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 18 | notices: [] 19 | -------------------------------------------------------------------------------- /cli/arguments/arguments.go: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright 2021 Arduino SA 3 | 4 | This program is free software: you can redistribute it and/or modify 5 | it under the terms of the GNU Affero General Public License as published 6 | by the Free Software Foundation, either version 3 of the License, or 7 | (at your option) any later version. 8 | 9 | This program is distributed in the hope that it will be useful, 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | GNU Affero General Public License for more details. 13 | 14 | You should have received a copy of the GNU Affero General Public License 15 | along with this program. If not, see . 16 | */ 17 | 18 | package arguments 19 | 20 | import ( 21 | "github.com/spf13/cobra" 22 | ) 23 | 24 | // Flags contains various common flags. 25 | // This is useful so all flags used by commands that need 26 | // this information are consistent with each other. 27 | type Flags struct { 28 | Address string 29 | Fqbn string 30 | } 31 | 32 | // AddToCommand adds the flags used to set address and fqbn to the specified Command 33 | func (f *Flags) AddToCommand(cmd *cobra.Command) { 34 | cmd.Flags().StringVarP(&f.Fqbn, "fqbn", "b", "", "Fully Qualified Board Name, e.g.: arduino:samd:mkrwifi1010, arduino:mbed_nano:nanorp2040connect") 35 | cmd.Flags().StringVarP(&f.Address, "address", "a", "", "Upload port, e.g.: COM10, /dev/ttyACM0") 36 | } 37 | -------------------------------------------------------------------------------- /.licenses/arduino-fwuploader/go/github.com/spf13/viper.dep.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: github.com/spf13/viper 3 | version: v1.8.1 4 | type: go 5 | summary: 6 | homepage: https://pkg.go.dev/github.com/spf13/viper 7 | license: mit 8 | licenses: 9 | - sources: LICENSE 10 | text: |- 11 | The MIT License (MIT) 12 | 13 | Copyright (c) 2014 Steve Francia 14 | 15 | Permission is hereby granted, free of charge, to any person obtaining a copy 16 | of this software and associated documentation files (the "Software"), to deal 17 | in the Software without restriction, including without limitation the rights 18 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 19 | copies of the Software, and to permit persons to whom the Software is 20 | furnished to do so, subject to the following conditions: 21 | 22 | The above copyright notice and this permission notice shall be included in all 23 | copies or substantial portions of the Software. 24 | 25 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 26 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 27 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 28 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 29 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 30 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 31 | SOFTWARE. 32 | notices: [] 33 | -------------------------------------------------------------------------------- /.licenses/arduino-fwuploader/go/github.com/mattn/go-isatty.dep.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: github.com/mattn/go-isatty 3 | version: v0.0.14 4 | type: go 5 | summary: Package isatty implements interface to isatty 6 | homepage: https://pkg.go.dev/github.com/mattn/go-isatty 7 | license: mit 8 | licenses: 9 | - sources: LICENSE 10 | text: | 11 | Copyright (c) Yasuhiro MATSUMOTO 12 | 13 | MIT License (Expat) 14 | 15 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 16 | 17 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 18 | 19 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 20 | - sources: README.md 21 | text: MIT 22 | notices: [] 23 | -------------------------------------------------------------------------------- /flasher/flasher.go: -------------------------------------------------------------------------------- 1 | /* 2 | arduino-fwuploader 3 | Copyright (c) 2021 Arduino LLC. All right reserved. 4 | 5 | This program is free software: you can redistribute it and/or modify 6 | it under the terms of the GNU Affero General Public License as published 7 | by the Free Software Foundation, either version 3 of the License, or 8 | (at your option) any later version. 9 | 10 | This program is distributed in the hope that it will be useful, 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | GNU Affero General Public License for more details. 14 | 15 | You should have received a copy of the GNU Affero General Public License 16 | along with this program. If not, see . 17 | */ 18 | 19 | package flasher 20 | 21 | // FlashResult contains the result of the flashing procedure 22 | type FlashResult struct { 23 | Programmer *ExecOutput `json:"programmer"` 24 | Flasher *ExecOutput `json:"flasher,omitempty"` 25 | Version string `json:"version,omitempty"` 26 | } 27 | 28 | // ExecOutput contains the stdout and stderr output, they are used to store the output of the flashing and upload 29 | type ExecOutput struct { 30 | Stdout string `json:"stdout"` 31 | Stderr string `json:"stderr"` 32 | } 33 | 34 | func (r *FlashResult) Data() interface{} { 35 | return r 36 | } 37 | 38 | func (r *FlashResult) String() string { 39 | // The output is already printed via os.Stdout/os.Stdin 40 | return "" 41 | } 42 | -------------------------------------------------------------------------------- /cli/version/version.go: -------------------------------------------------------------------------------- 1 | /* 2 | arduino-fwuploader 3 | Copyright (c) 2021 Arduino LLC. All right reserved. 4 | 5 | This program is free software: you can redistribute it and/or modify 6 | it under the terms of the GNU Affero General Public License as published 7 | by the Free Software Foundation, either version 3 of the License, or 8 | (at your option) any later version. 9 | 10 | This program is distributed in the hope that it will be useful, 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | GNU Affero General Public License for more details. 14 | 15 | You should have received a copy of the GNU Affero General Public License 16 | along with this program. If not, see . 17 | */ 18 | 19 | package version 20 | 21 | import ( 22 | "os" 23 | 24 | "github.com/arduino/arduino-fwuploader/cli/feedback" 25 | v "github.com/arduino/arduino-fwuploader/version" 26 | "github.com/spf13/cobra" 27 | ) 28 | 29 | // NewCommand created a new `version` command 30 | func NewCommand() *cobra.Command { 31 | return &cobra.Command{ 32 | Use: "version", 33 | Short: "Shows version number of arduino-fwuploader.", 34 | Long: "Shows the version number of arduino-fwuploader which is installed on your system.", 35 | Example: " " + os.Args[0] + " version", 36 | Args: cobra.NoArgs, 37 | Run: run, 38 | } 39 | } 40 | 41 | func run(cmd *cobra.Command, args []string) { 42 | feedback.PrintResult(v.VersionInfo) 43 | } 44 | -------------------------------------------------------------------------------- /.licenses/arduino-fwuploader/go/github.com/spf13/jwalterweatherman.dep.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: github.com/spf13/jwalterweatherman 3 | version: v1.1.0 4 | type: go 5 | summary: 6 | homepage: https://pkg.go.dev/github.com/spf13/jwalterweatherman 7 | license: mit 8 | licenses: 9 | - sources: LICENSE 10 | text: |- 11 | The MIT License (MIT) 12 | 13 | Copyright (c) 2014 Steve Francia 14 | 15 | Permission is hereby granted, free of charge, to any person obtaining a copy 16 | of this software and associated documentation files (the "Software"), to deal 17 | in the Software without restriction, including without limitation the rights 18 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 19 | copies of the Software, and to permit persons to whom the Software is 20 | furnished to do so, subject to the following conditions: 21 | 22 | The above copyright notice and this permission notice shall be included in all 23 | copies or substantial portions of the Software. 24 | 25 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 26 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 27 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 28 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 29 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 30 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 31 | SOFTWARE. 32 | notices: [] 33 | -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- 1 | # Source: https://github.com/arduino/tooling-project-assets/blob/main/workflow-templates/assets/general/.editorconfig 2 | # See: https://editorconfig.org/ 3 | # The formatting style defined in this file is the official standardized style to be used in all Arduino Tooling 4 | # projects and should not be modified. 5 | # Note: indent style for each file type is defined even when it matches the universal config in order to make it clear 6 | # that this type has an official style. 7 | 8 | [*] 9 | charset = utf-8 10 | end_of_line = lf 11 | indent_size = 2 12 | indent_style = space 13 | insert_final_newline = true 14 | trim_trailing_whitespace = true 15 | 16 | [*.{adoc,asc,asciidoc}] 17 | indent_size = 2 18 | indent_style = space 19 | 20 | [*.{bash,sh}] 21 | indent_size = 2 22 | indent_style = space 23 | 24 | [*.{c,cc,cp,cpp,cxx,h,hh,hpp,hxx,ii,inl,ino,ixx,pde,tpl,tpp,txx}] 25 | indent_size = 2 26 | indent_style = space 27 | 28 | [*.{go,mod}] 29 | indent_style = tab 30 | 31 | [*.java] 32 | indent_size = 2 33 | indent_style = space 34 | 35 | [*.{js,jsx,json,jsonc,json5,ts,tsx}] 36 | indent_size = 2 37 | indent_style = space 38 | 39 | [*.{md,mdx,mkdn,mdown,markdown}] 40 | indent_size = unset 41 | indent_style = space 42 | 43 | [*.proto] 44 | indent_size = 2 45 | indent_style = space 46 | 47 | [*.py] 48 | indent_size = 4 49 | indent_style = space 50 | 51 | [*.svg] 52 | indent_size = 2 53 | indent_style = space 54 | 55 | [*.{yaml,yml}] 56 | indent_size = 2 57 | indent_style = space 58 | 59 | [{.gitconfig,.gitmodules}] 60 | indent_style = tab 61 | -------------------------------------------------------------------------------- /.licenses/arduino-fwuploader/go/github.com/josharian/intern.dep.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: github.com/josharian/intern 3 | version: v1.0.0 4 | type: go 5 | summary: Package intern interns strings. 6 | homepage: https://pkg.go.dev/github.com/josharian/intern 7 | license: mit 8 | licenses: 9 | - sources: license.md 10 | text: | 11 | MIT License 12 | 13 | Copyright (c) 2019 Josh Bleecher Snyder 14 | 15 | Permission is hereby granted, free of charge, to any person obtaining a copy 16 | of this software and associated documentation files (the "Software"), to deal 17 | in the Software without restriction, including without limitation the rights 18 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 19 | copies of the Software, and to permit persons to whom the Software is 20 | furnished to do so, subject to the following conditions: 21 | 22 | The above copyright notice and this permission notice shall be included in all 23 | copies or substantial portions of the Software. 24 | 25 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 26 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 27 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 28 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 29 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 30 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 31 | SOFTWARE. 32 | notices: [] 33 | -------------------------------------------------------------------------------- /.licenses/arduino-fwuploader/go/github.com/spf13/cast.dep.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: github.com/spf13/cast 3 | version: v1.3.1 4 | type: go 5 | summary: Package cast provides easy and safe casting in Go. 6 | homepage: https://pkg.go.dev/github.com/spf13/cast 7 | license: mit 8 | licenses: 9 | - sources: LICENSE 10 | text: |- 11 | The MIT License (MIT) 12 | 13 | Copyright (c) 2014 Steve Francia 14 | 15 | Permission is hereby granted, free of charge, to any person obtaining a copy 16 | of this software and associated documentation files (the "Software"), to deal 17 | in the Software without restriction, including without limitation the rights 18 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 19 | copies of the Software, and to permit persons to whom the Software is 20 | furnished to do so, subject to the following conditions: 21 | 22 | The above copyright notice and this permission notice shall be included in all 23 | copies or substantial portions of the Software. 24 | 25 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 26 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 27 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 28 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 29 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 30 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 31 | SOFTWARE. 32 | notices: [] 33 | -------------------------------------------------------------------------------- /.licenses/arduino-fwuploader/go/github.com/mailru/easyjson/buffer.dep.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: github.com/mailru/easyjson/buffer 3 | version: v0.7.7 4 | type: go 5 | summary: Package buffer implements a buffer for serialization, consisting of a chain 6 | of []byte-s to reduce copying and to allow reuse of individual chunks. 7 | homepage: https://pkg.go.dev/github.com/mailru/easyjson/buffer 8 | license: mit 9 | licenses: 10 | - sources: easyjson@v0.7.7/LICENSE 11 | text: | 12 | Copyright (c) 2016 Mail.Ru Group 13 | 14 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 15 | 16 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 17 | 18 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 19 | notices: [] 20 | -------------------------------------------------------------------------------- /.licenses/arduino-fwuploader/go/github.com/mattn/go-colorable.dep.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: github.com/mattn/go-colorable 3 | version: v0.1.8 4 | type: go 5 | summary: 6 | homepage: https://pkg.go.dev/github.com/mattn/go-colorable 7 | license: mit 8 | licenses: 9 | - sources: LICENSE 10 | text: | 11 | The MIT License (MIT) 12 | 13 | Copyright (c) 2016 Yasuhiro Matsumoto 14 | 15 | Permission is hereby granted, free of charge, to any person obtaining a copy 16 | of this software and associated documentation files (the "Software"), to deal 17 | in the Software without restriction, including without limitation the rights 18 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 19 | copies of the Software, and to permit persons to whom the Software is 20 | furnished to do so, subject to the following conditions: 21 | 22 | The above copyright notice and this permission notice shall be included in all 23 | copies or substantial portions of the Software. 24 | 25 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 26 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 27 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 28 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 29 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 30 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 31 | SOFTWARE. 32 | - sources: README.md 33 | text: MIT 34 | notices: [] 35 | -------------------------------------------------------------------------------- /.licenses/arduino-fwuploader/go/github.com/h2non/filetype.dep.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: github.com/h2non/filetype 3 | version: v1.1.3 4 | type: go 5 | summary: 6 | homepage: https://pkg.go.dev/github.com/h2non/filetype 7 | license: mit 8 | licenses: 9 | - sources: LICENSE 10 | text: | 11 | The MIT License 12 | 13 | Copyright (c) Tomas Aparicio 14 | 15 | Permission is hereby granted, free of charge, to any person 16 | obtaining a copy of this software and associated documentation 17 | files (the "Software"), to deal in the Software without 18 | restriction, including without limitation the rights to use, 19 | copy, modify, merge, publish, distribute, sublicense, and/or sell 20 | copies of the Software, and to permit persons to whom the 21 | Software is furnished to do so, subject to the following 22 | conditions: 23 | 24 | The above copyright notice and this permission notice shall be 25 | included in all copies or substantial portions of the Software. 26 | 27 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 28 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 29 | OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 30 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 31 | HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 32 | WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 33 | FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 34 | OTHER DEALINGS IN THE SOFTWARE. 35 | - sources: README.md 36 | text: MIT - Tomas Aparicio 37 | notices: [] 38 | -------------------------------------------------------------------------------- /docsgen/main.go: -------------------------------------------------------------------------------- 1 | /* 2 | Source: https://github.com/arduino/tooling-project-assets/blob/main/workflow-templates/assets/cobra/docsgen/main.go 3 | 4 | arduino-fwuploader 5 | Copyright (c) 2021 Arduino LLC. All right reserved. 6 | 7 | This program is free software: you can redistribute it and/or modify 8 | it under the terms of the GNU Affero General Public License as published 9 | by the Free Software Foundation, either version 3 of the License, or 10 | (at your option) any later version. 11 | 12 | This program is distributed in the hope that it will be useful, 13 | but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | GNU Affero General Public License for more details. 16 | 17 | You should have received a copy of the GNU Affero General Public License 18 | along with this program. If not, see . 19 | */ 20 | 21 | // Package main generates Markdown documentation for the project's CLI. 22 | package main 23 | 24 | import ( 25 | "os" 26 | 27 | "github.com/arduino/arduino-fwuploader/cli" 28 | "github.com/spf13/cobra/doc" 29 | ) 30 | 31 | func main() { 32 | if len(os.Args) < 2 { 33 | print("error: Please provide the output folder argument") 34 | os.Exit(1) 35 | } 36 | 37 | os.MkdirAll(os.Args[1], 0755) // Create the output folder if it doesn't already exist 38 | 39 | cli := cli.NewCommand() 40 | cli.DisableAutoGenTag = true // Disable addition of auto-generated date stamp 41 | err := doc.GenMarkdownTree(cli, os.Args[1]) 42 | if err != nil { 43 | panic(err) 44 | } 45 | } 46 | -------------------------------------------------------------------------------- /.licenses/arduino-fwuploader/go/github.com/subosito/gotenv.dep.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: github.com/subosito/gotenv 3 | version: v1.2.0 4 | type: go 5 | summary: Package gotenv provides functionality to dynamically load the environment 6 | variables 7 | homepage: https://pkg.go.dev/github.com/subosito/gotenv 8 | license: mit 9 | licenses: 10 | - sources: LICENSE 11 | text: | 12 | The MIT License (MIT) 13 | 14 | Copyright (c) 2013 Alif Rachmawadi 15 | 16 | Permission is hereby granted, free of charge, to any person obtaining a copy 17 | of this software and associated documentation files (the "Software"), to deal 18 | in the Software without restriction, including without limitation the rights 19 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 20 | copies of the Software, and to permit persons to whom the Software is 21 | furnished to do so, subject to the following conditions: 22 | 23 | The above copyright notice and this permission notice shall be included in 24 | all copies or substantial portions of the Software. 25 | 26 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 27 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 28 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 29 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 30 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 31 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 32 | THE SOFTWARE. 33 | notices: [] 34 | -------------------------------------------------------------------------------- /.licenses/arduino-fwuploader/go/github.com/codeclysm/extract/v3.dep.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: github.com/codeclysm/extract/v3 3 | version: v3.1.1 4 | type: go 5 | summary: Package extract allows to extract archives in zip, tar.gz or tar.bz2 formats 6 | easily. 7 | homepage: https://pkg.go.dev/github.com/codeclysm/extract/v3 8 | license: mit 9 | licenses: 10 | - sources: LICENSE 11 | text: | 12 | The MIT License (MIT) 13 | 14 | Copyright (c) 2016 codeclysm 15 | 16 | Permission is hereby granted, free of charge, to any person obtaining a copy 17 | of this software and associated documentation files (the "Software"), to deal 18 | in the Software without restriction, including without limitation the rights 19 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 20 | copies of the Software, and to permit persons to whom the Software is 21 | furnished to do so, subject to the following conditions: 22 | 23 | The above copyright notice and this permission notice shall be included in all 24 | copies or substantial portions of the Software. 25 | 26 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 27 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 28 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 29 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 30 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 31 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 32 | SOFTWARE. 33 | notices: [] 34 | -------------------------------------------------------------------------------- /.licenses/arduino-fwuploader/go/github.com/mattn/go-runewidth.dep.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: github.com/mattn/go-runewidth 3 | version: v0.0.13 4 | type: go 5 | summary: 6 | homepage: https://pkg.go.dev/github.com/mattn/go-runewidth 7 | license: mit 8 | licenses: 9 | - sources: LICENSE 10 | text: | 11 | The MIT License (MIT) 12 | 13 | Copyright (c) 2016 Yasuhiro Matsumoto 14 | 15 | Permission is hereby granted, free of charge, to any person obtaining a copy 16 | of this software and associated documentation files (the "Software"), to deal 17 | in the Software without restriction, including without limitation the rights 18 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 19 | copies of the Software, and to permit persons to whom the Software is 20 | furnished to do so, subject to the following conditions: 21 | 22 | The above copyright notice and this permission notice shall be included in all 23 | copies or substantial portions of the Software. 24 | 25 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 26 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 27 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 28 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 29 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 30 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 31 | SOFTWARE. 32 | - sources: README.md 33 | text: 'under the MIT License: http://mattn.mit-license.org/2013' 34 | notices: [] 35 | -------------------------------------------------------------------------------- /.licenses/arduino-fwuploader/go/github.com/sirupsen/logrus.dep.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: github.com/sirupsen/logrus 3 | version: v1.8.3 4 | type: go 5 | summary: Package logrus is a structured logger for Go, completely API compatible with 6 | the standard library logger. 7 | homepage: https://pkg.go.dev/github.com/sirupsen/logrus 8 | license: mit 9 | licenses: 10 | - sources: LICENSE 11 | text: | 12 | The MIT License (MIT) 13 | 14 | Copyright (c) 2014 Simon Eskildsen 15 | 16 | Permission is hereby granted, free of charge, to any person obtaining a copy 17 | of this software and associated documentation files (the "Software"), to deal 18 | in the Software without restriction, including without limitation the rights 19 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 20 | copies of the Software, and to permit persons to whom the Software is 21 | furnished to do so, subject to the following conditions: 22 | 23 | The above copyright notice and this permission notice shall be included in 24 | all copies or substantial portions of the Software. 25 | 26 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 27 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 28 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 29 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 30 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 31 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 32 | THE SOFTWARE. 33 | notices: [] 34 | -------------------------------------------------------------------------------- /.licenses/arduino-fwuploader/go/github.com/rivo/uniseg.dep.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: github.com/rivo/uniseg 3 | version: v0.2.0 4 | type: go 5 | summary: 'Package uniseg implements Unicode Text Segmentation according to Unicode 6 | Standard Annex #29 (http://unicode.org/reports/tr29/).' 7 | homepage: https://pkg.go.dev/github.com/rivo/uniseg 8 | license: mit 9 | licenses: 10 | - sources: LICENSE.txt 11 | text: | 12 | MIT License 13 | 14 | Copyright (c) 2019 Oliver Kuederle 15 | 16 | Permission is hereby granted, free of charge, to any person obtaining a copy 17 | of this software and associated documentation files (the "Software"), to deal 18 | in the Software without restriction, including without limitation the rights 19 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 20 | copies of the Software, and to permit persons to whom the Software is 21 | furnished to do so, subject to the following conditions: 22 | 23 | The above copyright notice and this permission notice shall be included in all 24 | copies or substantial portions of the Software. 25 | 26 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 27 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 28 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 29 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 30 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 31 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 32 | SOFTWARE. 33 | notices: [] 34 | -------------------------------------------------------------------------------- /.licenses/arduino-fwuploader/go/github.com/h2non/filetype/types.dep.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: github.com/h2non/filetype/types 3 | version: v1.1.3 4 | type: go 5 | summary: 6 | homepage: https://pkg.go.dev/github.com/h2non/filetype/types 7 | license: mit 8 | licenses: 9 | - sources: filetype@v1.1.3/LICENSE 10 | text: | 11 | The MIT License 12 | 13 | Copyright (c) Tomas Aparicio 14 | 15 | Permission is hereby granted, free of charge, to any person 16 | obtaining a copy of this software and associated documentation 17 | files (the "Software"), to deal in the Software without 18 | restriction, including without limitation the rights to use, 19 | copy, modify, merge, publish, distribute, sublicense, and/or sell 20 | copies of the Software, and to permit persons to whom the 21 | Software is furnished to do so, subject to the following 22 | conditions: 23 | 24 | The above copyright notice and this permission notice shall be 25 | included in all copies or substantial portions of the Software. 26 | 27 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 28 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 29 | OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 30 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 31 | HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 32 | WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 33 | FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 34 | OTHER DEALINGS IN THE SOFTWARE. 35 | - sources: filetype@v1.1.3/README.md 36 | text: MIT - Tomas Aparicio 37 | notices: [] 38 | -------------------------------------------------------------------------------- /.licenses/arduino-fwuploader/go/github.com/rifflock/lfshook.dep.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: github.com/rifflock/lfshook 3 | version: v0.0.0-20180920164130-b9218ef580f5 4 | type: go 5 | summary: Package lfshook is hook for sirupsen/logrus that used for writing the logs 6 | to local files. 7 | homepage: https://pkg.go.dev/github.com/rifflock/lfshook 8 | license: mit 9 | licenses: 10 | - sources: LICENSE 11 | text: | 12 | The MIT License (MIT) 13 | 14 | Copyright (c) 2015 Michael Riffle 15 | 16 | Permission is hereby granted, free of charge, to any person obtaining a copy 17 | of this software and associated documentation files (the "Software"), to deal 18 | in the Software without restriction, including without limitation the rights 19 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 20 | copies of the Software, and to permit persons to whom the Software is 21 | furnished to do so, subject to the following conditions: 22 | 23 | The above copyright notice and this permission notice shall be included in 24 | all copies or substantial portions of the Software. 25 | 26 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 27 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 28 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 29 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 30 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 31 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 32 | THE SOFTWARE. 33 | notices: [] 34 | -------------------------------------------------------------------------------- /.licenses/arduino-fwuploader/go/github.com/h2non/filetype/matchers.dep.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: github.com/h2non/filetype/matchers 3 | version: v1.1.3 4 | type: go 5 | summary: 6 | homepage: https://pkg.go.dev/github.com/h2non/filetype/matchers 7 | license: mit 8 | licenses: 9 | - sources: filetype@v1.1.3/LICENSE 10 | text: | 11 | The MIT License 12 | 13 | Copyright (c) Tomas Aparicio 14 | 15 | Permission is hereby granted, free of charge, to any person 16 | obtaining a copy of this software and associated documentation 17 | files (the "Software"), to deal in the Software without 18 | restriction, including without limitation the rights to use, 19 | copy, modify, merge, publish, distribute, sublicense, and/or sell 20 | copies of the Software, and to permit persons to whom the 21 | Software is furnished to do so, subject to the following 22 | conditions: 23 | 24 | The above copyright notice and this permission notice shall be 25 | included in all copies or substantial portions of the Software. 26 | 27 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 28 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 29 | OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 30 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 31 | HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 32 | WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 33 | FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 34 | OTHER DEALINGS IN THE SOFTWARE. 35 | - sources: filetype@v1.1.3/README.md 36 | text: MIT - Tomas Aparicio 37 | notices: [] 38 | -------------------------------------------------------------------------------- /.licenses/arduino-fwuploader/go/github.com/leonelquinteros/gotext.dep.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: github.com/leonelquinteros/gotext 3 | version: v1.4.0 4 | type: go 5 | summary: Package gotext implements GNU gettext utilities. 6 | homepage: https://pkg.go.dev/github.com/leonelquinteros/gotext 7 | license: mit 8 | licenses: 9 | - sources: LICENSE 10 | text: | 11 | The MIT License (MIT) 12 | 13 | Copyright (c) 2016 Leonel Quinteros 14 | 15 | Permission is hereby granted, free of charge, to any person obtaining a copy 16 | of this software and associated documentation files (the "Software"), to deal 17 | in the Software without restriction, including without limitation the rights 18 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 19 | copies of the Software, and to permit persons to whom the Software is 20 | furnished to do so, subject to the following conditions: 21 | 22 | The above copyright notice and this permission notice shall be included in all 23 | copies or substantial portions of the Software. 24 | 25 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 26 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 27 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 28 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 29 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 30 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 31 | SOFTWARE. 32 | - sources: README.md 33 | text: "[MIT license](LICENSE)" 34 | notices: [] 35 | -------------------------------------------------------------------------------- /.licenses/arduino-fwuploader/go/github.com/h2non/filetype/matchers/isobmff.dep.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: github.com/h2non/filetype/matchers/isobmff 3 | version: v1.1.3 4 | type: go 5 | summary: 6 | homepage: https://pkg.go.dev/github.com/h2non/filetype/matchers/isobmff 7 | license: mit 8 | licenses: 9 | - sources: filetype@v1.1.3/LICENSE 10 | text: | 11 | The MIT License 12 | 13 | Copyright (c) Tomas Aparicio 14 | 15 | Permission is hereby granted, free of charge, to any person 16 | obtaining a copy of this software and associated documentation 17 | files (the "Software"), to deal in the Software without 18 | restriction, including without limitation the rights to use, 19 | copy, modify, merge, publish, distribute, sublicense, and/or sell 20 | copies of the Software, and to permit persons to whom the 21 | Software is furnished to do so, subject to the following 22 | conditions: 23 | 24 | The above copyright notice and this permission notice shall be 25 | included in all copies or substantial portions of the Software. 26 | 27 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 28 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 29 | OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 30 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 31 | HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 32 | WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 33 | FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 34 | OTHER DEALINGS IN THE SOFTWARE. 35 | - sources: filetype@v1.1.3/README.md 36 | text: MIT - Tomas Aparicio 37 | notices: [] 38 | -------------------------------------------------------------------------------- /.markdownlint.yml: -------------------------------------------------------------------------------- 1 | # Source: https://github.com/arduino/tooling-project-assets/blob/main/workflow-templates/assets/check-markdown/.markdownlint.yml 2 | # See: https://github.com/DavidAnson/markdownlint/blob/main/doc/Rules.md 3 | # The code style defined in this file is the official standardized style to be used in all Arduino projects and should 4 | # not be modified. 5 | # Note: Rules disabled solely because they are redundant to Prettier are marked with a "Prettier" comment. 6 | 7 | default: false 8 | MD001: false 9 | MD002: false 10 | MD003: false # Prettier 11 | MD004: false # Prettier 12 | MD005: false # Prettier 13 | MD006: false # Prettier 14 | MD007: false # Prettier 15 | MD008: false # Prettier 16 | MD009: 17 | br_spaces: 0 18 | strict: true 19 | list_item_empty_lines: false # Prettier 20 | MD010: false # Prettier 21 | MD011: true 22 | MD012: false # Prettier 23 | MD013: false 24 | MD014: false 25 | MD018: true 26 | MD019: false # Prettier 27 | MD020: true 28 | MD021: false # Prettier 29 | MD022: false # Prettier 30 | MD023: false # Prettier 31 | MD024: false 32 | MD025: 33 | level: 1 34 | front_matter_title: '^\s*"?title"?\s*[:=]' 35 | MD026: false 36 | MD027: false # Prettier 37 | MD028: false 38 | MD029: 39 | style: one 40 | MD030: 41 | ul_single: 1 42 | ol_single: 1 43 | ul_multi: 1 44 | ol_multi: 1 45 | MD031: false # Prettier 46 | MD032: false # Prettier 47 | MD033: false 48 | MD034: false 49 | MD035: false # Prettier 50 | MD036: false 51 | MD037: true 52 | MD038: true 53 | MD039: true 54 | MD040: false 55 | MD041: false 56 | MD042: true 57 | MD043: false 58 | MD044: false 59 | MD045: true 60 | MD046: 61 | style: fenced 62 | MD047: false # Prettier 63 | -------------------------------------------------------------------------------- /.licenses/arduino-fwuploader/go/github.com/mitchellh/mapstructure.dep.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: github.com/mitchellh/mapstructure 3 | version: v1.4.1 4 | type: go 5 | summary: Package mapstructure exposes functionality to convert one arbitrary Go type 6 | into another, typically to convert a map[string]interface{} into a native Go structure. 7 | homepage: https://pkg.go.dev/github.com/mitchellh/mapstructure 8 | license: mit 9 | licenses: 10 | - sources: LICENSE 11 | text: | 12 | The MIT License (MIT) 13 | 14 | Copyright (c) 2013 Mitchell Hashimoto 15 | 16 | Permission is hereby granted, free of charge, to any person obtaining a copy 17 | of this software and associated documentation files (the "Software"), to deal 18 | in the Software without restriction, including without limitation the rights 19 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 20 | copies of the Software, and to permit persons to whom the Software is 21 | furnished to do so, subject to the following conditions: 22 | 23 | The above copyright notice and this permission notice shall be included in 24 | all copies or substantial portions of the Software. 25 | 26 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 27 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 28 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 29 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 30 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 31 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 32 | THE SOFTWARE. 33 | notices: [] 34 | -------------------------------------------------------------------------------- /.licenses/arduino-fwuploader/go/github.com/leonelquinteros/gotext/plurals.dep.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: github.com/leonelquinteros/gotext/plurals 3 | version: v1.4.0 4 | type: go 5 | summary: Package plurals is the pluralform compiler to get the correct translation 6 | id of the plural string 7 | homepage: https://pkg.go.dev/github.com/leonelquinteros/gotext/plurals 8 | license: mit 9 | licenses: 10 | - sources: gotext@v1.4.0/LICENSE 11 | text: | 12 | The MIT License (MIT) 13 | 14 | Copyright (c) 2016 Leonel Quinteros 15 | 16 | Permission is hereby granted, free of charge, to any person obtaining a copy 17 | of this software and associated documentation files (the "Software"), to deal 18 | in the Software without restriction, including without limitation the rights 19 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 20 | copies of the Software, and to permit persons to whom the Software is 21 | furnished to do so, subject to the following conditions: 22 | 23 | The above copyright notice and this permission notice shall be included in all 24 | copies or substantial portions of the Software. 25 | 26 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 27 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 28 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 29 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 30 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 31 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 32 | SOFTWARE. 33 | - sources: gotext@v1.4.0/README.md 34 | text: "[MIT license](LICENSE)" 35 | notices: [] 36 | -------------------------------------------------------------------------------- /.licenses/arduino-fwuploader/go/github.com/fatih/color.dep.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: github.com/fatih/color 3 | version: v1.7.0 4 | type: go 5 | summary: Package color is an ANSI color package to output colorized or SGR defined 6 | output to the standard output. 7 | homepage: https://pkg.go.dev/github.com/fatih/color 8 | license: mit 9 | licenses: 10 | - sources: LICENSE.md 11 | text: | 12 | The MIT License (MIT) 13 | 14 | Copyright (c) 2013 Fatih Arslan 15 | 16 | Permission is hereby granted, free of charge, to any person obtaining a copy of 17 | this software and associated documentation files (the "Software"), to deal in 18 | the Software without restriction, including without limitation the rights to 19 | use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of 20 | the Software, and to permit persons to whom the Software is furnished to do so, 21 | subject to the following conditions: 22 | 23 | The above copyright notice and this permission notice shall be included in all 24 | copies or substantial portions of the Software. 25 | 26 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 27 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS 28 | FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR 29 | COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 30 | IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 31 | CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 32 | - sources: README.md 33 | text: The MIT License (MIT) - see [`LICENSE.md`](https://github.com/fatih/color/blob/master/LICENSE.md) 34 | for more details 35 | notices: [] 36 | -------------------------------------------------------------------------------- /.licenses/arduino-fwuploader/go/github.com/cmaglie/pb.dep.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: github.com/cmaglie/pb 3 | version: v1.0.27 4 | type: go 5 | summary: Simple console progress bars 6 | homepage: https://pkg.go.dev/github.com/cmaglie/pb 7 | license: bsd-3-clause 8 | licenses: 9 | - sources: LICENSE 10 | text: |- 11 | Copyright (c) 2012-2015, Sergey Cherepanov 12 | All rights reserved. 13 | 14 | Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 15 | 16 | * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 17 | 18 | * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 19 | 20 | * Neither the name of the author nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. 21 | 22 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 23 | notices: [] 24 | -------------------------------------------------------------------------------- /.licenses/arduino-fwuploader/go/github.com/pkg/errors.dep.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: github.com/pkg/errors 3 | version: v0.9.1 4 | type: go 5 | summary: Package errors provides simple error handling primitives. 6 | homepage: https://pkg.go.dev/github.com/pkg/errors 7 | license: bsd-2-clause 8 | licenses: 9 | - sources: LICENSE 10 | text: | 11 | Copyright (c) 2015, Dave Cheney 12 | All rights reserved. 13 | 14 | Redistribution and use in source and binary forms, with or without 15 | modification, are permitted provided that the following conditions are met: 16 | 17 | * Redistributions of source code must retain the above copyright notice, this 18 | list of conditions and the following disclaimer. 19 | 20 | * Redistributions in binary form must reproduce the above copyright notice, 21 | this list of conditions and the following disclaimer in the documentation 22 | and/or other materials provided with the distribution. 23 | 24 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 25 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 26 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 27 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE 28 | FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 29 | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 30 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 31 | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 32 | OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 33 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 34 | - sources: README.md 35 | text: BSD-2-Clause 36 | notices: [] 37 | -------------------------------------------------------------------------------- /version/version.go: -------------------------------------------------------------------------------- 1 | /* 2 | arduino-fwuploader 3 | Copyright (c) 2021 Arduino LLC. All right reserved. 4 | 5 | This program is free software: you can redistribute it and/or modify 6 | it under the terms of the GNU Affero General Public License as published 7 | by the Free Software Foundation, either version 3 of the License, or 8 | (at your option) any later version. 9 | 10 | This program is distributed in the hope that it will be useful, 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | GNU Affero General Public License for more details. 14 | 15 | You should have received a copy of the GNU Affero General Public License 16 | along with this program. If not, see . 17 | */ 18 | 19 | package version 20 | 21 | import "fmt" 22 | 23 | var ( 24 | defaultVersionString = "0.0.0-git" 25 | versionString = "" 26 | commit = "" 27 | date = "" 28 | // VersionInfo contains info regarding the version 29 | VersionInfo *info 30 | ) 31 | 32 | type info struct { 33 | Application string `json:"Application"` 34 | VersionString string `json:"VersionString"` 35 | Commit string `json:"Commit"` 36 | Date string `json:"Date"` 37 | } 38 | 39 | func newInfo(application string) *info { 40 | return &info{ 41 | Application: application, 42 | VersionString: versionString, 43 | Commit: commit, 44 | Date: date, 45 | } 46 | } 47 | 48 | func (i *info) String() string { 49 | return fmt.Sprintf("%s Version: %s Commit: %s Date: %s", i.Application, i.VersionString, i.Commit, i.Date) 50 | } 51 | 52 | // Data implements feedback.Result interface 53 | func (i *info) Data() interface{} { 54 | return i 55 | } 56 | 57 | func init() { 58 | if versionString == "" { 59 | versionString = defaultVersionString 60 | } 61 | VersionInfo = newInfo("arduino-fwuploader") 62 | } 63 | -------------------------------------------------------------------------------- /.licenses/arduino-fwuploader/go/github.com/ulikunitz/xz.dep.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: github.com/ulikunitz/xz 3 | version: v0.5.11 4 | type: go 5 | summary: Package xz supports the compression and decompression of xz files. 6 | homepage: https://pkg.go.dev/github.com/ulikunitz/xz 7 | license: bsd-3-clause 8 | licenses: 9 | - sources: LICENSE 10 | text: | 11 | Copyright (c) 2014-2022 Ulrich Kunitz 12 | All rights reserved. 13 | 14 | Redistribution and use in source and binary forms, with or without 15 | modification, are permitted provided that the following conditions are met: 16 | 17 | * Redistributions of source code must retain the above copyright notice, this 18 | list of conditions and the following disclaimer. 19 | 20 | * Redistributions in binary form must reproduce the above copyright notice, 21 | this list of conditions and the following disclaimer in the documentation 22 | and/or other materials provided with the distribution. 23 | 24 | * My name, Ulrich Kunitz, may not be used to endorse or promote products 25 | derived from this software without specific prior written permission. 26 | 27 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 28 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 29 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 30 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE 31 | FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 32 | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 33 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 34 | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 35 | OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 36 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 37 | notices: [] 38 | -------------------------------------------------------------------------------- /.licenses/arduino-fwuploader/go/github.com/ulikunitz/xz/internal/hash.dep.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: github.com/ulikunitz/xz/internal/hash 3 | version: v0.5.11 4 | type: go 5 | summary: Package hash provides rolling hashes. 6 | homepage: https://pkg.go.dev/github.com/ulikunitz/xz/internal/hash 7 | license: bsd-3-clause 8 | licenses: 9 | - sources: xz@v0.5.11/LICENSE 10 | text: | 11 | Copyright (c) 2014-2022 Ulrich Kunitz 12 | All rights reserved. 13 | 14 | Redistribution and use in source and binary forms, with or without 15 | modification, are permitted provided that the following conditions are met: 16 | 17 | * Redistributions of source code must retain the above copyright notice, this 18 | list of conditions and the following disclaimer. 19 | 20 | * Redistributions in binary form must reproduce the above copyright notice, 21 | this list of conditions and the following disclaimer in the documentation 22 | and/or other materials provided with the distribution. 23 | 24 | * My name, Ulrich Kunitz, may not be used to endorse or promote products 25 | derived from this software without specific prior written permission. 26 | 27 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 28 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 29 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 30 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE 31 | FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 32 | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 33 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 34 | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 35 | OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 36 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 37 | notices: [] 38 | -------------------------------------------------------------------------------- /.licenses/arduino-fwuploader/go/github.com/ulikunitz/xz/lzma.dep.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: github.com/ulikunitz/xz/lzma 3 | version: v0.5.11 4 | type: go 5 | summary: Package lzma supports the decoding and encoding of LZMA streams. 6 | homepage: https://pkg.go.dev/github.com/ulikunitz/xz/lzma 7 | license: bsd-3-clause 8 | licenses: 9 | - sources: xz@v0.5.11/LICENSE 10 | text: | 11 | Copyright (c) 2014-2022 Ulrich Kunitz 12 | All rights reserved. 13 | 14 | Redistribution and use in source and binary forms, with or without 15 | modification, are permitted provided that the following conditions are met: 16 | 17 | * Redistributions of source code must retain the above copyright notice, this 18 | list of conditions and the following disclaimer. 19 | 20 | * Redistributions in binary form must reproduce the above copyright notice, 21 | this list of conditions and the following disclaimer in the documentation 22 | and/or other materials provided with the distribution. 23 | 24 | * My name, Ulrich Kunitz, may not be used to endorse or promote products 25 | derived from this software without specific prior written permission. 26 | 27 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 28 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 29 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 30 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE 31 | FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 32 | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 33 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 34 | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 35 | OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 36 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 37 | notices: [] 38 | -------------------------------------------------------------------------------- /.licenses/arduino-fwuploader/go/go.bug.st/cleanup.dep.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: go.bug.st/cleanup 3 | version: v1.0.0 4 | type: go 5 | summary: 6 | homepage: https://pkg.go.dev/go.bug.st/cleanup 7 | license: bsd-3-clause 8 | licenses: 9 | - sources: LICENSE 10 | text: |2+ 11 | 12 | Copyright (c) 2018, Cristian Maglie. 13 | All rights reserved. 14 | 15 | Redistribution and use in source and binary forms, with or without 16 | modification, are permitted provided that the following conditions 17 | are met: 18 | 19 | 1. Redistributions of source code must retain the above copyright 20 | notice, this list of conditions and the following disclaimer. 21 | 22 | 2. Redistributions in binary form must reproduce the above copyright 23 | notice, this list of conditions and the following disclaimer in 24 | the documentation and/or other materials provided with the 25 | distribution. 26 | 27 | 3. Neither the name of the copyright holder nor the names of its 28 | contributors may be used to endorse or promote products derived 29 | from this software without specific prior written permission. 30 | 31 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 32 | "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 33 | LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 34 | FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 35 | COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 36 | INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 37 | BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 38 | LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 39 | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 40 | LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 41 | ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 42 | POSSIBILITY OF SUCH DAMAGE. 43 | 44 | notices: [] 45 | ... 46 | -------------------------------------------------------------------------------- /.licenses/arduino-fwuploader/go/github.com/golang/protobuf/ptypes/any.dep.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: github.com/golang/protobuf/ptypes/any 3 | version: v1.5.3 4 | type: go 5 | summary: 6 | homepage: https://pkg.go.dev/github.com/golang/protobuf/ptypes/any 7 | license: bsd-3-clause 8 | licenses: 9 | - sources: protobuf@v1.5.3/LICENSE 10 | text: |+ 11 | Copyright 2010 The Go Authors. All rights reserved. 12 | 13 | Redistribution and use in source and binary forms, with or without 14 | modification, are permitted provided that the following conditions are 15 | met: 16 | 17 | * Redistributions of source code must retain the above copyright 18 | notice, this list of conditions and the following disclaimer. 19 | * Redistributions in binary form must reproduce the above 20 | copyright notice, this list of conditions and the following disclaimer 21 | in the documentation and/or other materials provided with the 22 | distribution. 23 | * Neither the name of Google Inc. nor the names of its 24 | contributors may be used to endorse or promote products derived from 25 | this software without specific prior written permission. 26 | 27 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 28 | "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 29 | LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 30 | A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 31 | OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 32 | SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 33 | LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 34 | DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 35 | THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 36 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 37 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 38 | 39 | notices: [] 40 | ... 41 | -------------------------------------------------------------------------------- /.licenses/arduino-fwuploader/go/github.com/pmylund/sortutil.dep.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: github.com/pmylund/sortutil 3 | version: v0.0.0-20120526081524-abeda66eb583 4 | type: go 5 | summary: 'Sortutil is a Go library which lets you sort a slice without implementing 6 | a sort.Interface, and in different orderings: ascending, descending, or case-insensitive 7 | ascending or descending (for slices of strings.) Additionally, Sortutil lets you 8 | sort a slice of a custom struct by a given struct field or index--for example, you 9 | can sort a []MyStruct by the structs'' "Name" fields, or a [][]int by the second 10 | index of each nested slice, similar to using sorted(key=operator.itemgetter/attrgetter) 11 | in Python.' 12 | homepage: https://pkg.go.dev/github.com/pmylund/sortutil 13 | license: mit 14 | licenses: 15 | - sources: LICENSE 16 | text: "Copyright (c) 2012 Patrick Mylund Nielsen\n \nPermission is hereby granted, 17 | free of charge, to any person obtaining a copy\nof this software and associated 18 | documentation files (the \"Software\"), to deal\nin the Software without restriction, 19 | including without limitation the rights\nto use, copy, modify, merge, publish, 20 | distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons 21 | to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe 22 | above copyright notice and this permission notice shall be included in\nall copies 23 | or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", 24 | WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO 25 | THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 26 | IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES 27 | OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 28 | FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS 29 | IN\nTHE SOFTWARE.\n" 30 | notices: [] 31 | -------------------------------------------------------------------------------- /.licenses/arduino-fwuploader/go/go.bug.st/downloader/v2.dep.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: go.bug.st/downloader/v2 3 | version: v2.1.1 4 | type: go 5 | summary: 6 | homepage: https://pkg.go.dev/go.bug.st/downloader/v2 7 | license: bsd-3-clause 8 | licenses: 9 | - sources: LICENSE 10 | text: |2+ 11 | 12 | Copyright (c) 2018, Cristian Maglie. 13 | All rights reserved. 14 | 15 | Redistribution and use in source and binary forms, with or without 16 | modification, are permitted provided that the following conditions 17 | are met: 18 | 19 | 1. Redistributions of source code must retain the above copyright 20 | notice, this list of conditions and the following disclaimer. 21 | 22 | 2. Redistributions in binary form must reproduce the above copyright 23 | notice, this list of conditions and the following disclaimer in 24 | the documentation and/or other materials provided with the 25 | distribution. 26 | 27 | 3. Neither the name of the copyright holder nor the names of its 28 | contributors may be used to endorse or promote products derived 29 | from this software without specific prior written permission. 30 | 31 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 32 | "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 33 | LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 34 | FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 35 | COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 36 | INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 37 | BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 38 | LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 39 | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 40 | LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 41 | ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 42 | POSSIBILITY OF SUCH DAMAGE. 43 | 44 | notices: [] 45 | ... 46 | -------------------------------------------------------------------------------- /.licenses/arduino-fwuploader/go/github.com/golang/protobuf/ptypes/duration.dep.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: github.com/golang/protobuf/ptypes/duration 3 | version: v1.5.3 4 | type: go 5 | summary: 6 | homepage: https://pkg.go.dev/github.com/golang/protobuf/ptypes/duration 7 | license: bsd-3-clause 8 | licenses: 9 | - sources: protobuf@v1.5.3/LICENSE 10 | text: |+ 11 | Copyright 2010 The Go Authors. All rights reserved. 12 | 13 | Redistribution and use in source and binary forms, with or without 14 | modification, are permitted provided that the following conditions are 15 | met: 16 | 17 | * Redistributions of source code must retain the above copyright 18 | notice, this list of conditions and the following disclaimer. 19 | * Redistributions in binary form must reproduce the above 20 | copyright notice, this list of conditions and the following disclaimer 21 | in the documentation and/or other materials provided with the 22 | distribution. 23 | * Neither the name of Google Inc. nor the names of its 24 | contributors may be used to endorse or promote products derived from 25 | this software without specific prior written permission. 26 | 27 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 28 | "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 29 | LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 30 | A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 31 | OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 32 | SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 33 | LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 34 | DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 35 | THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 36 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 37 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 38 | 39 | notices: [] 40 | ... 41 | -------------------------------------------------------------------------------- /.licenses/arduino-fwuploader/go/go.bug.st/relaxed-semver.dep.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: go.bug.st/relaxed-semver 3 | version: v0.10.2 4 | type: go 5 | summary: 6 | homepage: https://pkg.go.dev/go.bug.st/relaxed-semver 7 | license: bsd-3-clause 8 | licenses: 9 | - sources: LICENSE 10 | text: |2+ 11 | 12 | Copyright (c) 2018-2022, Cristian Maglie. 13 | All rights reserved. 14 | 15 | Redistribution and use in source and binary forms, with or without 16 | modification, are permitted provided that the following conditions 17 | are met: 18 | 19 | 1. Redistributions of source code must retain the above copyright 20 | notice, this list of conditions and the following disclaimer. 21 | 22 | 2. Redistributions in binary form must reproduce the above copyright 23 | notice, this list of conditions and the following disclaimer in 24 | the documentation and/or other materials provided with the 25 | distribution. 26 | 27 | 3. Neither the name of the copyright holder nor the names of its 28 | contributors may be used to endorse or promote products derived 29 | from this software without specific prior written permission. 30 | 31 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 32 | "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 33 | LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 34 | FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 35 | COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 36 | INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 37 | BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 38 | LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 39 | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 40 | LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 41 | ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 42 | POSSIBILITY OF SUCH DAMAGE. 43 | 44 | notices: [] 45 | ... 46 | -------------------------------------------------------------------------------- /.licenses/arduino-fwuploader/go/github.com/golang/protobuf/ptypes/timestamp.dep.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: github.com/golang/protobuf/ptypes/timestamp 3 | version: v1.5.3 4 | type: go 5 | summary: 6 | homepage: https://pkg.go.dev/github.com/golang/protobuf/ptypes/timestamp 7 | license: bsd-3-clause 8 | licenses: 9 | - sources: protobuf@v1.5.3/LICENSE 10 | text: |+ 11 | Copyright 2010 The Go Authors. All rights reserved. 12 | 13 | Redistribution and use in source and binary forms, with or without 14 | modification, are permitted provided that the following conditions are 15 | met: 16 | 17 | * Redistributions of source code must retain the above copyright 18 | notice, this list of conditions and the following disclaimer. 19 | * Redistributions in binary form must reproduce the above 20 | copyright notice, this list of conditions and the following disclaimer 21 | in the documentation and/or other materials provided with the 22 | distribution. 23 | * Neither the name of Google Inc. nor the names of its 24 | contributors may be used to endorse or promote products derived from 25 | this software without specific prior written permission. 26 | 27 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 28 | "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 29 | LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 30 | A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 31 | OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 32 | SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 33 | LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 34 | DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 35 | THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 36 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 37 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 38 | 39 | notices: [] 40 | ... 41 | -------------------------------------------------------------------------------- /.licenses/arduino-fwuploader/go/github.com/ulikunitz/xz/internal/xlog.dep.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: github.com/ulikunitz/xz/internal/xlog 3 | version: v0.5.11 4 | type: go 5 | summary: Package xlog provides a simple logging package that allows to disable certain 6 | message categories. 7 | homepage: https://pkg.go.dev/github.com/ulikunitz/xz/internal/xlog 8 | license: bsd-3-clause 9 | licenses: 10 | - sources: xz@v0.5.11/LICENSE 11 | text: | 12 | Copyright (c) 2014-2022 Ulrich Kunitz 13 | All rights reserved. 14 | 15 | Redistribution and use in source and binary forms, with or without 16 | modification, are permitted provided that the following conditions are met: 17 | 18 | * Redistributions of source code must retain the above copyright notice, this 19 | list of conditions and the following disclaimer. 20 | 21 | * Redistributions in binary form must reproduce the above copyright notice, 22 | this list of conditions and the following disclaimer in the documentation 23 | and/or other materials provided with the distribution. 24 | 25 | * My name, Ulrich Kunitz, may not be used to endorse or promote products 26 | derived from this software without specific prior written permission. 27 | 28 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 29 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 30 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 31 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE 32 | FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 33 | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 34 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 35 | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 36 | OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 37 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 38 | notices: [] 39 | -------------------------------------------------------------------------------- /.licenses/arduino-fwuploader/go/github.com/golang/protobuf/proto.dep.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: github.com/golang/protobuf/proto 3 | version: v1.5.3 4 | type: go 5 | summary: Package proto provides functionality for handling protocol buffer messages. 6 | homepage: https://pkg.go.dev/github.com/golang/protobuf/proto 7 | license: bsd-3-clause 8 | licenses: 9 | - sources: protobuf@v1.5.3/LICENSE 10 | text: |+ 11 | Copyright 2010 The Go Authors. All rights reserved. 12 | 13 | Redistribution and use in source and binary forms, with or without 14 | modification, are permitted provided that the following conditions are 15 | met: 16 | 17 | * Redistributions of source code must retain the above copyright 18 | notice, this list of conditions and the following disclaimer. 19 | * Redistributions in binary form must reproduce the above 20 | copyright notice, this list of conditions and the following disclaimer 21 | in the documentation and/or other materials provided with the 22 | distribution. 23 | * Neither the name of Google Inc. nor the names of its 24 | contributors may be used to endorse or promote products derived from 25 | this software without specific prior written permission. 26 | 27 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 28 | "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 29 | LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 30 | A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 31 | OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 32 | SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 33 | LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 34 | DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 35 | THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 36 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 37 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 38 | 39 | notices: [] 40 | ... 41 | -------------------------------------------------------------------------------- /.licenses/arduino-fwuploader/go/github.com/golang/protobuf/ptypes.dep.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: github.com/golang/protobuf/ptypes 3 | version: v1.5.3 4 | type: go 5 | summary: Package ptypes provides functionality for interacting with well-known types. 6 | homepage: https://pkg.go.dev/github.com/golang/protobuf/ptypes 7 | license: bsd-3-clause 8 | licenses: 9 | - sources: protobuf@v1.5.3/LICENSE 10 | text: |+ 11 | Copyright 2010 The Go Authors. All rights reserved. 12 | 13 | Redistribution and use in source and binary forms, with or without 14 | modification, are permitted provided that the following conditions are 15 | met: 16 | 17 | * Redistributions of source code must retain the above copyright 18 | notice, this list of conditions and the following disclaimer. 19 | * Redistributions in binary form must reproduce the above 20 | copyright notice, this list of conditions and the following disclaimer 21 | in the documentation and/or other materials provided with the 22 | distribution. 23 | * Neither the name of Google Inc. nor the names of its 24 | contributors may be used to endorse or promote products derived from 25 | this software without specific prior written permission. 26 | 27 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 28 | "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 29 | LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 30 | A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 31 | OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 32 | SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 33 | LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 34 | DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 35 | THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 36 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 37 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 38 | 39 | notices: [] 40 | ... 41 | -------------------------------------------------------------------------------- /.licenses/arduino-fwuploader/go/github.com/magiconair/properties.dep.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: github.com/magiconair/properties 3 | version: v1.8.5 4 | type: go 5 | summary: Package properties provides functions for reading and writing ISO-8859-1 6 | and UTF-8 encoded .properties files and has support for recursive property expansion. 7 | homepage: https://pkg.go.dev/github.com/magiconair/properties 8 | license: bsd-2-clause 9 | licenses: 10 | - sources: LICENSE.md 11 | text: | 12 | Copyright (c) 2013-2020, Frank Schroeder 13 | 14 | All rights reserved. 15 | 16 | Redistribution and use in source and binary forms, with or without 17 | modification, are permitted provided that the following conditions are met: 18 | 19 | * Redistributions of source code must retain the above copyright notice, this 20 | list of conditions and the following disclaimer. 21 | 22 | * Redistributions in binary form must reproduce the above copyright notice, 23 | this list of conditions and the following disclaimer in the documentation 24 | and/or other materials provided with the distribution. 25 | 26 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 27 | ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 28 | WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 29 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR 30 | ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 31 | (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 32 | LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 33 | ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 34 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 35 | SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 36 | - sources: README.md 37 | text: 2 clause BSD license. See [LICENSE](https://github.com/magiconair/properties/blob/master/LICENSE) 38 | file for details. 39 | notices: [] 40 | -------------------------------------------------------------------------------- /.licenses/arduino-fwuploader/go/github.com/spf13/pflag.dep.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: github.com/spf13/pflag 3 | version: v1.0.5 4 | type: go 5 | summary: Package pflag is a drop-in replacement for Go's flag package, implementing 6 | POSIX/GNU-style --flags. 7 | homepage: https://pkg.go.dev/github.com/spf13/pflag 8 | license: bsd-3-clause 9 | licenses: 10 | - sources: LICENSE 11 | text: | 12 | Copyright (c) 2012 Alex Ogier. All rights reserved. 13 | Copyright (c) 2012 The Go Authors. All rights reserved. 14 | 15 | Redistribution and use in source and binary forms, with or without 16 | modification, are permitted provided that the following conditions are 17 | met: 18 | 19 | * Redistributions of source code must retain the above copyright 20 | notice, this list of conditions and the following disclaimer. 21 | * Redistributions in binary form must reproduce the above 22 | copyright notice, this list of conditions and the following disclaimer 23 | in the documentation and/or other materials provided with the 24 | distribution. 25 | * Neither the name of Google Inc. nor the names of its 26 | contributors may be used to endorse or promote products derived from 27 | this software without specific prior written permission. 28 | 29 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 30 | "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 31 | LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 32 | A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 33 | OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 34 | SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 35 | LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 36 | DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 37 | THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 38 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 39 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 40 | notices: [] 41 | -------------------------------------------------------------------------------- /test/test_main.py: -------------------------------------------------------------------------------- 1 | # arduino-fwuploader 2 | # Copyright (c) 2021 Arduino LLC. All right reserved. 3 | 4 | # This program is free software: you can redistribute it and/or modify 5 | # it under the terms of the GNU Affero General Public License as published 6 | # by the Free Software Foundation, either version 3 of the License, or 7 | # (at your option) any later version. 8 | 9 | # This program is distributed in the hope that it will be useful, 10 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | # GNU Affero General Public License for more details. 13 | 14 | # You should have received a copy of the GNU Affero General Public License 15 | # along with this program. If not, see . 16 | 17 | import json 18 | import semver 19 | import dateutil.parser 20 | 21 | 22 | def test_version(run_command): 23 | result = run_command(cmd=["version"]) 24 | assert result.ok 25 | output_list = result.stdout.strip().split(sep=" ") 26 | assert output_list[0] == "arduino-fwuploader" 27 | assert output_list[1] == "Version:" 28 | version = output_list[2] 29 | assert semver.VersionInfo.isvalid(version=version) or version == "git-snapshot" or "nightly" in version 30 | assert output_list[3] == "Commit:" 31 | assert isinstance(output_list[4], str) 32 | assert output_list[5] == "Date:" 33 | assert dateutil.parser.isoparse(output_list[6]) 34 | assert "" == result.stderr 35 | 36 | result = run_command(cmd=["version", "--format", "json"]) 37 | assert result.ok 38 | parsed_out = json.loads(result.stdout) 39 | assert parsed_out.get("Application", False) == "arduino-fwuploader" 40 | version = parsed_out.get("VersionString", False) 41 | assert semver.VersionInfo.isvalid(version=version) or "git-snapshot" in version or "nightly" in version 42 | assert parsed_out.get("Commit", False) != "" 43 | assert isinstance(parsed_out.get("Commit", False), str) 44 | assert parsed_out.get("Date") != "" 45 | assert isinstance(parsed_out.get("Date", False), str) 46 | -------------------------------------------------------------------------------- /.licenses/arduino-fwuploader/go/github.com/golang/protobuf/jsonpb.dep.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: github.com/golang/protobuf/jsonpb 3 | version: v1.5.3 4 | type: go 5 | summary: Package jsonpb provides functionality to marshal and unmarshal between a 6 | protocol buffer message and JSON. 7 | homepage: https://pkg.go.dev/github.com/golang/protobuf/jsonpb 8 | license: bsd-3-clause 9 | licenses: 10 | - sources: protobuf@v1.5.3/LICENSE 11 | text: |+ 12 | Copyright 2010 The Go Authors. All rights reserved. 13 | 14 | Redistribution and use in source and binary forms, with or without 15 | modification, are permitted provided that the following conditions are 16 | met: 17 | 18 | * Redistributions of source code must retain the above copyright 19 | notice, this list of conditions and the following disclaimer. 20 | * Redistributions in binary form must reproduce the above 21 | copyright notice, this list of conditions and the following disclaimer 22 | in the documentation and/or other materials provided with the 23 | distribution. 24 | * Neither the name of Google Inc. nor the names of its 25 | contributors may be used to endorse or promote products derived from 26 | this software without specific prior written permission. 27 | 28 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 29 | "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 30 | LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 31 | A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 32 | OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 33 | SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 34 | LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 35 | DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 36 | THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 37 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 38 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 39 | 40 | notices: [] 41 | ... 42 | -------------------------------------------------------------------------------- /mkdocs.yml: -------------------------------------------------------------------------------- 1 | # Source: https://github.com/arduino/tooling-project-assets/blob/main/workflow-templates/assets/mkdocs/mkdocs.yml 2 | # See: https://www.mkdocs.org/user-guide/configuration/ 3 | 4 | site_name: Arduino Firmware Uploader 5 | site_description: A firmware uploader/updater for Arduino Boards. 6 | site_url: https://arduino.github.io/arduino-fwuploader/ 7 | 8 | repo_name: arduino/arduino-fwuploader 9 | repo_url: https://github.com/arduino/arduino-fwuploader 10 | edit_uri: blob/main/docs/ 11 | 12 | copyright: Copyright 2021 ARDUINO SA (http://www.arduino.cc/) 13 | 14 | theme: 15 | name: material 16 | logo: img/icon_mac_light.png 17 | palette: 18 | primary: teal 19 | accent: orange 20 | 21 | markdown_extensions: 22 | - markdown.extensions.codehilite: 23 | guess_lang: false 24 | - markdown.extensions.toc: 25 | permalink: true 26 | - mdx_truly_sane_lists: 27 | nested_indent: 2 28 | truly_sane: true 29 | - pymdownx.betterem: 30 | smart_enable: all 31 | - pymdownx.details 32 | - pymdownx.emoji: 33 | emoji_generator: !!python/name:pymdownx.emoji.to_svg 34 | emoji_index: !!python/name:pymdownx.emoji.twemoji 35 | - pymdownx.magiclink: 36 | repo: arduino-fwuploader 37 | repo_url_shorthand: true 38 | user: arduino 39 | - pymdownx.superfences 40 | - pymdownx.tasklist: 41 | custom_checkbox: true 42 | - pymdownx.tilde 43 | 44 | # Configure Material theme for versioning 45 | extra: 46 | version: 47 | provider: mike 48 | 49 | nav: 50 | - Home: index.md 51 | - Installation: installation.md 52 | - Usage: usage.md 53 | - Command reference: 54 | - arduino-fwuploader: commands/arduino-fwuploader.md 55 | - certificates: commands/arduino-fwuploader_certificates.md 56 | - certificates flash: commands/arduino-fwuploader_certificates_flash.md 57 | - firmware: commands/arduino-fwuploader_firmware.md 58 | - firmware flash: commands/arduino-fwuploader_firmware_flash.md 59 | - firmware get-version: commands/arduino-fwuploader_firmware_get-version.md 60 | - firmware list: commands/arduino-fwuploader_firmware_list.md 61 | - version: commands/arduino-fwuploader_version.md 62 | - Plugins: plugins.md 63 | - Deprecated boards: deprecated.md 64 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Arduino Firmware Uploader 2 | 3 | The Arduino Firmware Uploader is a tool made to update the firmware and/or add SSL certificates for any Arduino board 4 | equipped with ESP32-S3 or NINA Wi-Fi module. 5 | 6 | [![Test Go status](https://github.com/arduino/arduino-fwuploader/actions/workflows/test-go-task.yml/badge.svg)](https://github.com/arduino/arduino-fwuploader/actions/workflows/test-go-task.yml) 7 | [![Codecov](https://codecov.io/gh/arduino/arduino-fwuploader/branch/main/graph/badge.svg)](https://codecov.io/gh/arduino/arduino-fwuploader) 8 | [![Test Integration status](https://github.com/arduino/arduino-fwuploader/actions/workflows/test-go-integration-task.yml/badge.svg)](https://github.com/arduino/arduino-fwuploader/actions/workflows/test-go-integration-task.yml) 9 | [![Deploy Website status](https://github.com/arduino/arduino-fwuploader/actions/workflows/deploy-cobra-mkdocs-versioned-poetry.yml/badge.svg)](https://github.com/arduino/arduino-fwuploader/actions/workflows/deploy-cobra-mkdocs-versioned-poetry.yml) 10 | 11 | ## ❗❗❗Notice regarding versions before 2.0.0 ❗❗❗ 12 | 13 | **ATTENTION** old versions (e.g 1.0.x) will not work anymore, further details in this [issue]. Please use the [latest] 14 | release 15 | 16 | ## Docs 17 | 18 | For guidance on installation and development, see the [User documentation] 19 | 20 | ## Quickstart 21 | 22 | 1. [Install] the Arduino Firmware Uploader 23 | 1. Follow the [Usage] guide to check out what the tool can do 24 | 1. Browse the [Commands reference] to see all the available commands 25 | 26 | ## Security 27 | 28 | If you think you found a vulnerability or other security-related bug in this project, please read our [security policy] and 29 | report the bug to our Security Team 🛡️ Thank you! 30 | 31 | e-mail contact: security@arduino.cc 32 | 33 | [security policy]: https://github.com/arduino/arduino-fwuploader/security/policy 34 | [user documentation]: https://arduino.github.io/arduino-fwuploader/ 35 | [install]: https://arduino.github.io/arduino-fwuploader/latest/installation 36 | [usage]: https://arduino.github.io/arduino-fwuploader/latest/usage 37 | [commands reference]: https://arduino.github.io/arduino-fwuploader/latest/commands/arduino-fwuploader/ 38 | [issue]: https://github.com/arduino/arduino-fwuploader/issues/93 39 | [latest]: https://github.com/arduino/arduino-fwuploader/releases 40 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature-request.yml: -------------------------------------------------------------------------------- 1 | # Source: https://github.com/arduino/tooling-project-assets/blob/main/issue-templates/forms/platform-dependent/bug-report.yml 2 | # See: https://docs.github.com/communities/using-templates-to-encourage-useful-issues-and-pull-requests/syntax-for-issue-forms 3 | 4 | name: Feature request 5 | description: Suggest an enhancement to this project. 6 | labels: 7 | - "type: enhancement" 8 | body: 9 | - type: textarea 10 | id: description 11 | attributes: 12 | label: Describe the request 13 | validations: 14 | required: true 15 | - type: textarea 16 | id: current 17 | attributes: 18 | label: Describe the current behavior 19 | description: | 20 | What is the current behavior of Arduino Firmware Uploader in relation to your request? 21 | How can we reproduce that behavior? 22 | validations: 23 | required: true 24 | - type: input 25 | id: project-version 26 | attributes: 27 | label: Arduino Firmware Uploader version 28 | description: | 29 | Which version of Arduino Firmware Uploader are you using? 30 | (output of `arduino-fwuploader version`) 31 | _This should be the most recent version available._ 32 | validations: 33 | required: true 34 | - type: dropdown 35 | id: os 36 | attributes: 37 | label: Operating system 38 | description: Which operating system(s) are you using on your computer? 39 | multiple: true 40 | options: 41 | - Windows 42 | - Linux 43 | - macOS 44 | - N/A 45 | validations: 46 | required: true 47 | - type: input 48 | id: os-version 49 | attributes: 50 | label: Operating system version 51 | description: Which version of the operating system are you using on your computer? 52 | validations: 53 | required: true 54 | - type: textarea 55 | id: additional 56 | attributes: 57 | label: Additional context 58 | description: Add any additional information here. 59 | validations: 60 | required: false 61 | - type: checkboxes 62 | id: checklist 63 | attributes: 64 | label: Issue checklist 65 | description: Please double-check that you have done each of the following things before submitting the issue. 66 | options: 67 | - label: I searched for previous requests in [the issue tracker](https://github.com/arduino/arduino-fwuploader/issues?q=) 68 | required: true 69 | - label: I verified the feature was still missing when using the latest version 70 | required: true 71 | - label: My request contains all necessary details 72 | required: true 73 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/bug-report.yml: -------------------------------------------------------------------------------- 1 | # Source: https://github.com/arduino/tooling-project-assets/blob/main/issue-templates/forms/platform-dependent/bug-report.yml 2 | # See: https://docs.github.com/communities/using-templates-to-encourage-useful-issues-and-pull-requests/syntax-for-issue-forms 3 | 4 | name: Bug report 5 | description: Report a problem with the code or documentation in this repository. 6 | labels: 7 | - "type: imperfection" 8 | body: 9 | - type: textarea 10 | id: description 11 | attributes: 12 | label: Describe the problem 13 | validations: 14 | required: true 15 | - type: textarea 16 | id: reproduce 17 | attributes: 18 | label: To reproduce 19 | description: Provide the specific set of steps we can follow to reproduce the problem. 20 | validations: 21 | required: true 22 | - type: textarea 23 | id: expected 24 | attributes: 25 | label: Expected behavior 26 | description: What would you expect to happen after following those instructions? 27 | validations: 28 | required: true 29 | - type: input 30 | id: project-version 31 | attributes: 32 | label: Arduino Firmware Uploader version 33 | description: | 34 | Which version of Arduino Firmware Uploader are you using? 35 | (output of `arduino-fwuploader version`) 36 | _This should be the most recent version available._ 37 | validations: 38 | required: true 39 | - type: dropdown 40 | id: os 41 | attributes: 42 | label: Operating system 43 | description: Which operating system(s) are you using on your computer? 44 | multiple: true 45 | options: 46 | - Windows 47 | - Linux 48 | - macOS 49 | - N/A 50 | validations: 51 | required: true 52 | - type: input 53 | id: os-version 54 | attributes: 55 | label: Operating system version 56 | description: Which version of the operating system are you using on your computer? 57 | validations: 58 | required: true 59 | - type: textarea 60 | id: additional 61 | attributes: 62 | label: Additional context 63 | description: Add any additional information here. 64 | validations: 65 | required: false 66 | - type: checkboxes 67 | id: checklist 68 | attributes: 69 | label: Issue checklist 70 | description: Please double-check that you have done each of the following things before submitting the issue. 71 | options: 72 | - label: I searched for previous reports in [the issue tracker](https://github.com/arduino/arduino-fwuploader/issues?q=) 73 | required: true 74 | - label: I verified the problem still occurs when using the latest version 75 | required: true 76 | - label: My report contains all necessary details 77 | required: true 78 | -------------------------------------------------------------------------------- /.licensed.yml: -------------------------------------------------------------------------------- 1 | # See: https://github.com/github/licensed/blob/master/docs/configuration.md 2 | sources: 3 | go: true 4 | 5 | reviewed: 6 | go: 7 | - golang.org/x/exp/constraints 8 | - golang.org/x/exp/slices 9 | 10 | apps: 11 | - source_path: ./ 12 | 13 | # Source: https://github.com/arduino/tooling-project-assets/blob/main/workflow-templates/assets/check-dependencies/AGPL-3.0/.licensed.yml 14 | allowed: 15 | # The following are based on: https://www.gnu.org/licenses/license-list.html#GPLCompatibleLicenses 16 | - gpl-1.0-or-later 17 | - gpl-1.0+ # Deprecated ID for `gpl-1.0-or-later` 18 | - gpl-2.0-or-later 19 | - gpl-2.0 20 | - gpl-2.0+ # Deprecated ID for `gpl-2.0-or-later` 21 | - gpl-3.0-only 22 | - gpl-3.0 # Deprecated ID for `gpl-3.0-only` 23 | - gpl-3.0-or-later 24 | - gpl-3.0+ # Deprecated ID for `gpl-3.0-or-later` 25 | - lgpl-2.0-or-later 26 | - lgpl-2.0+ # Deprecated ID for `lgpl-2.0-or-later` 27 | - lgpl-2.1-only 28 | - lgpl-2.1 # Deprecated ID for `lgpl-2.1-only` 29 | - lgpl-2.1-or-later 30 | - lgpl-2.1+ # Deprecated ID for `lgpl-2.1-or-later` 31 | - lgpl-3.0-only 32 | - lgpl-3.0 # Deprecated ID for `lgpl-3.0-only` 33 | - lgpl-3.0-or-later 34 | - lgpl-3.0+ # Deprecated ID for `lgpl-3.0-or-later` 35 | - agpl-1.0-or-later 36 | - agpl-3.0-only 37 | - agpl-3.0 # Deprecated ID for `agpl-3.0-only` 38 | - agpl-3.0-or-later 39 | - fsfap 40 | - apache-2.0 41 | - artistic-2.0 42 | - clartistic 43 | - sleepycat 44 | - bsl-1.0 45 | - bsd-3-clause 46 | - cecill-2.0 47 | - bsd-3-clause-clear 48 | # "Cryptix General License" - no SPDX ID (https://github.com/spdx/license-list-XML/issues/456) 49 | - ecos-2.0 50 | - ecl-2.0 51 | - efl-2.0 52 | - eudatagrid 53 | - mit 54 | - bsd-2-clause # Subsumed by `bsd-2-clause-views` 55 | - bsd-2-clause-netbsd # Deprecated ID for `bsd-2-clause` 56 | - bsd-2-clause-views # This is the version linked from https://www.gnu.org/licenses/license-list.html#FreeBSD 57 | - bsd-2-clause-freebsd # Deprecated ID for `bsd-2-clause-views` 58 | - ftl 59 | - hpnd 60 | - imatix 61 | - imlib2 62 | - ijg 63 | # "Informal license" - this is a general class of license 64 | - intel 65 | - isc 66 | - mpl-2.0 67 | - ncsa 68 | # "License of Netscape JavaScript" - no SPDX ID 69 | - oldap-2.7 70 | # "License of Perl 5 and below" - possibly `Artistic-1.0-Perl` ? 71 | - cc0-1.0 72 | - cc-pddc 73 | - psf-2.0 74 | - ruby 75 | - sgi-b-2.0 76 | - smlnj 77 | - standardml-nj # Deprecated ID for `smlnj` 78 | - unicode-dfs-2015 79 | - upl-1.0 80 | - unlicense 81 | - vim 82 | - w3c 83 | - wtfpl 84 | - lgpl-2.0-or-later with wxwindows-exception-3.1 85 | - wxwindows # Deprecated ID for `lgpl-2.0-or-later with wxwindows-exception-3.1` 86 | - x11 87 | - xfree86-1.1 88 | - zlib 89 | - zpl-2.0 90 | - zpl-2.1 91 | # The following are based on individual license text 92 | - eupl-1.2 93 | -------------------------------------------------------------------------------- /.github/workflows/generate-index.yml: -------------------------------------------------------------------------------- 1 | name: Generate Index 2 | 3 | env: 4 | PROJECT_NAME: arduino-fwuploader 5 | AWS_REGION: "us-east-1" 6 | 7 | # See: https://docs.github.com/en/actions/reference/events-that-trigger-workflows 8 | on: 9 | push: 10 | branches: 11 | - main 12 | paths: 13 | - "generator/**" 14 | - "firmwares/**" 15 | - "poetry.lock" 16 | - "pyproject.toml" 17 | - ".github/workflows/generate-index.yml" 18 | workflow_dispatch: 19 | repository_dispatch: 20 | 21 | jobs: 22 | generate-index: 23 | runs-on: ubuntu-latest 24 | environment: production 25 | permissions: 26 | contents: write 27 | id-token: write # This is required for requesting the JWT 28 | defaults: 29 | run: 30 | working-directory: generator 31 | 32 | steps: 33 | - name: Checkout repository 34 | uses: actions/checkout@v6 35 | 36 | - name: Install Taskfile 37 | uses: arduino/setup-task@v2 38 | 39 | - name: Install Python 40 | uses: actions/setup-python@v6 41 | with: 42 | python-version: "3.9" 43 | 44 | - name: Install Poetry 45 | run: pip install poetry 46 | 47 | - name: Install dependencies 48 | run: | 49 | cd $GITHUB_WORKSPACE 50 | task poetry:install-deps 51 | 52 | - name: Generate plugin firmware index 53 | run: poetry run ./generator.py 54 | 55 | # fix `gpg: signing failed: Inappropriate ioctl for device` 56 | # https://github.com/keybase/keybase-issues/issues/2798 57 | - name: Import GPG key 58 | run: | 59 | echo "${{ secrets.GPG_PRIVATE_KEY }}" | base64 -di > /tmp/private.key 60 | gpg --batch --import --passphrase "${{ secrets.PASSPHRASE }}" /tmp/private.key 61 | echo "GPG_TTY=$(tty)" >> $GITHUB_ENV 62 | 63 | # disable gpg pass prompt 64 | # https://stackoverflow.com/questions/49072403/suppress-the-passphrase-prompt-in-gpg-command 65 | 66 | - name: sign the plugin firmware index json 67 | run: | 68 | gpg \ 69 | --pinentry-mode=loopback \ 70 | --passphrase "${{ secrets.PASSPHRASE }}" \ 71 | --output boards/plugin_firmware_index.json.sig \ 72 | --detach-sign boards/plugin_firmware_index.json 73 | 74 | - name: create the gzip 75 | run: gzip --keep boards/plugin_firmware_index.json 76 | 77 | - name: configure aws credentials 78 | uses: aws-actions/configure-aws-credentials@v5 79 | with: 80 | role-to-assume: ${{ secrets.AWS_ROLE_TO_ASSUME }} 81 | role-session-name: "github_${{ env.PROJECT_NAME }}" 82 | aws-region: ${{ env.AWS_REGION }} 83 | 84 | - name: s3 sync 85 | run: | 86 | aws s3 sync boards/ s3://${{ secrets.DOWNLOADS_BUCKET }}/${{ env.PROJECT_NAME }}/boards 87 | aws s3 sync firmwares/ s3://${{ secrets.DOWNLOADS_BUCKET }}/${{ env.PROJECT_NAME }}/firmwares 88 | env: 89 | AWS_REGION: ${{ env.AWS_REGION }} # or https://github.com/aws/aws-cli/issues/5623 90 | -------------------------------------------------------------------------------- /indexes/firmwareindex/firmwareindex_test.go: -------------------------------------------------------------------------------- 1 | /* 2 | arduino-fwuploader 3 | Copyright (c) 2021 Arduino LLC. All right reserved. 4 | 5 | This program is free software: you can redistribute it and/or modify 6 | it under the terms of the GNU Affero General Public License as published 7 | by the Free Software Foundation, either version 3 of the License, or 8 | (at your option) any later version. 9 | 10 | This program is distributed in the hope that it will be useful, 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | GNU Affero General Public License for more details. 14 | 15 | You should have received a copy of the GNU Affero General Public License 16 | along with this program. If not, see . 17 | */ 18 | 19 | package firmwareindex 20 | 21 | import ( 22 | "testing" 23 | 24 | "github.com/arduino/go-paths-helper" 25 | "github.com/stretchr/testify/require" 26 | ) 27 | 28 | func TestIndexParsing(t *testing.T) { 29 | indexFile := paths.New("testdata/plugin_firmware_index.json") 30 | t.Logf("testing with index: %s", indexFile) 31 | index, e := LoadIndexNoSign(indexFile) 32 | require.NoError(t, e) 33 | require.NotEmpty(t, index) 34 | 35 | index, e = LoadIndex(indexFile) 36 | require.NoError(t, e) 37 | require.NotEmpty(t, index) 38 | } 39 | 40 | func TestGetBoard(t *testing.T) { 41 | indexFile := paths.New("testdata/plugin_firmware_index.json") 42 | t.Logf("testing with index: %s", indexFile) 43 | index, e := LoadIndexNoSign(indexFile) 44 | require.NoError(t, e) 45 | require.NotEmpty(t, index) 46 | 47 | board := index.GetBoard("arduino:samd:mkrwifi1010") 48 | require.NotNil(t, board) 49 | require.Equal(t, board.Fqbn, "arduino:samd:mkrwifi1010") 50 | 51 | board = index.GetBoard("arduino:samd:nano_33_iot") 52 | require.NotNil(t, board) 53 | require.Equal(t, board.Fqbn, "arduino:samd:nano_33_iot") 54 | 55 | board = index.GetBoard("arduino:avr:nessuno") 56 | require.Nil(t, board) 57 | } 58 | 59 | func TestGetLatestFirmware(t *testing.T) { 60 | indexFile := paths.New("testdata/plugin_firmware_index.json") 61 | t.Logf("testing with index: %s", indexFile) 62 | index, e := LoadIndexNoSign(indexFile) 63 | require.NoError(t, e) 64 | require.NotEmpty(t, index) 65 | 66 | firmware := index.GetBoard("arduino:samd:mkrwifi1010").LatestFirmware() 67 | require.Equal(t, firmware.Version.String(), "1.5.0") 68 | } 69 | 70 | func TestGetFirmware(t *testing.T) { 71 | indexFile := paths.New("testdata/plugin_firmware_index.json") 72 | t.Logf("testing with index: %s", indexFile) 73 | index, e := LoadIndexNoSign(indexFile) 74 | require.NoError(t, e) 75 | require.NotEmpty(t, index) 76 | 77 | firmware := index.GetBoard("arduino:samd:mkrwifi1010").GetFirmware("1.5.0") 78 | require.Equal(t, firmware.Version.String(), "1.5.0") 79 | 80 | firmware = index.GetBoard("arduino:samd:mkrwifi1010").GetFirmware("1.4.8") 81 | require.Equal(t, firmware.Version.String(), "1.4.8") 82 | 83 | firmware = index.GetBoard("arduino:samd:mkrwifi1010").GetFirmware("0.0.0") 84 | require.Nil(t, firmware) 85 | } 86 | -------------------------------------------------------------------------------- /go.mod: -------------------------------------------------------------------------------- 1 | module github.com/arduino/arduino-fwuploader 2 | 3 | go 1.18 4 | 5 | require ( 6 | github.com/arduino/arduino-cli v0.0.0-20230613145607-5725c0273235 7 | github.com/arduino/go-paths-helper v1.9.0 8 | github.com/mattn/go-colorable v0.1.8 9 | github.com/rifflock/lfshook v0.0.0-20180920164130-b9218ef580f5 10 | github.com/sirupsen/logrus v1.8.3 11 | github.com/spf13/cobra v1.2.1 12 | github.com/stretchr/testify v1.8.4 13 | go.bug.st/downloader/v2 v2.1.1 14 | go.bug.st/relaxed-semver v0.10.2 15 | golang.org/x/exp v0.0.0-20230321023759-10a507213a29 16 | gopkg.in/yaml.v3 v3.0.1 17 | ) 18 | 19 | require ( 20 | github.com/arduino/go-properties-orderedmap v1.7.1 // indirect 21 | github.com/arduino/go-timeutils v0.0.0-20171220113728-d1dd9e313b1b // indirect 22 | github.com/arduino/go-win32-utils v1.0.0 // indirect 23 | github.com/cmaglie/pb v1.0.27 // indirect 24 | github.com/codeclysm/extract/v3 v3.1.1 // indirect 25 | github.com/cpuguy83/go-md2man/v2 v2.0.0 // indirect 26 | github.com/davecgh/go-spew v1.1.1 // indirect 27 | github.com/fatih/color v1.7.0 // indirect 28 | github.com/fsnotify/fsnotify v1.4.9 // indirect 29 | github.com/golang/protobuf v1.5.3 // indirect 30 | github.com/h2non/filetype v1.1.3 // indirect 31 | github.com/hashicorp/hcl v1.0.0 // indirect 32 | github.com/inconshreveable/mousetrap v1.0.0 // indirect 33 | github.com/josharian/intern v1.0.0 // indirect 34 | github.com/juju/errors v0.0.0-20181118221551-089d3ea4e4d5 // indirect 35 | github.com/klauspost/compress v1.15.13 // indirect 36 | github.com/leonelquinteros/gotext v1.4.0 // indirect 37 | github.com/magiconair/properties v1.8.5 // indirect 38 | github.com/mailru/easyjson v0.7.7 // indirect 39 | github.com/mattn/go-isatty v0.0.14 // indirect 40 | github.com/mattn/go-runewidth v0.0.13 // indirect 41 | github.com/mitchellh/mapstructure v1.4.1 // indirect 42 | github.com/pelletier/go-toml v1.9.3 // indirect 43 | github.com/pkg/errors v0.9.1 // indirect 44 | github.com/pmezard/go-difflib v1.0.0 // indirect 45 | github.com/pmylund/sortutil v0.0.0-20120526081524-abeda66eb583 // indirect 46 | github.com/rivo/uniseg v0.2.0 // indirect 47 | github.com/russross/blackfriday/v2 v2.0.1 // indirect 48 | github.com/shurcooL/sanitized_anchor_name v1.0.0 // indirect 49 | github.com/spf13/afero v1.6.0 // indirect 50 | github.com/spf13/cast v1.3.1 // indirect 51 | github.com/spf13/jwalterweatherman v1.1.0 // indirect 52 | github.com/spf13/pflag v1.0.5 // indirect 53 | github.com/spf13/viper v1.8.1 // indirect 54 | github.com/subosito/gotenv v1.2.0 // indirect 55 | github.com/ulikunitz/xz v0.5.11 // indirect 56 | go.bug.st/cleanup v1.0.0 // indirect 57 | golang.org/x/crypto v0.14.0 // indirect 58 | golang.org/x/net v0.17.0 // indirect 59 | golang.org/x/sys v0.13.0 // indirect 60 | golang.org/x/term v0.13.0 // indirect 61 | golang.org/x/text v0.13.0 // indirect 62 | google.golang.org/genproto v0.0.0-20230410155749-daa745c078e1 // indirect 63 | google.golang.org/grpc v1.56.3 // indirect 64 | google.golang.org/protobuf v1.33.0 // indirect 65 | gopkg.in/ini.v1 v1.62.0 // indirect 66 | gopkg.in/yaml.v2 v2.4.0 // indirect 67 | ) 68 | -------------------------------------------------------------------------------- /cli/firmware/list.go: -------------------------------------------------------------------------------- 1 | /* 2 | arduino-fwuploader 3 | Copyright (c) 2021 Arduino LLC. All right reserved. 4 | 5 | This program is free software: you can redistribute it and/or modify 6 | it under the terms of the GNU Affero General Public License as published 7 | by the Free Software Foundation, either version 3 of the License, or 8 | (at your option) any later version. 9 | 10 | This program is distributed in the hope that it will be useful, 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | GNU Affero General Public License for more details. 14 | 15 | You should have received a copy of the GNU Affero General Public License 16 | along with this program. If not, see . 17 | */ 18 | 19 | package firmware 20 | 21 | import ( 22 | "os" 23 | 24 | "github.com/arduino/arduino-cli/table" 25 | "github.com/arduino/arduino-fwuploader/cli/common" 26 | "github.com/arduino/arduino-fwuploader/cli/feedback" 27 | "github.com/spf13/cobra" 28 | semver "go.bug.st/relaxed-semver" 29 | ) 30 | 31 | func newListCommand() *cobra.Command { 32 | var fqbn *string 33 | 34 | listCmd := &cobra.Command{ 35 | Use: "list", 36 | Short: "List available firmwares", 37 | Long: "Displays the availale firmwares, is it possible to filter results for a specific board.", 38 | Example: " " + os.Args[0] + " firmware list -b arduino:renesas_uno:unor4wifi", 39 | Args: cobra.NoArgs, 40 | Run: func(cmd *cobra.Command, args []string) { 41 | list(*fqbn) 42 | }, 43 | } 44 | fqbn = listCmd.Flags().StringP("fqbn", "b", "", "Filter result for the specified board FQBN") 45 | return listCmd 46 | } 47 | 48 | type FirmwareResult struct { 49 | BoardName string `json:"board_name"` 50 | BoardFQBN string `json:"board_fqbn"` 51 | Module string `json:"module"` 52 | FirmwareVersion *semver.RelaxedVersion `json:"firmware_version"` 53 | Latest bool 54 | } 55 | 56 | type FirmwareListResult []*FirmwareResult 57 | 58 | func list(fqbn string) { 59 | _, firmwareIndex := common.InitIndexes() 60 | 61 | res := FirmwareListResult{} 62 | for _, board := range firmwareIndex.Boards { 63 | if fqbn == "" || board.Fqbn == fqbn { 64 | for _, firmware := range board.Firmwares { 65 | res = append(res, &FirmwareResult{ 66 | BoardName: board.Name, 67 | BoardFQBN: board.Fqbn, 68 | Module: board.Module, 69 | FirmwareVersion: firmware.Version, 70 | Latest: board.LatestFirmware() == firmware, 71 | }) 72 | } 73 | } 74 | } 75 | 76 | feedback.PrintResult(res) 77 | } 78 | 79 | func (f FirmwareListResult) String() string { 80 | if len(f) == 0 { 81 | return "No firmwares available." 82 | } 83 | t := table.New() 84 | t.SetHeader("Board", "FQBN", "Module", "", "Version") 85 | for _, fw := range f { 86 | latest := "" 87 | if fw.Latest { 88 | latest = "✔" 89 | } 90 | t.AddRow(fw.BoardName, fw.BoardFQBN, fw.Module, latest, fw.FirmwareVersion) 91 | } 92 | return t.Render() 93 | } 94 | 95 | func (f FirmwareListResult) Data() interface{} { 96 | return f 97 | } 98 | -------------------------------------------------------------------------------- /.github/workflows/check-mkdocs-task.yml: -------------------------------------------------------------------------------- 1 | # Source: https://github.com/arduino/tooling-project-assets/blob/main/workflow-templates/check-mkdocs-task.md 2 | name: Check Website 3 | 4 | env: 5 | # See: https://github.com/actions/setup-go/tree/v2#readme 6 | GO_VERSION: "1.18" 7 | # See: https://github.com/actions/setup-python/tree/main#available-versions-of-python 8 | PYTHON_VERSION: "3.9" 9 | 10 | # See: https://docs.github.com/actions/using-workflows/events-that-trigger-workflows 11 | on: 12 | create: 13 | push: 14 | paths: 15 | - ".github/workflows/check-mkdocs-task.ya?ml" 16 | - "Taskfile.ya?ml" 17 | - "go.mod" 18 | - "go.sum" 19 | - "mkdocs.ya?ml" 20 | - "poetry.lock" 21 | - "pyproject.toml" 22 | - "docs/**" 23 | - "docsgen/**" 24 | - "**.go" 25 | pull_request: 26 | paths: 27 | - ".github/workflows/check-mkdocs-task.ya?ml" 28 | - "Taskfile.ya?ml" 29 | - "go.mod" 30 | - "go.sum" 31 | - "mkdocs.ya?ml" 32 | - "poetry.lock" 33 | - "pyproject.toml" 34 | - "docs/**" 35 | - "docsgen/**" 36 | - "**.go" 37 | schedule: 38 | # Run periodically to catch breakage caused by external changes. 39 | - cron: "0 5 * * WED" 40 | workflow_dispatch: 41 | repository_dispatch: 42 | 43 | jobs: 44 | run-determination: 45 | runs-on: ubuntu-latest 46 | permissions: {} 47 | outputs: 48 | result: ${{ steps.determination.outputs.result }} 49 | steps: 50 | - name: Determine if the rest of the workflow should run 51 | id: determination 52 | run: | 53 | RELEASE_BRANCH_REGEX="refs/heads/[0-9]+.[0-9]+.x" 54 | # The `create` event trigger doesn't support `branches` filters, so it's necessary to use Bash instead. 55 | if [[ 56 | "${{ github.event_name }}" != "create" || 57 | "${{ github.ref }}" =~ $RELEASE_BRANCH_REGEX 58 | ]]; then 59 | # Run the other jobs. 60 | RESULT="true" 61 | else 62 | # There is no need to run the other jobs. 63 | RESULT="false" 64 | fi 65 | 66 | echo "result=$RESULT" >> $GITHUB_OUTPUT 67 | 68 | check: 69 | needs: run-determination 70 | if: needs.run-determination.outputs.result == 'true' 71 | runs-on: ubuntu-latest 72 | permissions: 73 | contents: read 74 | 75 | steps: 76 | - name: Checkout repository 77 | uses: actions/checkout@v6 78 | 79 | - name: Install Go 80 | uses: actions/setup-go@v6 81 | with: 82 | go-version: ${{ env.GO_VERSION }} 83 | 84 | - name: Install Python 85 | uses: actions/setup-python@v6 86 | with: 87 | python-version: ${{ env.PYTHON_VERSION }} 88 | 89 | - name: Install Poetry 90 | run: pip install poetry 91 | 92 | - name: Install Task 93 | uses: arduino/setup-task@v2 94 | with: 95 | repo-token: ${{ secrets.GITHUB_TOKEN }} 96 | version: 3.x 97 | 98 | - name: Build website 99 | run: task website:check 100 | -------------------------------------------------------------------------------- /.github/workflows/check-general-formatting-task.yml: -------------------------------------------------------------------------------- 1 | # Source: https://github.com/arduino/tooling-project-assets/blob/main/workflow-templates/check-general-formatting-task.md 2 | name: Check General Formatting 3 | 4 | # See: https://docs.github.com/actions/using-workflows/events-that-trigger-workflows 5 | on: 6 | create: 7 | push: 8 | pull_request: 9 | schedule: 10 | # Run every Tuesday at 8 AM UTC to catch breakage caused by changes to tools. 11 | - cron: "0 8 * * TUE" 12 | workflow_dispatch: 13 | repository_dispatch: 14 | 15 | jobs: 16 | run-determination: 17 | runs-on: ubuntu-latest 18 | permissions: {} 19 | outputs: 20 | result: ${{ steps.determination.outputs.result }} 21 | steps: 22 | - name: Determine if the rest of the workflow should run 23 | id: determination 24 | run: | 25 | RELEASE_BRANCH_REGEX="refs/heads/[0-9]+.[0-9]+.x" 26 | # The `create` event trigger doesn't support `branches` filters, so it's necessary to use Bash instead. 27 | if [[ 28 | "${{ github.event_name }}" != "create" || 29 | "${{ github.ref }}" =~ $RELEASE_BRANCH_REGEX 30 | ]]; then 31 | # Run the other jobs. 32 | RESULT="true" 33 | else 34 | # There is no need to run the other jobs. 35 | RESULT="false" 36 | fi 37 | 38 | echo "result=$RESULT" >> $GITHUB_OUTPUT 39 | 40 | check: 41 | needs: run-determination 42 | if: needs.run-determination.outputs.result == 'true' 43 | runs-on: ubuntu-latest 44 | permissions: 45 | contents: read 46 | 47 | steps: 48 | - name: Set environment variables 49 | run: | 50 | # See: https://docs.github.com/actions/using-workflows/workflow-commands-for-github-actions#setting-an-environment-variable 51 | echo "EC_INSTALL_PATH=${{ runner.temp }}/editorconfig-checker" >> "$GITHUB_ENV" 52 | 53 | - name: Checkout repository 54 | uses: actions/checkout@v6 55 | 56 | - name: Install Task 57 | uses: arduino/setup-task@v2 58 | with: 59 | repo-token: ${{ secrets.GITHUB_TOKEN }} 60 | version: 3.x 61 | 62 | - name: Download latest editorconfig-checker release binary package 63 | id: download 64 | uses: MrOctopus/download-asset-action@1.1 65 | with: 66 | repository: editorconfig-checker/editorconfig-checker 67 | excludes: prerelease, draft 68 | asset: linux-amd64.tar.gz 69 | target: ${{ env.EC_INSTALL_PATH }} 70 | 71 | - name: Install editorconfig-checker 72 | run: | 73 | cd "${{ env.EC_INSTALL_PATH }}" 74 | tar --extract --file="${{ steps.download.outputs.name }}" 75 | # Give the binary a standard name 76 | mv "${{ env.EC_INSTALL_PATH }}/bin/ec-linux-amd64" "${{ env.EC_INSTALL_PATH }}/bin/ec" 77 | # Add installation to PATH: 78 | # See: https://docs.github.com/actions/using-workflows/workflow-commands-for-github-actions#adding-a-system-path 79 | echo "${{ env.EC_INSTALL_PATH }}/bin" >> "$GITHUB_PATH" 80 | 81 | - name: Check formatting 82 | run: task --silent general:check-formatting 83 | -------------------------------------------------------------------------------- /generator/new_boards.json: -------------------------------------------------------------------------------- 1 | { 2 | "arduino:renesas_uno:unor4wifi": { 3 | "moduleName": "ESP32-S3", 4 | "versions": ["0.1.0", "0.2.0", "0.2.1", "0.3.0", "0.4.1", "0.5.2", "0.6.0"], 5 | "name": "Arduino UNO R4 WiFi", 6 | "uploader_plugin": "arduino:uno-r4-wifi-fwuploader-plugin@1.0.0", 7 | "additional_tools": ["arduino:espflash@2.0.0", "arduino:bossac@1.9.1-arduino5"], 8 | "module": "ESP32-S3" 9 | }, 10 | "arduino:renesas_portenta:portenta_c33": { 11 | "moduleName": "ESP32-C3", 12 | "versions": ["1.5.0"], 13 | "name": "Arduino Portenta C33", 14 | "uploader_plugin": "arduino:portenta-c33-fwuploader-plugin@1.0.0", 15 | "additional_tools": ["arduino:esptool@3.3.3", "arduino:dfu-util@0.11.0-arduino5"], 16 | "module": "ESP32-C3" 17 | }, 18 | "arduino:samd:mkrwifi1010": { 19 | "moduleName": "NINA", 20 | "versions": [ 21 | "1.0.0", 22 | "1.1.0", 23 | "1.2.1", 24 | "1.2.2", 25 | "1.2.3", 26 | "1.2.4", 27 | "1.3.0", 28 | "1.4.0", 29 | "1.4.1", 30 | "1.4.2", 31 | "1.4.3", 32 | "1.4.4", 33 | "1.4.5", 34 | "1.4.6", 35 | "1.4.7", 36 | "1.4.8", 37 | "1.5.0", 38 | "1.6.0", 39 | "2.0.0" 40 | ], 41 | "name": "Arduino MKR WiFi 1010", 42 | "uploader_plugin": "arduino:nina-fwuploader-plugin@1.0.0", 43 | "additional_tools": ["arduino:bossac@1.7.0-arduino3"], 44 | "module": "NINA" 45 | }, 46 | "arduino:samd:nano_33_iot": { 47 | "moduleName": "NINA", 48 | "versions": [ 49 | "1.0.0", 50 | "1.1.0", 51 | "1.2.1", 52 | "1.2.2", 53 | "1.2.3", 54 | "1.2.4", 55 | "1.3.0", 56 | "1.4.0", 57 | "1.4.1", 58 | "1.4.2", 59 | "1.4.3", 60 | "1.4.4", 61 | "1.4.5", 62 | "1.4.6", 63 | "1.4.7", 64 | "1.4.8", 65 | "1.5.0", 66 | "1.6.0", 67 | "2.0.0" 68 | ], 69 | "name": "Arduino NANO 33 IoT", 70 | "uploader_plugin": "arduino:nina-fwuploader-plugin@1.0.0", 71 | "additional_tools": ["arduino:bossac@1.7.0-arduino3"], 72 | "module": "NINA" 73 | }, 74 | "arduino:megaavr:uno2018": { 75 | "moduleName": "NINA", 76 | "versions": [ 77 | "1.2.1", 78 | "1.2.2", 79 | "1.2.3", 80 | "1.2.4", 81 | "1.3.0", 82 | "1.4.0", 83 | "1.4.1", 84 | "1.4.2", 85 | "1.4.3", 86 | "1.4.4", 87 | "1.4.5", 88 | "1.4.6", 89 | "1.4.7", 90 | "1.4.8", 91 | "1.5.0", 92 | "1.6.0", 93 | "2.0.0" 94 | ], 95 | "name": "Arduino Uno WiFi Rev2", 96 | "uploader_plugin": "arduino:nina-fwuploader-plugin@1.0.0", 97 | "additional_tools": ["arduino:avrdude@6.3.0-arduino17"], 98 | "module": "NINA" 99 | }, 100 | "arduino:mbed_nano:nanorp2040connect": { 101 | "moduleName": "NINA", 102 | "versions": ["1.4.5", "1.4.6", "1.4.7", "1.4.8", "1.5.0", "1.6.0", "2.0.0"], 103 | "name": "Arduino Nano RP2040 Connect", 104 | "uploader_plugin": "arduino:nina-fwuploader-plugin@1.0.0", 105 | "additional_tools": ["arduino:rp2040tools@1.0.6"], 106 | "module": "NINA" 107 | } 108 | } 109 | -------------------------------------------------------------------------------- /extras/package_index.json.template: -------------------------------------------------------------------------------- 1 | { 2 | "name": "arduino-fwuploader", 3 | "version": "%%VERSION%%", 4 | "systems": [ 5 | { 6 | "host": "i686-linux-gnu", 7 | "url": "http://downloads.arduino.cc/arduino-fwuploader/%%FILENAME%%_%%VERSION%%_Linux_32bit.tar.gz", 8 | "archiveFileName": "%%FILENAME%%_%%VERSION%%_Linux_32bit.tar.gz", 9 | "checksum": "SHA-256:%%LINUX32_SHA%%", 10 | "size": "%%LINUX32_SIZE%%" 11 | }, 12 | { 13 | "host": "x86_64-linux-gnu", 14 | "url": "http://downloads.arduino.cc/arduino-fwuploader/%%FILENAME%%_%%VERSION%%_Linux_64bit.tar.gz", 15 | "archiveFileName": "%%FILENAME%%_%%VERSION%%_Linux_64bit.tar.gz", 16 | "checksum": "SHA-256:%%LINUX64_SHA%%", 17 | "size": "%%LINUX64_SIZE%%" 18 | }, 19 | { 20 | "host": "i686-mingw32", 21 | "url": "http://downloads.arduino.cc/arduino-fwuploader/%%FILENAME%%_%%VERSION%%_Windows_32bit.zip", 22 | "archiveFileName": "%%FILENAME%%_%%VERSION%%_Windows_32bit.zip", 23 | "checksum": "SHA-256:%%WINDOWS32_SHA%%", 24 | "size": "%%WINDOWS32_SIZE%%" 25 | }, 26 | { 27 | "host": "x86_64-mingw32", 28 | "url": "http://downloads.arduino.cc/arduino-fwuploader/%%FILENAME%%_%%VERSION%%_Windows_64bit.zip", 29 | "archiveFileName": "%%FILENAME%%_%%VERSION%%_Windows_64bit.zip", 30 | "checksum": "SHA-256:%%WINDOWS64_SHA%%", 31 | "size": "%%WINDOWS64_SIZE%%" 32 | }, 33 | { 34 | "host": "x86_64-apple-darwin", 35 | "url": "http://downloads.arduino.cc/arduino-fwuploader/%%FILENAME%%_%%VERSION%%_macOS_64bit.tar.gz", 36 | "archiveFileName": "%%FILENAME%%_%%VERSION%%_macOS_64bit.tar.gz", 37 | "checksum": "SHA-256:%%OSX64_SHA%%", 38 | "size": "%%OSX64_SIZE%%" 39 | }, 40 | { 41 | "host": "arm64-apple-darwin", 42 | "url": "http://downloads.arduino.cc/arduino-fwuploader/%%FILENAME%%_%%VERSION%%_macOS_ARM64.tar.gz", 43 | "archiveFileName": "%%FILENAME%%_%%VERSION%%_macOS_ARM64.tar.gz", 44 | "checksum": "SHA-256:%%OSXARM64_SHA%%", 45 | "size": "%%OSXARM64_SIZE%%" 46 | }, 47 | { 48 | "host": "arm-linux-gnueabihf", 49 | "url": "http://downloads.arduino.cc/arduino-fwuploader/%%FILENAME%%_%%VERSION%%_Linux_ARMv6.tar.gz", 50 | "archiveFileName": "%%FILENAME%%_%%VERSION%%_Linux_ARMv6.tar.gz", 51 | "checksum": "SHA-256:%%LINUXARM_SHA%%", 52 | "size": "%%LINUXARM_SIZE%%" 53 | }, 54 | { 55 | "host": "aarch64-linux-gnu", 56 | "url": "http://downloads.arduino.cc/arduino-fwuploader/%%FILENAME%%_%%VERSION%%_Linux_ARM64.tar.gz", 57 | "archiveFileName": "%%FILENAME%%_%%VERSION%%_Linux_ARM64.tar.gz", 58 | "checksum": "SHA-256:%%LINUXARM64_SHA%%", 59 | "size": "%%LINUXARM64_SIZE%%" 60 | } 61 | ] 62 | }, 63 | 64 | -------------------------------------------------------------------------------- /cli/firmware/getversion.go: -------------------------------------------------------------------------------- 1 | /* 2 | arduino-fwuploader 3 | Copyright (c) 2021 Arduino LLC. All right reserved. 4 | 5 | This program is free software: you can redistribute it and/or modify 6 | it under the terms of the GNU Affero General Public License as published 7 | by the Free Software Foundation, either version 3 of the License, or 8 | (at your option) any later version. 9 | 10 | This program is distributed in the hope that it will be useful, 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | GNU Affero General Public License for more details. 14 | 15 | You should have received a copy of the GNU Affero General Public License 16 | along with this program. If not, see . 17 | */ 18 | 19 | package firmware 20 | 21 | import ( 22 | "fmt" 23 | "io" 24 | "os" 25 | 26 | "github.com/arduino/arduino-fwuploader/cli/common" 27 | "github.com/arduino/arduino-fwuploader/cli/feedback" 28 | "github.com/arduino/arduino-fwuploader/cli/globals" 29 | "github.com/arduino/arduino-fwuploader/flasher" 30 | "github.com/arduino/arduino-fwuploader/plugin" 31 | "github.com/spf13/cobra" 32 | ) 33 | 34 | // NewGetVersionCommand creates a new `get-version` command 35 | func NewGetVersionCommand() *cobra.Command { 36 | command := &cobra.Command{ 37 | Use: "get-version", 38 | Short: "Gets the version of the firmware the board is using.", 39 | Long: "Flashes a sketch to a board to obtain the firmware version used by the board", 40 | Example: "" + 41 | " " + os.Args[0] + " firmware get-version --fqbn arduino:samd:mkrwifi1010 --address COM10\n" + 42 | " " + os.Args[0] + " firmware get-version -b arduino:renesas_uno:unor4wifi -a COM10\n", 43 | Args: cobra.NoArgs, 44 | Run: runGetVersion, 45 | } 46 | commonFlags.AddToCommand(command) 47 | return command 48 | } 49 | 50 | func runGetVersion(cmd *cobra.Command, args []string) { 51 | // at the end cleanup the fwuploader temp dir 52 | defer globals.FwUploaderPath.RemoveAll() 53 | 54 | common.CheckFlags(commonFlags.Fqbn, commonFlags.Address) 55 | packageIndex, firmwareIndex := common.InitIndexes() 56 | board := common.GetBoard(firmwareIndex, commonFlags.Fqbn) 57 | uploadToolDir := common.DownloadRequiredToolsForBoard(packageIndex, board) 58 | 59 | uploader, err := plugin.NewFWUploaderPlugin(uploadToolDir) 60 | if err != nil { 61 | feedback.Fatal(fmt.Sprintf("Could not open uploader plugin: %s", err), feedback.ErrGeneric) 62 | } 63 | 64 | result := getVersion(uploader) 65 | if feedback.GetFormat() == feedback.Text { 66 | fmt.Printf("Firmware version installed: %s", result.Version) 67 | } else { 68 | feedback.PrintResult(result) 69 | } 70 | } 71 | 72 | func getVersion(uploader *plugin.FwUploader) *flasher.FlashResult { 73 | var stdout, stderr io.Writer 74 | if feedback.GetFormat() == feedback.Text { 75 | stdout = os.Stdout 76 | stderr = os.Stderr 77 | } 78 | res, err := uploader.GetFirmwareVersion(commonFlags.Address, commonFlags.Fqbn, globals.LogLevel, globals.Verbose, stdout, stderr) 79 | if err != nil { 80 | feedback.Fatal(fmt.Sprintf("Couldn't get firmware version: %s", err), feedback.ErrGeneric) 81 | } 82 | 83 | return &flasher.FlashResult{ 84 | Programmer: (&flasher.ExecOutput{ 85 | Stdout: string(res.Stdout), 86 | Stderr: string(res.Stderr), 87 | }), 88 | Version: res.FirmwareVersion.String(), 89 | } 90 | } 91 | -------------------------------------------------------------------------------- /.licenses/arduino-fwuploader/go/golang.org/x/net/http2.dep.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: golang.org/x/net/http2 3 | version: v0.17.0 4 | type: go 5 | summary: Package http2 implements the HTTP/2 protocol. 6 | homepage: https://pkg.go.dev/golang.org/x/net/http2 7 | license: bsd-3-clause 8 | licenses: 9 | - sources: net@v0.17.0/LICENSE 10 | text: | 11 | Copyright (c) 2009 The Go Authors. All rights reserved. 12 | 13 | Redistribution and use in source and binary forms, with or without 14 | modification, are permitted provided that the following conditions are 15 | met: 16 | 17 | * Redistributions of source code must retain the above copyright 18 | notice, this list of conditions and the following disclaimer. 19 | * Redistributions in binary form must reproduce the above 20 | copyright notice, this list of conditions and the following disclaimer 21 | in the documentation and/or other materials provided with the 22 | distribution. 23 | * Neither the name of Google Inc. nor the names of its 24 | contributors may be used to endorse or promote products derived from 25 | this software without specific prior written permission. 26 | 27 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 28 | "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 29 | LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 30 | A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 31 | OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 32 | SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 33 | LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 34 | DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 35 | THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 36 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 37 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 38 | - sources: net@v0.17.0/PATENTS 39 | text: | 40 | Additional IP Rights Grant (Patents) 41 | 42 | "This implementation" means the copyrightable works distributed by 43 | Google as part of the Go project. 44 | 45 | Google hereby grants to You a perpetual, worldwide, non-exclusive, 46 | no-charge, royalty-free, irrevocable (except as stated in this section) 47 | patent license to make, have made, use, offer to sell, sell, import, 48 | transfer and otherwise run, modify and propagate the contents of this 49 | implementation of Go, where such license applies only to those patent 50 | claims, both currently owned or controlled by Google and acquired in 51 | the future, licensable by Google that are necessarily infringed by this 52 | implementation of Go. This grant does not include claims that would be 53 | infringed only as a consequence of further modification of this 54 | implementation. If you or your agent or exclusive licensee institute or 55 | order or agree to the institution of patent litigation against any 56 | entity (including a cross-claim or counterclaim in a lawsuit) alleging 57 | that this implementation of Go or any code incorporated within this 58 | implementation of Go constitutes direct or contributory patent 59 | infringement, or inducement of patent infringement, then any patent 60 | rights granted to you under this License for this implementation of Go 61 | shall terminate as of the date such litigation is filed. 62 | notices: [] 63 | -------------------------------------------------------------------------------- /.licenses/arduino-fwuploader/go/golang.org/x/text/runes.dep.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: golang.org/x/text/runes 3 | version: v0.13.0 4 | type: go 5 | summary: Package runes provide transforms for UTF-8 encoded text. 6 | homepage: https://pkg.go.dev/golang.org/x/text/runes 7 | license: bsd-3-clause 8 | licenses: 9 | - sources: text@v0.13.0/LICENSE 10 | text: | 11 | Copyright (c) 2009 The Go Authors. All rights reserved. 12 | 13 | Redistribution and use in source and binary forms, with or without 14 | modification, are permitted provided that the following conditions are 15 | met: 16 | 17 | * Redistributions of source code must retain the above copyright 18 | notice, this list of conditions and the following disclaimer. 19 | * Redistributions in binary form must reproduce the above 20 | copyright notice, this list of conditions and the following disclaimer 21 | in the documentation and/or other materials provided with the 22 | distribution. 23 | * Neither the name of Google Inc. nor the names of its 24 | contributors may be used to endorse or promote products derived from 25 | this software without specific prior written permission. 26 | 27 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 28 | "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 29 | LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 30 | A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 31 | OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 32 | SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 33 | LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 34 | DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 35 | THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 36 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 37 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 38 | - sources: text@v0.13.0/PATENTS 39 | text: | 40 | Additional IP Rights Grant (Patents) 41 | 42 | "This implementation" means the copyrightable works distributed by 43 | Google as part of the Go project. 44 | 45 | Google hereby grants to You a perpetual, worldwide, non-exclusive, 46 | no-charge, royalty-free, irrevocable (except as stated in this section) 47 | patent license to make, have made, use, offer to sell, sell, import, 48 | transfer and otherwise run, modify and propagate the contents of this 49 | implementation of Go, where such license applies only to those patent 50 | claims, both currently owned or controlled by Google and acquired in 51 | the future, licensable by Google that are necessarily infringed by this 52 | implementation of Go. This grant does not include claims that would be 53 | infringed only as a consequence of further modification of this 54 | implementation. If you or your agent or exclusive licensee institute or 55 | order or agree to the institution of patent litigation against any 56 | entity (including a cross-claim or counterclaim in a lawsuit) alleging 57 | that this implementation of Go or any code incorporated within this 58 | implementation of Go constitutes direct or contributory patent 59 | infringement, or inducement of patent infringement, then any patent 60 | rights granted to you under this License for this implementation of Go 61 | shall terminate as of the date such litigation is filed. 62 | notices: [] 63 | -------------------------------------------------------------------------------- /.licenses/arduino-fwuploader/go/google.golang.org/protobuf/internal/impl.dep.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: google.golang.org/protobuf/internal/impl 3 | version: v1.33.0 4 | type: go 5 | summary: 6 | homepage: https://pkg.go.dev/google.golang.org/protobuf/internal/impl 7 | license: bsd-3-clause 8 | licenses: 9 | - sources: protobuf@v1.33.0/LICENSE 10 | text: | 11 | Copyright (c) 2018 The Go Authors. All rights reserved. 12 | 13 | Redistribution and use in source and binary forms, with or without 14 | modification, are permitted provided that the following conditions are 15 | met: 16 | 17 | * Redistributions of source code must retain the above copyright 18 | notice, this list of conditions and the following disclaimer. 19 | * Redistributions in binary form must reproduce the above 20 | copyright notice, this list of conditions and the following disclaimer 21 | in the documentation and/or other materials provided with the 22 | distribution. 23 | * Neither the name of Google Inc. nor the names of its 24 | contributors may be used to endorse or promote products derived from 25 | this software without specific prior written permission. 26 | 27 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 28 | "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 29 | LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 30 | A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 31 | OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 32 | SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 33 | LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 34 | DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 35 | THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 36 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 37 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 38 | - sources: protobuf@v1.33.0/PATENTS 39 | text: | 40 | Additional IP Rights Grant (Patents) 41 | 42 | "This implementation" means the copyrightable works distributed by 43 | Google as part of the Go project. 44 | 45 | Google hereby grants to You a perpetual, worldwide, non-exclusive, 46 | no-charge, royalty-free, irrevocable (except as stated in this section) 47 | patent license to make, have made, use, offer to sell, sell, import, 48 | transfer and otherwise run, modify and propagate the contents of this 49 | implementation of Go, where such license applies only to those patent 50 | claims, both currently owned or controlled by Google and acquired in 51 | the future, licensable by Google that are necessarily infringed by this 52 | implementation of Go. This grant does not include claims that would be 53 | infringed only as a consequence of further modification of this 54 | implementation. If you or your agent or exclusive licensee institute or 55 | order or agree to the institution of patent litigation against any 56 | entity (including a cross-claim or counterclaim in a lawsuit) alleging 57 | that this implementation of Go or any code incorporated within this 58 | implementation of Go constitutes direct or contributory patent 59 | infringement, or inducement of patent infringement, then any patent 60 | rights granted to you under this License for this implementation of Go 61 | shall terminate as of the date such litigation is filed. 62 | notices: [] 63 | -------------------------------------------------------------------------------- /.licenses/arduino-fwuploader/go/golang.org/x/crypto/cast5.dep.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: golang.org/x/crypto/cast5 3 | version: v0.14.0 4 | type: go 5 | summary: Package cast5 implements CAST5, as defined in RFC 2144. 6 | homepage: https://pkg.go.dev/golang.org/x/crypto/cast5 7 | license: bsd-3-clause 8 | licenses: 9 | - sources: crypto@v0.14.0/LICENSE 10 | text: | 11 | Copyright (c) 2009 The Go Authors. All rights reserved. 12 | 13 | Redistribution and use in source and binary forms, with or without 14 | modification, are permitted provided that the following conditions are 15 | met: 16 | 17 | * Redistributions of source code must retain the above copyright 18 | notice, this list of conditions and the following disclaimer. 19 | * Redistributions in binary form must reproduce the above 20 | copyright notice, this list of conditions and the following disclaimer 21 | in the documentation and/or other materials provided with the 22 | distribution. 23 | * Neither the name of Google Inc. nor the names of its 24 | contributors may be used to endorse or promote products derived from 25 | this software without specific prior written permission. 26 | 27 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 28 | "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 29 | LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 30 | A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 31 | OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 32 | SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 33 | LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 34 | DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 35 | THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 36 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 37 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 38 | - sources: crypto@v0.14.0/PATENTS 39 | text: | 40 | Additional IP Rights Grant (Patents) 41 | 42 | "This implementation" means the copyrightable works distributed by 43 | Google as part of the Go project. 44 | 45 | Google hereby grants to You a perpetual, worldwide, non-exclusive, 46 | no-charge, royalty-free, irrevocable (except as stated in this section) 47 | patent license to make, have made, use, offer to sell, sell, import, 48 | transfer and otherwise run, modify and propagate the contents of this 49 | implementation of Go, where such license applies only to those patent 50 | claims, both currently owned or controlled by Google and acquired in 51 | the future, licensable by Google that are necessarily infringed by this 52 | implementation of Go. This grant does not include claims that would be 53 | infringed only as a consequence of further modification of this 54 | implementation. If you or your agent or exclusive licensee institute or 55 | order or agree to the institution of patent litigation against any 56 | entity (including a cross-claim or counterclaim in a lawsuit) alleging 57 | that this implementation of Go or any code incorporated within this 58 | implementation of Go constitutes direct or contributory patent 59 | infringement, or inducement of patent infringement, then any patent 60 | rights granted to you under this License for this implementation of Go 61 | shall terminate as of the date such litigation is filed. 62 | notices: [] 63 | -------------------------------------------------------------------------------- /.licenses/arduino-fwuploader/go/golang.org/x/net/trace.dep.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: golang.org/x/net/trace 3 | version: v0.17.0 4 | type: go 5 | summary: Package trace implements tracing of requests and long-lived objects. 6 | homepage: https://pkg.go.dev/golang.org/x/net/trace 7 | license: bsd-3-clause 8 | licenses: 9 | - sources: net@v0.17.0/LICENSE 10 | text: | 11 | Copyright (c) 2009 The Go Authors. All rights reserved. 12 | 13 | Redistribution and use in source and binary forms, with or without 14 | modification, are permitted provided that the following conditions are 15 | met: 16 | 17 | * Redistributions of source code must retain the above copyright 18 | notice, this list of conditions and the following disclaimer. 19 | * Redistributions in binary form must reproduce the above 20 | copyright notice, this list of conditions and the following disclaimer 21 | in the documentation and/or other materials provided with the 22 | distribution. 23 | * Neither the name of Google Inc. nor the names of its 24 | contributors may be used to endorse or promote products derived from 25 | this software without specific prior written permission. 26 | 27 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 28 | "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 29 | LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 30 | A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 31 | OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 32 | SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 33 | LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 34 | DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 35 | THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 36 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 37 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 38 | - sources: net@v0.17.0/PATENTS 39 | text: | 40 | Additional IP Rights Grant (Patents) 41 | 42 | "This implementation" means the copyrightable works distributed by 43 | Google as part of the Go project. 44 | 45 | Google hereby grants to You a perpetual, worldwide, non-exclusive, 46 | no-charge, royalty-free, irrevocable (except as stated in this section) 47 | patent license to make, have made, use, offer to sell, sell, import, 48 | transfer and otherwise run, modify and propagate the contents of this 49 | implementation of Go, where such license applies only to those patent 50 | claims, both currently owned or controlled by Google and acquired in 51 | the future, licensable by Google that are necessarily infringed by this 52 | implementation of Go. This grant does not include claims that would be 53 | infringed only as a consequence of further modification of this 54 | implementation. If you or your agent or exclusive licensee institute or 55 | order or agree to the institution of patent litigation against any 56 | entity (including a cross-claim or counterclaim in a lawsuit) alleging 57 | that this implementation of Go or any code incorporated within this 58 | implementation of Go constitutes direct or contributory patent 59 | infringement, or inducement of patent infringement, then any patent 60 | rights granted to you under this License for this implementation of Go 61 | shall terminate as of the date such litigation is filed. 62 | notices: [] 63 | -------------------------------------------------------------------------------- /.licenses/arduino-fwuploader/go/golang.org/x/term.dep.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: golang.org/x/term 3 | version: v0.13.0 4 | type: go 5 | summary: Package term provides support functions for dealing with terminals, as commonly 6 | found on UNIX systems. 7 | homepage: https://pkg.go.dev/golang.org/x/term 8 | license: bsd-3-clause 9 | licenses: 10 | - sources: LICENSE 11 | text: | 12 | Copyright (c) 2009 The Go Authors. All rights reserved. 13 | 14 | Redistribution and use in source and binary forms, with or without 15 | modification, are permitted provided that the following conditions are 16 | met: 17 | 18 | * Redistributions of source code must retain the above copyright 19 | notice, this list of conditions and the following disclaimer. 20 | * Redistributions in binary form must reproduce the above 21 | copyright notice, this list of conditions and the following disclaimer 22 | in the documentation and/or other materials provided with the 23 | distribution. 24 | * Neither the name of Google Inc. nor the names of its 25 | contributors may be used to endorse or promote products derived from 26 | this software without specific prior written permission. 27 | 28 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 29 | "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 30 | LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 31 | A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 32 | OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 33 | SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 34 | LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 35 | DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 36 | THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 37 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 38 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 39 | - sources: PATENTS 40 | text: | 41 | Additional IP Rights Grant (Patents) 42 | 43 | "This implementation" means the copyrightable works distributed by 44 | Google as part of the Go project. 45 | 46 | Google hereby grants to You a perpetual, worldwide, non-exclusive, 47 | no-charge, royalty-free, irrevocable (except as stated in this section) 48 | patent license to make, have made, use, offer to sell, sell, import, 49 | transfer and otherwise run, modify and propagate the contents of this 50 | implementation of Go, where such license applies only to those patent 51 | claims, both currently owned or controlled by Google and acquired in 52 | the future, licensable by Google that are necessarily infringed by this 53 | implementation of Go. This grant does not include claims that would be 54 | infringed only as a consequence of further modification of this 55 | implementation. If you or your agent or exclusive licensee institute or 56 | order or agree to the institution of patent litigation against any 57 | entity (including a cross-claim or counterclaim in a lawsuit) alleging 58 | that this implementation of Go or any code incorporated within this 59 | implementation of Go constitutes direct or contributory patent 60 | infringement, or inducement of patent infringement, then any patent 61 | rights granted to you under this License for this implementation of Go 62 | shall terminate as of the date such litigation is filed. 63 | notices: [] 64 | -------------------------------------------------------------------------------- /.licenses/arduino-fwuploader/go/golang.org/x/sys/unix.dep.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: golang.org/x/sys/unix 3 | version: v0.13.0 4 | type: go 5 | summary: Package unix contains an interface to the low-level operating system primitives. 6 | homepage: https://pkg.go.dev/golang.org/x/sys/unix 7 | license: bsd-3-clause 8 | licenses: 9 | - sources: sys@v0.13.0/LICENSE 10 | text: | 11 | Copyright (c) 2009 The Go Authors. All rights reserved. 12 | 13 | Redistribution and use in source and binary forms, with or without 14 | modification, are permitted provided that the following conditions are 15 | met: 16 | 17 | * Redistributions of source code must retain the above copyright 18 | notice, this list of conditions and the following disclaimer. 19 | * Redistributions in binary form must reproduce the above 20 | copyright notice, this list of conditions and the following disclaimer 21 | in the documentation and/or other materials provided with the 22 | distribution. 23 | * Neither the name of Google Inc. nor the names of its 24 | contributors may be used to endorse or promote products derived from 25 | this software without specific prior written permission. 26 | 27 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 28 | "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 29 | LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 30 | A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 31 | OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 32 | SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 33 | LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 34 | DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 35 | THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 36 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 37 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 38 | - sources: sys@v0.13.0/PATENTS 39 | text: | 40 | Additional IP Rights Grant (Patents) 41 | 42 | "This implementation" means the copyrightable works distributed by 43 | Google as part of the Go project. 44 | 45 | Google hereby grants to You a perpetual, worldwide, non-exclusive, 46 | no-charge, royalty-free, irrevocable (except as stated in this section) 47 | patent license to make, have made, use, offer to sell, sell, import, 48 | transfer and otherwise run, modify and propagate the contents of this 49 | implementation of Go, where such license applies only to those patent 50 | claims, both currently owned or controlled by Google and acquired in 51 | the future, licensable by Google that are necessarily infringed by this 52 | implementation of Go. This grant does not include claims that would be 53 | infringed only as a consequence of further modification of this 54 | implementation. If you or your agent or exclusive licensee institute or 55 | order or agree to the institution of patent litigation against any 56 | entity (including a cross-claim or counterclaim in a lawsuit) alleging 57 | that this implementation of Go or any code incorporated within this 58 | implementation of Go constitutes direct or contributory patent 59 | infringement, or inducement of patent infringement, then any patent 60 | rights granted to you under this License for this implementation of Go 61 | shall terminate as of the date such litigation is filed. 62 | notices: [] 63 | -------------------------------------------------------------------------------- /.licenses/arduino-fwuploader/go/google.golang.org/protobuf/types/descriptorpb.dep.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: google.golang.org/protobuf/types/descriptorpb 3 | version: v1.33.0 4 | type: go 5 | summary: 6 | homepage: https://pkg.go.dev/google.golang.org/protobuf/types/descriptorpb 7 | license: bsd-3-clause 8 | licenses: 9 | - sources: protobuf@v1.33.0/LICENSE 10 | text: | 11 | Copyright (c) 2018 The Go Authors. All rights reserved. 12 | 13 | Redistribution and use in source and binary forms, with or without 14 | modification, are permitted provided that the following conditions are 15 | met: 16 | 17 | * Redistributions of source code must retain the above copyright 18 | notice, this list of conditions and the following disclaimer. 19 | * Redistributions in binary form must reproduce the above 20 | copyright notice, this list of conditions and the following disclaimer 21 | in the documentation and/or other materials provided with the 22 | distribution. 23 | * Neither the name of Google Inc. nor the names of its 24 | contributors may be used to endorse or promote products derived from 25 | this software without specific prior written permission. 26 | 27 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 28 | "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 29 | LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 30 | A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 31 | OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 32 | SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 33 | LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 34 | DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 35 | THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 36 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 37 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 38 | - sources: protobuf@v1.33.0/PATENTS 39 | text: | 40 | Additional IP Rights Grant (Patents) 41 | 42 | "This implementation" means the copyrightable works distributed by 43 | Google as part of the Go project. 44 | 45 | Google hereby grants to You a perpetual, worldwide, non-exclusive, 46 | no-charge, royalty-free, irrevocable (except as stated in this section) 47 | patent license to make, have made, use, offer to sell, sell, import, 48 | transfer and otherwise run, modify and propagate the contents of this 49 | implementation of Go, where such license applies only to those patent 50 | claims, both currently owned or controlled by Google and acquired in 51 | the future, licensable by Google that are necessarily infringed by this 52 | implementation of Go. This grant does not include claims that would be 53 | infringed only as a consequence of further modification of this 54 | implementation. If you or your agent or exclusive licensee institute or 55 | order or agree to the institution of patent litigation against any 56 | entity (including a cross-claim or counterclaim in a lawsuit) alleging 57 | that this implementation of Go or any code incorporated within this 58 | implementation of Go constitutes direct or contributory patent 59 | infringement, or inducement of patent infringement, then any patent 60 | rights granted to you under this License for this implementation of Go 61 | shall terminate as of the date such litigation is filed. 62 | notices: [] 63 | -------------------------------------------------------------------------------- /.licenses/arduino-fwuploader/go/google.golang.org/protobuf/types/gofeaturespb.dep.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: google.golang.org/protobuf/types/gofeaturespb 3 | version: v1.33.0 4 | type: go 5 | summary: 6 | homepage: https://pkg.go.dev/google.golang.org/protobuf/types/gofeaturespb 7 | license: bsd-3-clause 8 | licenses: 9 | - sources: protobuf@v1.33.0/LICENSE 10 | text: | 11 | Copyright (c) 2018 The Go Authors. All rights reserved. 12 | 13 | Redistribution and use in source and binary forms, with or without 14 | modification, are permitted provided that the following conditions are 15 | met: 16 | 17 | * Redistributions of source code must retain the above copyright 18 | notice, this list of conditions and the following disclaimer. 19 | * Redistributions in binary form must reproduce the above 20 | copyright notice, this list of conditions and the following disclaimer 21 | in the documentation and/or other materials provided with the 22 | distribution. 23 | * Neither the name of Google Inc. nor the names of its 24 | contributors may be used to endorse or promote products derived from 25 | this software without specific prior written permission. 26 | 27 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 28 | "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 29 | LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 30 | A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 31 | OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 32 | SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 33 | LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 34 | DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 35 | THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 36 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 37 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 38 | - sources: protobuf@v1.33.0/PATENTS 39 | text: | 40 | Additional IP Rights Grant (Patents) 41 | 42 | "This implementation" means the copyrightable works distributed by 43 | Google as part of the Go project. 44 | 45 | Google hereby grants to You a perpetual, worldwide, non-exclusive, 46 | no-charge, royalty-free, irrevocable (except as stated in this section) 47 | patent license to make, have made, use, offer to sell, sell, import, 48 | transfer and otherwise run, modify and propagate the contents of this 49 | implementation of Go, where such license applies only to those patent 50 | claims, both currently owned or controlled by Google and acquired in 51 | the future, licensable by Google that are necessarily infringed by this 52 | implementation of Go. This grant does not include claims that would be 53 | infringed only as a consequence of further modification of this 54 | implementation. If you or your agent or exclusive licensee institute or 55 | order or agree to the institution of patent litigation against any 56 | entity (including a cross-claim or counterclaim in a lawsuit) alleging 57 | that this implementation of Go or any code incorporated within this 58 | implementation of Go constitutes direct or contributory patent 59 | infringement, or inducement of patent infringement, then any patent 60 | rights granted to you under this License for this implementation of Go 61 | shall terminate as of the date such litigation is filed. 62 | notices: [] 63 | -------------------------------------------------------------------------------- /test/conftest.py: -------------------------------------------------------------------------------- 1 | # Source: 2 | # https://github.com/arduino/tooling-project-assets/blob/main/workflow-templates/assets/test-integration/test_all.py 3 | 4 | # Copyright (c) 2021 Arduino LLC. All right reserved. 5 | 6 | # This library is free software; you can redistribute it and/or 7 | # modify it under the terms of the GNU Lesser General Public 8 | # License as published by the Free Software Foundation; either 9 | # version 2.1 of the License, or (at your option) any later version. 10 | 11 | # This library is distributed in the hope that it will be useful, 12 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 | # Lesser General Public License for more details. 15 | 16 | # You should have received a copy of the GNU Lesser General Public 17 | # License along with this library; if not, write to the Free Software 18 | # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 19 | 20 | import os 21 | import pathlib 22 | import platform 23 | import shutil 24 | import typing 25 | import invoke.context 26 | import pytest 27 | 28 | 29 | @pytest.fixture(scope="function") 30 | def run_command(pytestconfig, working_dir) -> typing.Callable[..., invoke.runners.Result]: 31 | """Provide a wrapper around invoke's `run` API so that every test will work in the same temporary folder. 32 | 33 | Useful reference: 34 | http://docs.pyinvoke.org/en/1.4/api/runners.html#invoke.runners.Result 35 | """ 36 | 37 | executable_path = pathlib.Path(pytestconfig.rootdir).parent / "arduino-fwuploader" 38 | 39 | def _run( 40 | cmd: list, 41 | custom_working_dir: typing.Optional[str] = None, 42 | custom_env: typing.Optional[dict] = None, 43 | ) -> invoke.runners.Result: 44 | if cmd is None: 45 | cmd = [] 46 | if not custom_working_dir: 47 | custom_working_dir = working_dir 48 | quoted_cmd = [] 49 | for token in cmd: 50 | quoted_cmd.append(f'"{token}"') 51 | cli_full_line = '"{}" {}'.format(executable_path, " ".join(quoted_cmd)) 52 | run_context = invoke.context.Context() 53 | # It might happen that we need to change directories between drives on Windows, 54 | # in that case the "/d" flag must be used otherwise directory wouldn't change 55 | cd_command = "cd" 56 | if platform.system() == "Windows": 57 | cd_command += " /d" 58 | # Context.cd() is not used since it doesn't work correctly on Windows. 59 | # It escapes spaces in the path using "\ " but it doesn't always work, 60 | # wrapping the path in quotation marks is the safest approach 61 | with run_context.prefix(f'{cd_command} "{custom_working_dir}"'): 62 | return run_context.run( 63 | command=cli_full_line, 64 | echo=False, 65 | hide=True, 66 | warn=True, 67 | env=custom_env, 68 | encoding="utf-8", 69 | ) 70 | 71 | return _run 72 | 73 | 74 | @pytest.fixture(scope="function") 75 | def working_dir(tmpdir_factory) -> str: 76 | """Create a temporary folder for the test to run in. It will be created before running each test and deleted at the 77 | end. This way all the tests work in isolation. 78 | """ 79 | work_dir = tmpdir_factory.mktemp(basename="IntegrationTestWorkingDir") 80 | yield os.path.realpath(work_dir) 81 | shutil.rmtree(work_dir, ignore_errors=True) 82 | -------------------------------------------------------------------------------- /.licenses/arduino-fwuploader/go/golang.org/x/crypto/openpgp.dep.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: golang.org/x/crypto/openpgp 3 | version: v0.14.0 4 | type: go 5 | summary: Package openpgp implements high level operations on OpenPGP messages. 6 | homepage: https://pkg.go.dev/golang.org/x/crypto/openpgp 7 | license: bsd-3-clause 8 | licenses: 9 | - sources: crypto@v0.14.0/LICENSE 10 | text: | 11 | Copyright (c) 2009 The Go Authors. All rights reserved. 12 | 13 | Redistribution and use in source and binary forms, with or without 14 | modification, are permitted provided that the following conditions are 15 | met: 16 | 17 | * Redistributions of source code must retain the above copyright 18 | notice, this list of conditions and the following disclaimer. 19 | * Redistributions in binary form must reproduce the above 20 | copyright notice, this list of conditions and the following disclaimer 21 | in the documentation and/or other materials provided with the 22 | distribution. 23 | * Neither the name of Google Inc. nor the names of its 24 | contributors may be used to endorse or promote products derived from 25 | this software without specific prior written permission. 26 | 27 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 28 | "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 29 | LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 30 | A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 31 | OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 32 | SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 33 | LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 34 | DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 35 | THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 36 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 37 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 38 | - sources: crypto@v0.14.0/PATENTS 39 | text: | 40 | Additional IP Rights Grant (Patents) 41 | 42 | "This implementation" means the copyrightable works distributed by 43 | Google as part of the Go project. 44 | 45 | Google hereby grants to You a perpetual, worldwide, non-exclusive, 46 | no-charge, royalty-free, irrevocable (except as stated in this section) 47 | patent license to make, have made, use, offer to sell, sell, import, 48 | transfer and otherwise run, modify and propagate the contents of this 49 | implementation of Go, where such license applies only to those patent 50 | claims, both currently owned or controlled by Google and acquired in 51 | the future, licensable by Google that are necessarily infringed by this 52 | implementation of Go. This grant does not include claims that would be 53 | infringed only as a consequence of further modification of this 54 | implementation. If you or your agent or exclusive licensee institute or 55 | order or agree to the institution of patent litigation against any 56 | entity (including a cross-claim or counterclaim in a lawsuit) alleging 57 | that this implementation of Go or any code incorporated within this 58 | implementation of Go constitutes direct or contributory patent 59 | infringement, or inducement of patent infringement, then any patent 60 | rights granted to you under this License for this implementation of Go 61 | shall terminate as of the date such litigation is filed. 62 | notices: [] 63 | -------------------------------------------------------------------------------- /.licenses/arduino-fwuploader/go/google.golang.org/protobuf/internal/encoding/json.dep.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: google.golang.org/protobuf/internal/encoding/json 3 | version: v1.33.0 4 | type: go 5 | summary: 6 | homepage: https://pkg.go.dev/google.golang.org/protobuf/internal/encoding/json 7 | license: bsd-3-clause 8 | licenses: 9 | - sources: protobuf@v1.33.0/LICENSE 10 | text: | 11 | Copyright (c) 2018 The Go Authors. All rights reserved. 12 | 13 | Redistribution and use in source and binary forms, with or without 14 | modification, are permitted provided that the following conditions are 15 | met: 16 | 17 | * Redistributions of source code must retain the above copyright 18 | notice, this list of conditions and the following disclaimer. 19 | * Redistributions in binary form must reproduce the above 20 | copyright notice, this list of conditions and the following disclaimer 21 | in the documentation and/or other materials provided with the 22 | distribution. 23 | * Neither the name of Google Inc. nor the names of its 24 | contributors may be used to endorse or promote products derived from 25 | this software without specific prior written permission. 26 | 27 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 28 | "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 29 | LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 30 | A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 31 | OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 32 | SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 33 | LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 34 | DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 35 | THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 36 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 37 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 38 | - sources: protobuf@v1.33.0/PATENTS 39 | text: | 40 | Additional IP Rights Grant (Patents) 41 | 42 | "This implementation" means the copyrightable works distributed by 43 | Google as part of the Go project. 44 | 45 | Google hereby grants to You a perpetual, worldwide, non-exclusive, 46 | no-charge, royalty-free, irrevocable (except as stated in this section) 47 | patent license to make, have made, use, offer to sell, sell, import, 48 | transfer and otherwise run, modify and propagate the contents of this 49 | implementation of Go, where such license applies only to those patent 50 | claims, both currently owned or controlled by Google and acquired in 51 | the future, licensable by Google that are necessarily infringed by this 52 | implementation of Go. This grant does not include claims that would be 53 | infringed only as a consequence of further modification of this 54 | implementation. If you or your agent or exclusive licensee institute or 55 | order or agree to the institution of patent litigation against any 56 | entity (including a cross-claim or counterclaim in a lawsuit) alleging 57 | that this implementation of Go or any code incorporated within this 58 | implementation of Go constitutes direct or contributory patent 59 | infringement, or inducement of patent infringement, then any patent 60 | rights granted to you under this License for this implementation of Go 61 | shall terminate as of the date such litigation is filed. 62 | notices: [] 63 | -------------------------------------------------------------------------------- /.licenses/arduino-fwuploader/go/google.golang.org/protobuf/types/known/wrapperspb.dep.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: google.golang.org/protobuf/types/known/wrapperspb 3 | version: v1.33.0 4 | type: go 5 | summary: 6 | homepage: https://pkg.go.dev/google.golang.org/protobuf/types/known/wrapperspb 7 | license: bsd-3-clause 8 | licenses: 9 | - sources: protobuf@v1.33.0/LICENSE 10 | text: | 11 | Copyright (c) 2018 The Go Authors. All rights reserved. 12 | 13 | Redistribution and use in source and binary forms, with or without 14 | modification, are permitted provided that the following conditions are 15 | met: 16 | 17 | * Redistributions of source code must retain the above copyright 18 | notice, this list of conditions and the following disclaimer. 19 | * Redistributions in binary form must reproduce the above 20 | copyright notice, this list of conditions and the following disclaimer 21 | in the documentation and/or other materials provided with the 22 | distribution. 23 | * Neither the name of Google Inc. nor the names of its 24 | contributors may be used to endorse or promote products derived from 25 | this software without specific prior written permission. 26 | 27 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 28 | "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 29 | LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 30 | A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 31 | OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 32 | SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 33 | LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 34 | DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 35 | THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 36 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 37 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 38 | - sources: protobuf@v1.33.0/PATENTS 39 | text: | 40 | Additional IP Rights Grant (Patents) 41 | 42 | "This implementation" means the copyrightable works distributed by 43 | Google as part of the Go project. 44 | 45 | Google hereby grants to You a perpetual, worldwide, non-exclusive, 46 | no-charge, royalty-free, irrevocable (except as stated in this section) 47 | patent license to make, have made, use, offer to sell, sell, import, 48 | transfer and otherwise run, modify and propagate the contents of this 49 | implementation of Go, where such license applies only to those patent 50 | claims, both currently owned or controlled by Google and acquired in 51 | the future, licensable by Google that are necessarily infringed by this 52 | implementation of Go. This grant does not include claims that would be 53 | infringed only as a consequence of further modification of this 54 | implementation. If you or your agent or exclusive licensee institute or 55 | order or agree to the institution of patent litigation against any 56 | entity (including a cross-claim or counterclaim in a lawsuit) alleging 57 | that this implementation of Go or any code incorporated within this 58 | implementation of Go constitutes direct or contributory patent 59 | infringement, or inducement of patent infringement, then any patent 60 | rights granted to you under this License for this implementation of Go 61 | shall terminate as of the date such litigation is filed. 62 | notices: [] 63 | -------------------------------------------------------------------------------- /.github/workflows/test-go-integration-task.yml: -------------------------------------------------------------------------------- 1 | # Source: https://github.com/arduino/tooling-project-assets/blob/main/workflow-templates/test-go-integration-task.md 2 | name: Test Integration 3 | 4 | env: 5 | # See: https://github.com/actions/setup-go/tree/main#supported-version-syntax 6 | GO_VERSION: "1.18" 7 | # See: https://github.com/actions/setup-python/tree/main#available-versions-of-python 8 | PYTHON_VERSION: "3.9" 9 | 10 | # See: https://docs.github.com/actions/using-workflows/events-that-trigger-workflows 11 | on: 12 | create: 13 | push: 14 | paths: 15 | - ".github/workflows/test-go-integration-task.ya?ml" 16 | - "Taskfile.ya?ml" 17 | - "**.go" 18 | - "go.mod" 19 | - "go.sum" 20 | - "poetry.lock" 21 | - "pyproject.toml" 22 | - "tests/**" 23 | pull_request: 24 | paths: 25 | - ".github/workflows/test-go-integration-task.ya?ml" 26 | - "Taskfile.ya?ml" 27 | - "**.go" 28 | - "go.mod" 29 | - "go.sum" 30 | - "poetry.lock" 31 | - "pyproject.toml" 32 | - "tests/**" 33 | schedule: 34 | # Run periodically to catch breakage caused by external changes. 35 | - cron: "0 10 * * WED" 36 | workflow_dispatch: 37 | repository_dispatch: 38 | 39 | jobs: 40 | run-determination: 41 | runs-on: ubuntu-latest 42 | outputs: 43 | result: ${{ steps.determination.outputs.result }} 44 | permissions: {} 45 | steps: 46 | - name: Determine if the rest of the workflow should run 47 | id: determination 48 | run: | 49 | RELEASE_BRANCH_REGEX="refs/heads/[0-9]+.[0-9]+.x" 50 | # The `create` event trigger doesn't support `branches` filters, so it's necessary to use Bash instead. 51 | if [[ 52 | "${{ github.event_name }}" != "create" || 53 | "${{ github.ref }}" =~ $RELEASE_BRANCH_REGEX 54 | ]]; then 55 | # Run the other jobs. 56 | RESULT="true" 57 | else 58 | # There is no need to run the other jobs. 59 | RESULT="false" 60 | fi 61 | 62 | echo "result=$RESULT" >> $GITHUB_OUTPUT 63 | 64 | test: 65 | needs: run-determination 66 | if: needs.run-determination.outputs.result == 'true' 67 | permissions: 68 | contents: read 69 | 70 | strategy: 71 | matrix: 72 | operating-system: 73 | - ubuntu-latest 74 | - windows-latest 75 | - macos-latest 76 | 77 | runs-on: ${{ matrix.operating-system }} 78 | 79 | steps: 80 | # By default, actions/checkout converts the repo's LF line endings to CRLF on the Windows runner. 81 | - name: Disable EOL conversions 82 | run: git config --global core.autocrlf false 83 | 84 | - name: Checkout repository 85 | uses: actions/checkout@v6 86 | 87 | - name: Install Go 88 | uses: actions/setup-go@v6 89 | with: 90 | go-version: ${{ env.GO_VERSION }} 91 | 92 | - name: Install Python 93 | uses: actions/setup-python@v6 94 | with: 95 | python-version: ${{ env.PYTHON_VERSION }} 96 | 97 | - name: Install Poetry 98 | run: pip install poetry 99 | 100 | - name: Install Task 101 | uses: arduino/setup-task@v2 102 | with: 103 | repo-token: ${{ secrets.GITHUB_TOKEN }} 104 | version: 3.x 105 | 106 | - name: Run integration tests 107 | run: task go:test-integration 108 | -------------------------------------------------------------------------------- /.licenses/arduino-fwuploader/go/golang.org/x/crypto/openpgp/armor.dep.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: golang.org/x/crypto/openpgp/armor 3 | version: v0.14.0 4 | type: go 5 | summary: Package armor implements OpenPGP ASCII Armor, see RFC 4880. 6 | homepage: https://pkg.go.dev/golang.org/x/crypto/openpgp/armor 7 | license: bsd-3-clause 8 | licenses: 9 | - sources: crypto@v0.14.0/LICENSE 10 | text: | 11 | Copyright (c) 2009 The Go Authors. All rights reserved. 12 | 13 | Redistribution and use in source and binary forms, with or without 14 | modification, are permitted provided that the following conditions are 15 | met: 16 | 17 | * Redistributions of source code must retain the above copyright 18 | notice, this list of conditions and the following disclaimer. 19 | * Redistributions in binary form must reproduce the above 20 | copyright notice, this list of conditions and the following disclaimer 21 | in the documentation and/or other materials provided with the 22 | distribution. 23 | * Neither the name of Google Inc. nor the names of its 24 | contributors may be used to endorse or promote products derived from 25 | this software without specific prior written permission. 26 | 27 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 28 | "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 29 | LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 30 | A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 31 | OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 32 | SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 33 | LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 34 | DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 35 | THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 36 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 37 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 38 | - sources: crypto@v0.14.0/PATENTS 39 | text: | 40 | Additional IP Rights Grant (Patents) 41 | 42 | "This implementation" means the copyrightable works distributed by 43 | Google as part of the Go project. 44 | 45 | Google hereby grants to You a perpetual, worldwide, non-exclusive, 46 | no-charge, royalty-free, irrevocable (except as stated in this section) 47 | patent license to make, have made, use, offer to sell, sell, import, 48 | transfer and otherwise run, modify and propagate the contents of this 49 | implementation of Go, where such license applies only to those patent 50 | claims, both currently owned or controlled by Google and acquired in 51 | the future, licensable by Google that are necessarily infringed by this 52 | implementation of Go. This grant does not include claims that would be 53 | infringed only as a consequence of further modification of this 54 | implementation. If you or your agent or exclusive licensee institute or 55 | order or agree to the institution of patent litigation against any 56 | entity (including a cross-claim or counterclaim in a lawsuit) alleging 57 | that this implementation of Go or any code incorporated within this 58 | implementation of Go constitutes direct or contributory patent 59 | infringement, or inducement of patent infringement, then any patent 60 | rights granted to you under this License for this implementation of Go 61 | shall terminate as of the date such litigation is filed. 62 | notices: [] 63 | -------------------------------------------------------------------------------- /.licenses/arduino-fwuploader/go/golang.org/x/crypto/openpgp/errors.dep.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: golang.org/x/crypto/openpgp/errors 3 | version: v0.14.0 4 | type: go 5 | summary: Package errors contains common error types for the OpenPGP packages. 6 | homepage: https://pkg.go.dev/golang.org/x/crypto/openpgp/errors 7 | license: bsd-3-clause 8 | licenses: 9 | - sources: crypto@v0.14.0/LICENSE 10 | text: | 11 | Copyright (c) 2009 The Go Authors. All rights reserved. 12 | 13 | Redistribution and use in source and binary forms, with or without 14 | modification, are permitted provided that the following conditions are 15 | met: 16 | 17 | * Redistributions of source code must retain the above copyright 18 | notice, this list of conditions and the following disclaimer. 19 | * Redistributions in binary form must reproduce the above 20 | copyright notice, this list of conditions and the following disclaimer 21 | in the documentation and/or other materials provided with the 22 | distribution. 23 | * Neither the name of Google Inc. nor the names of its 24 | contributors may be used to endorse or promote products derived from 25 | this software without specific prior written permission. 26 | 27 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 28 | "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 29 | LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 30 | A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 31 | OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 32 | SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 33 | LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 34 | DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 35 | THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 36 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 37 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 38 | - sources: crypto@v0.14.0/PATENTS 39 | text: | 40 | Additional IP Rights Grant (Patents) 41 | 42 | "This implementation" means the copyrightable works distributed by 43 | Google as part of the Go project. 44 | 45 | Google hereby grants to You a perpetual, worldwide, non-exclusive, 46 | no-charge, royalty-free, irrevocable (except as stated in this section) 47 | patent license to make, have made, use, offer to sell, sell, import, 48 | transfer and otherwise run, modify and propagate the contents of this 49 | implementation of Go, where such license applies only to those patent 50 | claims, both currently owned or controlled by Google and acquired in 51 | the future, licensable by Google that are necessarily infringed by this 52 | implementation of Go. This grant does not include claims that would be 53 | infringed only as a consequence of further modification of this 54 | implementation. If you or your agent or exclusive licensee institute or 55 | order or agree to the institution of patent litigation against any 56 | entity (including a cross-claim or counterclaim in a lawsuit) alleging 57 | that this implementation of Go or any code incorporated within this 58 | implementation of Go constitutes direct or contributory patent 59 | infringement, or inducement of patent infringement, then any patent 60 | rights granted to you under this License for this implementation of Go 61 | shall terminate as of the date such litigation is filed. 62 | notices: [] 63 | -------------------------------------------------------------------------------- /.licenses/arduino-fwuploader/go/google.golang.org/protobuf/proto.dep.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: google.golang.org/protobuf/proto 3 | version: v1.33.0 4 | type: go 5 | summary: Package proto provides functions operating on protocol buffer messages. 6 | homepage: https://pkg.go.dev/google.golang.org/protobuf/proto 7 | license: bsd-3-clause 8 | licenses: 9 | - sources: protobuf@v1.33.0/LICENSE 10 | text: | 11 | Copyright (c) 2018 The Go Authors. All rights reserved. 12 | 13 | Redistribution and use in source and binary forms, with or without 14 | modification, are permitted provided that the following conditions are 15 | met: 16 | 17 | * Redistributions of source code must retain the above copyright 18 | notice, this list of conditions and the following disclaimer. 19 | * Redistributions in binary form must reproduce the above 20 | copyright notice, this list of conditions and the following disclaimer 21 | in the documentation and/or other materials provided with the 22 | distribution. 23 | * Neither the name of Google Inc. nor the names of its 24 | contributors may be used to endorse or promote products derived from 25 | this software without specific prior written permission. 26 | 27 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 28 | "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 29 | LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 30 | A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 31 | OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 32 | SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 33 | LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 34 | DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 35 | THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 36 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 37 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 38 | - sources: protobuf@v1.33.0/PATENTS 39 | text: | 40 | Additional IP Rights Grant (Patents) 41 | 42 | "This implementation" means the copyrightable works distributed by 43 | Google as part of the Go project. 44 | 45 | Google hereby grants to You a perpetual, worldwide, non-exclusive, 46 | no-charge, royalty-free, irrevocable (except as stated in this section) 47 | patent license to make, have made, use, offer to sell, sell, import, 48 | transfer and otherwise run, modify and propagate the contents of this 49 | implementation of Go, where such license applies only to those patent 50 | claims, both currently owned or controlled by Google and acquired in 51 | the future, licensable by Google that are necessarily infringed by this 52 | implementation of Go. This grant does not include claims that would be 53 | infringed only as a consequence of further modification of this 54 | implementation. If you or your agent or exclusive licensee institute or 55 | order or agree to the institution of patent litigation against any 56 | entity (including a cross-claim or counterclaim in a lawsuit) alleging 57 | that this implementation of Go or any code incorporated within this 58 | implementation of Go constitutes direct or contributory patent 59 | infringement, or inducement of patent infringement, then any patent 60 | rights granted to you under this License for this implementation of Go 61 | shall terminate as of the date such litigation is filed. 62 | notices: [] 63 | --------------------------------------------------------------------------------