Files
VERSE ebde9ba68f refactor(commands): separate commands and its core into two folders (#32)
- I think it would be better if one for commands only, one for the spec
handling core logic so people won't be confused by the core logic inside
the commands folder (cleaner I guess)
- Regen docs
2026-07-05 11:27:30 +07:00

100 lines
7.0 KiB
Go

package ops
import (
"github.com/versenilvis/iris/spec"
)
func init() {
spec.Register(&spec.Spec{
Name: "arduino-cli",
Description: "Arduino CLI - build, compile, and upload Arduino sketches",
Subcommands: []spec.Subcommand{
{Name: "board", Description: "Arduino board commands"},
{Name: "FQBN", Description: "Fully qualified board name"},
{Name: "port", Description: "Arduino board port connection"},
{Name: "list", Description: "Detects and displays a list of boards connected to the current computer"},
{Name: "search", Description: "Search for a board in the Boards Manager using the specified keywords"},
{Name: "burn-bootloader", Description: "Upload the bootloader on the board using an external programmer"},
{Name: "cache", Description: "Arduino cache commands"},
{Name: "compile", Description: "Compiles Arduino sketches"},
{Name: "e", Description: "If set built binaries will be exported to the sketch folder"},
{Name: "none", Description: "Use warning level 'none'"},
{Name: "default", Description: "Use warning level 'default'"},
{Name: "more", Description: "Use warning level 'more'"},
{Name: "all", Description: "Use warning level 'all'"},
{Name: "completion", Description: "Generates completion scripts for various shells"},
{Name: "config", Description: "Arduino configuration commands"},
{Name: "add", Description: "Adds one or more values to a setting"},
{Name: "delete", Description: "Deletes a settings key and all its sub keys"},
{Name: "dump", Description: "Prints the current configuration"},
{Name: "remove", Description: "Removes one or more values from a setting"},
{Name: "set", Description: "Sets a setting value"},
{Name: "core", Description: "Arduino core operations"},
{Name: "download", Description: "Downloads one or more cores and corresponding tool dependencies"},
{Name: "install", Description: "Installs one or more cores and corresponding tool dependencies"},
{Name: "update-index", Description: "Updates the index of cores to the latest version"},
{Name: "upgrade", Description: "Upgrades one or all installed platforms to the latest version"},
{Name: "debug", Description: "Debug Arduino sketches. (this command opens an interactive gdb session)"},
{Name: "check", Description: "Check if the given board/programmer combination supports debugging"},
{Name: "console", Description: "Debug interpreter 'console'"},
{Name: "mi", Description: "Debug interpreter 'mi'"},
{Name: "mi1", Description: "Debug interpreter 'mi1'"},
{Name: "mi2", Description: "Debug interpreter 'mi2'"},
{Name: "mi3", Description: "Debug interpreter 'mi3'"},
{Name: "help", Description: "Help provides help for any command in the application"},
{Name: "lib", Description: "Arduino commands about libraries"},
{Name: "deps", Description: "Check dependencies status for the specified library"},
{Name: "uninstall", Description: "Uninstalls one or more libraries"},
{Name: "monitor", Description: "Open a communication port with a board"},
{Name: "sketch", Description: "Arduino CLI sketch commands"},
{Name: "archive", Description: "Creates a zip file containing all sketch files"},
{Name: "new", Description: "Create a new Sketch"},
{Name: "update", Description: "Updates the index of cores and libraries to the latest versions"},
{Name: "upload", Description: "Upload Arduino sketches. This does NOT compile the sketch prior to upload"},
{Name: "version", Description: "Shows the version number of Arduino CLI which is installed on your system"},
},
Options: []spec.Option{
{Name: "--board-options", Description: "Max time to wait for port discovery, example: '30s, 1m (default 1s)'"},
{Name: "-b", Description: "Fully Qualified Board Name, example: 'arduino:avr:uno'"},
{Name: "-h", Description: "Help for attach"},
{Name: "-p", Description: "Upload port address, example: 'COM3 or /dev/ttyACM2'"},
{Name: "-l", Description: "Upload port protocol, example: 'serial'"},
{Name: "-f", Description: "Show full board details"},
{Name: "--list-programmers", Description: "Show list of available programmers"},
{Name: "--show-properties", Description: "Detects and displays a list of boards connected to the current computer"},
{Name: "-w", Description: "Help for listall"},
{Name: "-a", Description: "Show also boards marked as 'hidden' in the platform"},
{Name: "-P", Description: "Programmer to use, example: 'atmel_ice'"},
{Name: "-v", Description: "Turns on verbose mode"},
{Name: "-t", Description: "Verify uploaded binary after upload"},
{Name: "--build-path", Description: "Optional, cleanup the build folder and do not use any cached build"},
{Name: "--discovery-timeout", Description: "Max time to wait for port discovery, example: '30s, 1m (default 1s)'"},
{Name: "--dump-profile", Description: "Create and print a profile configuration from the build"},
{Name: "--encrypt-key", Description: "If set built binaries will be exported to the sketch folder"},
{Name: "--keys-keychain", Description: "Optional, optimize compile output for debugging, rather than for release"},
{Name: "--output-dir", Description: "Save build artifacts in this directory"},
{Name: "--preprocess", Description: "Print preprocessed code to stdout instead of compiling"},
{Name: "-m", Description: "Sketch profile to use"},
{Name: "--quiet", Description: "Optional, suppresses almost every output"},
{Name: "--warnings", Description: "Use warning level 'none'"},
{Name: "--no-description", Description: "Disable completion description for shells that support it"},
{Name: "--dest-dir", Description: "Sets where to save the configuration file"},
{Name: "--dest-file", Description: "Sets where to save the configuration file"},
{Name: "--overwrite", Description: "Overwrite existing config file"},
{Name: "--no-overwrite", Description: "Do not overwrite already installed platforms"},
{Name: "--run-post-install", Description: "Force run of post-install scripts (if the CLI is not running interactively)"},
{Name: "--run-pre-uninstall", Description: "Force run of pre-uninstall scripts (if the CLI is not running interactively)"},
{Name: "--skip-post-install", Description: "Force skip of post-install scripts (if the CLI is running interactively)"},
{Name: "--skip-pre-uninstall", Description: "Force skip of pre-uninstall scripts (if the CLI is running interactively)"},
{Name: "--updatable", Description: "List updatable platforms"},
{Name: "--daemonize", Description: "Do not terminate daemon process if the parent process dies"},
{Name: "--debug", Description: "Enable debug logging of gRPC calls"},
{Name: "--debug-file", Description: "Append debug logging to the specified file"},
{Name: "--debug-filter", Description: "Display only the provided gRPC calls"},
{Name: "--port", Description: "The TCP port the daemon will listen to"},
{Name: "--interpreter", Description: "Debug interpreter 'console'"},
{Name: "-I", Description: "Show metadata about the debug session instead of starting the debugger"},
},
})
}