Files
iris-context/commands/sys/simctl.go
T
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

96 lines
6.8 KiB
Go

package sys
import (
"github.com/versenilvis/iris/spec"
)
func init() {
spec.Register(&spec.Spec{
Name: "simctl",
Description: "Add photos, live photos, videos, or contacts to the library of a device",
Subcommands: []spec.Subcommand{
{Name: "addmedia", Description: "Add photos, live photos, videos, or contacts to the library of a device"},
{Name: "boot", Description: "Boot a device or device pair"},
{Name: "clone", Description: "Clone an existing device"},
{Name: "create", Description: "Create a new device"},
{Name: "delete", Description: "Delete specified devices, unavailable devices, or all devices"},
{Name: "diagnose", Description: "Collect diagnostic information and logs"},
{Name: "erase", Description: "Erase a device's contents and settings"},
{Name: "all", Description: "Specifying all will erase all existing devices"},
{Name: "get_app_container", Description: "Print the path of the installed app's container"},
{Name: "app", Description: "The .app bundle"},
{Name: "data", Description: "The application's data container"},
{Name: "groups", Description: "The App Group containers"},
{Name: "<group identifier>", Description: "A specific App Group container"},
{Name: "getenv", Description: "Print an environment variable from a running device"},
{Name: "help", Description: "Prints the usage for a given subcommand"},
{Name: "icloud_sync", Description: "Trigger iCloud sync on a device"},
{Name: "install", Description: "Install an app on a device"},
{Name: "io", Description: "Set up a device IO operation"},
{Name: "enumerate", Description: "Lists all available IO ports and descriptor states"},
{Name: "poll", Description: "Polls all available IO ports for events"},
{Name: "recordVideo", Description: "Records the display to a QuickTime movie at the specified file or url"},
{Name: "screenshot", Description: "Saves a screenshot as a PNG to the specified file or url(use '-' for stdout)"},
{Name: "keychain", Description: "Manipulate a device's keychain"},
{Name: "add-root-cert", Description: "Add a certificate to the trusted root store"},
{Name: "add-cert", Description: "Add a certificate to the keychain"},
{Name: "reset", Description: "Reset the keychain"},
{Name: "launch", Description: "Launch an application by identifier on a device"},
{Name: "list", Description: "List available devices, device types, runtimes, or device pairs"},
{Name: "location", Description: "Control a device's simulated location"},
{Name: "clear", Description: "Stop any running scenario and clear any simulated location"},
{Name: "set", Description: "Set the location to a specific latitude and longitude"},
{Name: "device", Description: "The device. If not provided all booted devices are affected"},
{Name: "enable/disable", Description: "Enable or Disable verbose logging"},
{Name: "openurl", Description: "Open a URL in a device"},
{Name: "pair", Description: "Create a new watch and phone pair"},
{Name: "pair_activate", Description: "Set a given pair as active"},
{Name: "pbcopy", Description: "Copy standard input onto the device pasteboard"},
{Name: "pbpaste", Description: "Print the contents of the device's pasteboard to standard output"},
{Name: "pbsync", Description: "Sync the pasteboard content from one pasteboard to another"},
{Name: "privacy", Description: "Grant, revoke, or reset privacy and permissions"},
{Name: "bundle identifier", Description: "The bundle identifier of the target application"},
{Name: "push", Description: "Send a simulated push notification"},
{Name: "rename", Description: "Rename a device"},
{Name: "runtime", Description: "Perform operations on runtimes"},
{Name: "verify", Description: "Re-verify the signature of a given runtime"},
{Name: "shutdown", Description: "Shutdown a device"},
{Name: "spawn", Description: "Spawn a process by executing a given executable on a device"},
{Name: "status_bar", Description: "Set or clear status bar overrides"},
{Name: "terminate", Description: "Terminate an application by identifier on a device"},
{Name: "ui", Description: "Get or Set UI options"},
},
Options: []spec.Option{
{Name: "--arch", Description: "Clone an existing device"},
{Name: "-b", Description: "Do NOT show the resulting archive in a Finder window upon completion"},
{Name: "-X", Description: "Specify a duration (in seconds) to wait for the log collection before timeout"},
{Name: "--output", Description: "Specify the output directory. If not provided the temporary directory is used"},
{Name: "--no-archive", Description: "Do not create an archive, leave the collected files uncompressed"},
{Name: "--all-logs", Description: "Include all device logs, even for non-booted devices"},
{Name: "--data-containers", Description: "Erase a device's contents and settings"},
{Name: "--poll", Description: "Poll after enumeration"},
{Name: "--codec", Description: "Specifies the codec type: 'h264' or 'hevc'. Default is 'hevc'"},
{Name: "--display", Description: "Force the output file to be written to, even if the file already exists"},
{Name: "--type", Description: "Can be 'png', 'tiff', 'bmp', 'gif', 'jpeg'. Default is png"},
{Name: "-w", Description: "Redirect the application's standard output to a file"},
{Name: "--stderr", Description: "Redirect the application's standard error to a file"},
{Name: "--terminate-running-process", Description: "List available devices, device types, runtimes, or device pairs"},
{Name: "-j", Description: "Print as JSON"},
{Name: "-e", Description: "Encode slashes without escapes in JSON output"},
{Name: "-v", Description: "More verbose output"},
{Name: "-p", Description: "Grant, revoke, or reset privacy and permissions"},
{Name: "-m", Description: "Delete images not used within the past <days> days"},
{Name: "-n", Description: "Print what images would be deleted without actually deleting anything"},
{Name: "--default", Description: "Clear the override for the given SDK and revert to default behavior"},
{Name: "--sdkBuild", Description: "Explicitly specify the SDK build, eg for an Xcode other than the selected Xcode"},
{Name: "--time", Description: "If specified must be one of 'searching', 'failed', or 'active'"},
{Name: "--wifiBars", Description: "If specified must be 0-3"},
{Name: "--cellularMode", Description: "If specified must be one of 'notSupported', 'searching', 'failed', or 'active'"},
{Name: "--cellularBars", Description: "If specified must be 0-4"},
{Name: "--operatorName", Description: "Set the cellular operator/carrier name. Use '' for the empty string"},
{Name: "--batteryState", Description: "If specified must be one of 'charging', 'charged', or 'discharging'"},
{Name: "--batteryLevel", Description: "If specified must be 0-100"},
},
})
}