diff --git a/_typos.toml b/_typos.toml
index 8078777..cafc7a6 100644
--- a/_typos.toml
+++ b/_typos.toml
@@ -1,2 +1,11 @@
[default.extend-words]
hel = "hel"
+wrk = "wrk"
+Wrk = "Wrk"
+Brane = "Brane"
+HGE = "HGE"
+udid = "udid"
+OT = "OT"
+crypted = "crypted"
+uncomplete = "uncomplete"
+edn = "edn"
diff --git a/commands/README.md b/commands/README.md
new file mode 100644
index 0000000..5097b0b
--- /dev/null
+++ b/commands/README.md
@@ -0,0 +1,678 @@
+# Iris commands
+
+This directory contains all modular CLI command specifications and autocompletion definitions supported by **Iris**. Every command is defined as a `core.Spec` registered via package `init()` functions and grouped into category subdirectories.
+
+The **[`core/`](./core)** subdirectory is the primary engine package. It implements the underlying command registry (`core.Registry`), data structures (`Spec`, `Arg`, `Flag`), dynamic generators, and autocompletion matching logic. The top-level **[`all.go`](./all.go)** file anonymously imports all category subpackages to trigger their initialization and register all available commands at startup.
+
+## Overview
+
+Currently, Iris natively supports **567** top-level CLI commands across **14** categories:
+
+- [Cloud, Containers, Kubernetes, DevOps & Databases (`ops/`)](#ops): **118** commands
+- [JavaScript, TypeScript, Frontend & Node.js Tools (`js/`)](#js): **82** commands
+- [Python Ecosystem & Data Science Tools (`python/`)](#python): **19** commands
+- [Rust Ecosystem & Modern CLI Tools (`rust/`)](#rust): **11** commands
+- [Go Development & Project Tools (`golang/`)](#golang): **3** commands
+- [Java, Kotlin & JVM Build Tools (`jvm/`)](#jvm): **14** commands
+- [C/C++ Compilers & Build Systems (`cc/`)](#cc): **16** commands
+- [Git Version Control & GitHub Tools (`git/`)](#git): **8** commands
+- [System Package Managers (`pkginstaller/`)](#pkginstaller): **12** commands
+- [Filesystem, Directory & Archive Utilities (`fs/`)](#fs): **30** commands
+- [Editors, Pagers & File Viewers (`view/`)](#view): **27** commands
+- [Text Processing, JSON & Stream Manipulation (`text/`)](#text): **28** commands
+- [Task Runners & Build Automation (`runner/`)](#runner): **24** commands
+- [System Administration, Network & Process Management (`sys/`)](#sys): **175** commands
+
+---
+
+
+## Cloud, Containers, Kubernetes, DevOps & Databases (`ops/`)
+
+| Command | Description | Source File |
+| :--- | :--- | :--- |
+| **`amplify`** | Environment | [`amplify.go`](./ops/amplify.go) |
+| **`ampx`** | CLI for Amplify Gen 2 | [`ampx.go`](./ops/ampx.go) |
+| **`ansible`** | Define and run a single Ansible task | [`ansible.go`](./ops/ansible.go) |
+| **`ansible-config`** | View ansible configuration | [`ansible_config.go`](./ops/ansible_config.go) |
+| **`ansible-doc`** | Displays information on modules installed in Ansible libraries | [`ansible_doc.go`](./ops/ansible_doc.go) |
+| **`ansible-galaxy`** | The Galaxy API server URL | [`ansible_galaxy.go`](./ops/ansible_galaxy.go) |
+| **`ansible-lint`** | Ansible static code analysis | [`ansible_lint.go`](./ops/ansible_lint.go) |
+| **`ansible-playbook`** | Runs Ansible playbooks, executing the defined tasks on the targeted hosts | [`ansible_playbook.go`](./ops/ansible_playbook.go) |
+| **`appwrite`** | Appwrite - Open-Source End-to-End Backend Server | [`appwrite.go`](./ops/appwrite.go) |
+| **`arch`** | 32-bit intel | [`arch.go`](./ops/arch.go) |
+| **`arduino-cli`** | Arduino CLI - build, compile, and upload Arduino sketches | [`arduino_cli.go`](./ops/arduino_cli.go) |
+| **`argo`** | If True, Use the HTTP client. Defaults to the ARGO_HTTP1 environment variable | [`argo.go`](./ops/argo.go) |
+| **`asdf`** | Plugin name | [`asdf.go`](./ops/asdf.go) |
+| **`atlas`** | CLI tool to manage MongoDB Atlas | [`atlas.go`](./ops/atlas.go) |
+| **`aws`** | Use a specific profile from your credential file | [`aws.go`](./ops/aws.go) |
+| **`aws-vault`** | Add credentials to the secure keystore | [`aws_vault.go`](./ops/aws_vault.go) |
+| **`bit`** | Bit documentation: https://bit.dev/docs | [`bit.go`](./ops/bit.go) |
+| **`bosh`** | Deployment | [`bosh.go`](./ops/bosh.go) |
+| **`capacitor`** | Add a native platform project to your app | [`capacitor.go`](./ops/capacitor.go) |
+| **`cdk`** | AWS CDK CLI | [`cdk.go`](./ops/cdk.go) |
+| **`cf`** | Cloudfoundry cli | [`cf.go`](./ops/cf.go) |
+| **`checkov`** | Branch | [`checkov.go`](./ops/checkov.go) |
+| **`circleci`** | CircleCI CLI | [`circleci.go`](./ops/circleci.go) |
+| **`cloudflared`** | Specify the hostname of your application | [`cloudflared.go`](./ops/cloudflared.go) |
+| **`coda`** | Coda CLI - interact with Coda docs and tables | [`coda.go`](./ops/coda.go) |
+| **`command`** | Run an external command | [`command.go`](./ops/command.go) |
+| **`copilot`** | Name of the application | [`copilot.go`](./ops/copilot.go) |
+| **`cosign`** | Provides utilities for attaching artifacts to other artifacts in a registry | [`cosign.go`](./ops/cosign.go) |
+| **`dapr`** | Distributed Application Runtime CLI | [`dapr.go`](./ops/dapr.go) |
+| **`datree`** | Help for | [`datree.go`](./ops/datree.go) |
+| **`deployctl`** | Command line tool for Deno Deploy | [`deployctl.go`](./ops/deployctl.go) |
+| **`direnv`** | Help for direnv | [`direnv.go`](./ops/direnv.go) |
+| **`docker`** | container engine | [`docker.go`](./ops/docker.go) |
+| **`docker-compose`** | multi-container (legacy) | [`docker.go`](./ops/docker.go) |
+| **`doctl`** | The official DigitalOcean command line interface (CLI) | [`doctl.go`](./ops/doctl.go) |
+| **`doppler`** | The official CLI for Doppler Secret Operations Platform | [`doppler.go`](./ops/doppler.go) |
+| **`eas`** | Log in with your Expo account | [`eas.go`](./ops/eas.go) |
+| **`fastly`** | A CLI for interacting with the Fastly platform | [`fastly.go`](./ops/fastly.go) |
+| **`firebase`** | ProjectAlias | [`firebase.go`](./ops/firebase.go) |
+| **`flyctl`** | Command line tool for Fly.io services | [`flyctl.go`](./ops/flyctl.go) |
+| **`fnm`** | Fast and simple Node.js version manager | [`fnm.go`](./ops/fnm.go) |
+| **`gcloud`** | Manage Google Cloud Platform resources and developer workflow | [`gcloud.go`](./ops/gcloud.go) |
+| **`gh`** | Current branch | [`gh.go`](./ops/gh.go) |
+| **`gpg`** | Encryption and signing tool | [`gpg.go`](./ops/gpg.go) |
+| **`hasura`** | .env filename to load ENV vars from | [`hasura.go`](./ops/hasura.go) |
+| **`helm`** | The Helm package manager for Kubernetes | [`helm.go`](./ops/helm.go) |
+| **`helmfile`** | Deploy helm charts | [`helmfile.go`](./ops/helmfile.go) |
+| **`hugo`** | The world | [`hugo.go`](./ops/hugo.go) |
+| **`k3d`** | Little helper to run k3s in Docker | [`k3d.go`](./ops/k3d.go) |
+| **`k6`** | Create an archive | [`k6.go`](./ops/k6.go) |
+| **`k9s`** | Kubernetes namespace | [`k9s.go`](./ops/k9s.go) |
+| **`kind`** | Cluster | [`kind.go`](./ops/kind.go) |
+| **`knex`** | SQL query builder for JavaScript | [`knex.go`](./ops/knex.go) |
+| **`kubectl`** | kubernetes cli | [`kubectl.go`](./ops/kubectl.go) |
+| **`kubectx`** | Switch between Kubernetes-contexts | [`kubectx.go`](./ops/kubectx.go) |
+| **`kubens`** | Switch between Kubernetes-namespaces | [`kubens.go`](./ops/kubens.go) |
+| **`limactl`** | Lima: Linux virtual machines, with a focus on running containers | [`limactl.go`](./ops/limactl.go) |
+| **`locust`** | Show program | [`locust.go`](./ops/locust.go) |
+| **`lpass`** | Command line interface for LastPass | [`lpass.go`](./ops/lpass.go) |
+| **`minikube`** | Format to print stdout in | [`minikube.go`](./ops/minikube.go) |
+| **`mongocli`** | CLI tool to manage your MongoDB Cloud | [`mongocli.go`](./ops/mongocli.go) |
+| **`mongoimport`** | Import data from a JSON, CSV, or TSV file into a MongoDB instance | [`mongoimport.go`](./ops/mongoimport.go) |
+| **`mongosh`** | Default Connection String; Equivalent to running mongosh without any commands | [`mongosh.go`](./ops/mongosh.go) |
+| **`multipass`** | Displays help on commandline options | [`multipass.go`](./ops/multipass.go) |
+| **`mysql`** | Mysql is a terminal-based front-end to MySQL | [`mysql.go`](./ops/mysql.go) |
+| **`netlify`** | Print debugging information | [`netlify.go`](./ops/netlify.go) |
+| **`newman`** | Newman is a command-line collection runner for Postman | [`newman.go`](./ops/newman.go) |
+| **`nginx`** | Nginx (pronounced | [`nginx.go`](./ops/nginx.go) |
+| **`ngrok`** | Path to log file, | [`ngrok.go`](./ops/ngrok.go) |
+| **`nvm`** | Node version | [`nvm.go`](./ops/nvm.go) |
+| **`oci`** | Oracle Cloud Infrastructure CLI | [`oci.go`](./ops/oci.go) |
+| **`okteto`** | Context | [`okteto.go`](./ops/okteto.go) |
+| **`op`** | Official 1Password CLI | [`op.go`](./ops/op.go) |
+| **`opa`** | Open Policy Agent (OPA) | [`opa.go`](./ops/opa.go) |
+| **`osqueryi`** | Your OS as a high-performance relational database | [`osqueryi.go`](./ops/osqueryi.go) |
+| **`pass`** | Pass - stores, retrieves, generates, and synchronizes passwords securely | [`pass.go`](./ops/pass.go) |
+| **`pg_dump`** | Dumps a database as a text file or to other formats | [`pg_dump.go`](./ops/pg_dump.go) |
+| **`pgcli`** | Host address of the postgres database | [`pgcli.go`](./ops/pgcli.go) |
+| **`pm2`** | Outputs the version number | [`pm2.go`](./ops/pm2.go) |
+| **`pod`** | CocoaPods, the Cocoa library package manager | [`pod.go`](./ops/pod.go) |
+| **`podman`** | Build an image using instructions from Containerfiles | [`podman.go`](./ops/podman.go) |
+| **`pscale`** | The client ID for the PlanetScale CLI application | [`pscale.go`](./ops/pscale.go) |
+| **`psql`** | Psql is a terminal-based front-end to PostgreSQL | [`psql.go`](./ops/psql.go) |
+| **`pulumi`** | The name of the stack to operate on. Defaults to the current stack | [`pulumi.go`](./ops/pulumi.go) |
+| **`qodana`** | Run Qodana as fast as possible, with minimum effort required | [`qodana.go`](./ops/qodana.go) |
+| **`railway`** | CLI for managing Railway Apps | [`railway.go`](./ops/railway.go) |
+| **`rbenv`** | List all available rbenv commands | [`rbenv.go`](./ops/rbenv.go) |
+| **`robot`** | Tag | [`robot.go`](./ops/robot.go) |
+| **`rsync`** | remote sync | [`ssh.go`](./ops/ssh.go) |
+| **`scp`** | secure copy | [`ssh.go`](./ops/ssh.go) |
+| **`serverless`** | AWS profile to use with the command | [`serverless.go`](./ops/serverless.go) |
+| **`sfdx`** | Analyze (lint) Aura component code | [`sfdx.go`](./ops/sfdx.go) |
+| **`sftp`** | OpenSSH secure file transfer | [`sftp.go`](./ops/sftp.go) |
+| **`space`** | Deta Space CLI for mananging Deta Space projects | [`space.go`](./ops/space.go) |
+| **`sqlite3`** | A command line interface for SQLite version 3 | [`sqlite3.go`](./ops/sqlite3.go) |
+| **`src`** | Interact with Sourcegraph from the command line | [`src.go`](./ops/src.go) |
+| **`ssh`** | secure shell | [`ssh.go`](./ops/ssh.go) |
+| **`ssh-keygen`** | Generates, manages and converts authentication keys for ssh | [`ssh_keygen.go`](./ops/ssh_keygen.go) |
+| **`stripe`** | Stripe CLI - build, test, and manage your Stripe integrations right from your terminal | [`stripe.go`](./ops/stripe.go) |
+| **`supabase`** | Supabase CLI | [`supabase.go`](./ops/supabase.go) |
+| **`surreal`** | Database authentication password to use when connecting [default: root] | [`surreal.go`](./ops/surreal.go) |
+| **`tailscale`** | Connect to Tailscale, logging in if needed | [`tailscale.go`](./ops/tailscale.go) |
+| **`terraform`** | Workspace | [`terraform.go`](./ops/terraform.go) |
+| **`terragrunt`** | Workspace | [`terragrunt.go`](./ops/terragrunt.go) |
+| **`tfenv`** | Version | [`tfenv.go`](./ops/tfenv.go) |
+| **`tfsec`** | Terraform workspaces | [`tfsec.go`](./ops/tfsec.go) |
+| **`tkn`** | CLI for tekton pipelines | [`tkn.go`](./ops/tkn.go) |
+| **`trivy`** | Skip updating built-in policies [$TRIVY_SKIP_POLICY_UPDATE] | [`trivy.go`](./ops/trivy.go) |
+| **`tsuru`** | Plan | [`tsuru.go`](./ops/tsuru.go) |
+| **`vault`** | Display help | [`vault.go`](./ops/vault.go) |
+| **`vela`** | Show the reference doc for component, trait or workflow types | [`vela.go`](./ops/vela.go) |
+| **`vercel`** | CLI Interface for Vercel.com | [`vercel.go`](./ops/vercel.go) |
+| **`volta`** | Enables verbose diagnostics | [`volta.go`](./ops/volta.go) |
+| **`watson`** | A wonderful CLI to track your time | [`watson.go`](./ops/watson.go) |
+| **`whois`** | Query a database for information about a domain registrant | [`whois.go`](./ops/whois.go) |
+| **`wrangler`** | Path to configuration file [default: wrangler.toml] | [`wrangler.go`](./ops/wrangler.go) |
+| **`xc`** | List tasks from an xc-compatible markdown file | [`xc.go`](./ops/xc.go) |
+| **`xcodes`** | Manage the Xcode versions installed on your Mac | [`xcodes.go`](./ops/xcodes.go) |
+
+
+## JavaScript, TypeScript, Frontend & Node.js Tools (`js/`)
+
+| Command | Description | Source File |
+| :--- | :--- | :--- |
+| **`asar`** | A simple extensive tar-like archive format with indexing | [`asar.go`](./js/asar.go) |
+| **`astro`** | Add an integration | [`astro.go`](./js/astro.go) |
+| **`babel`** | A comma-separated list of preset names | [`babel.go`](./js/babel.go) |
+| **`blitz`** | Show help for command | [`blitz.go`](./js/blitz.go) |
+| **`browser-sync`** | Keep multiple browsers & devices in sync when building websites | [`browser_sync.go`](./js/browser_sync.go) |
+| **`build-storybook`** | Storybook build CLI tools | [`build_storybook.go`](./js/build_storybook.go) |
+| **`bun`** | bun js runtime | [`bun.go`](./js/bun.go) |
+| **`bunx`** | execute package (bun x) | [`bun.go`](./js/bun.go) |
+| **`cordova`** | Print out the version of your cordova-cli install | [`cordova.go`](./js/cordova.go) |
+| **`create-completion-spec`** | Setup fig folder and create spec with the given name | [`create_completion_spec.go`](./js/create_completion_spec.go) |
+| **`create-next-app`** | Output the version number | [`create_next_app.go`](./js/create_next_app.go) |
+| **`create-nx-workspace`** | The name of the workspace | [`create_nx_workspace.go`](./js/create_nx_workspace.go) |
+| **`create-react-app`** | Creates a new React project | [`create_react_app.go`](./js/create_react_app.go) |
+| **`create-react-native-app`** | Creates a new React Native project | [`create_react_native_app.go`](./js/create_react_native_app.go) |
+| **`create-redwood-app`** | Name of your Redwood project | [`create_redwood_app.go`](./js/create_redwood_app.go) |
+| **`create-remix`** | Display help for command | [`create_remix.go`](./js/create_remix.go) |
+| **`create-t3-app`** | The name of the application, as well as the name of the directory to create | [`create_t3_app.go`](./js/create_t3_app.go) |
+| **`create-video`** | CLI used to create remotion video project | [`create_video.go`](./js/create_video.go) |
+| **`create-vite`** | Create a new project powered by Vite | [`create_vite.go`](./js/create_vite.go) |
+| **`create-web3-frontend`** | Quickly create a Next.js project with wagmi and TailwindCSS ready to go | [`create_web3_frontend.go`](./js/create_web3_frontend.go) |
+| **`deno`** | A modern JavaScript and TypeScript runtime | [`deno.go`](./js/deno.go) |
+| **`dotenv`** | Loads environment variables from .env | [`dotenv.go`](./js/dotenv.go) |
+| **`electron`** | Build cross platform desktop apps with JavaScript, HTML and CSS | [`electron.go`](./js/electron.go) |
+| **`elm`** | Fig spec for the Elm language cli | [`elm.go`](./js/elm.go) |
+| **`elm-format`** | Format your code in the Elm idiomatic way | [`elm_format.go`](./js/elm_format.go) |
+| **`elm-json`** | Deal with your elm.json | [`elm_json.go`](./js/elm_json.go) |
+| **`elm-review`** | Prints a single JSON object | [`elm_review.go`](./js/elm_review.go) |
+| **`esbuild`** | An extremely fast JavaScript bundler | [`esbuild.go`](./js/esbuild.go) |
+| **`eslint`** | Pluggable JavaScript linter | [`eslint.go`](./js/eslint.go) |
+| **`expo`** | Tools for creating, running, and deploying Universal Expo and React Native apps | [`expo.go`](./js/expo.go) |
+| **`expo-cli`** | Tools for creating, running, and deploying Universal Expo and React Native apps | [`expo_cli.go`](./js/expo_cli.go) |
+| **`ganache-cli`** | Fast Ethereum RPC client | [`ganache_cli.go`](./js/ganache_cli.go) |
+| **`gatsby`** | Set host. Defaults to localhost | [`gatsby.go`](./js/gatsby.go) |
+| **`hardhat`** | Ethereum development environment | [`hardhat.go`](./js/hardhat.go) |
+| **`ionic`** | Target engine (e.g. browser, cordova) | [`ionic.go`](./js/ionic.go) |
+| **`jest`** | A delightful JavaScript Testing Framework with a focus on simplicity | [`jest.go`](./js/jest.go) |
+| **`lerna`** | Branch | [`lerna.go`](./js/lerna.go) |
+| **`meteor`** | Run the meteor command-line tool | [`meteor.go`](./js/meteor.go) |
+| **`ncu`** | Clear the default cache, or the cache file specified by --cacheFile | [`ncu.go`](./js/ncu.go) |
+| **`nest`** | Report actions that would be taken without writing out results | [`nest.go`](./js/nest.go) |
+| **`next`** | A port number on which to start the application | [`next.go`](./js/next.go) |
+| **`ng`** | Project name | [`ng.go`](./js/ng.go) |
+| **`node`** | Run the node interpreter | [`node.go`](./js/node.go) |
+| **`npm`** | node packages | [`npm.go`](./js/npm.go) |
+| **`npx`** | Execute binaries from npm packages | [`npx.go`](./js/npx.go) |
+| **`nuxi`** | The directory of the target application | [`nuxi.go`](./js/nuxi.go) |
+| **`nuxt`** | Launch the development server | [`nuxt.go`](./js/nuxt.go) |
+| **`nx`** | All projects | [`nx.go`](./js/nx.go) |
+| **`oxlint`** | All lints (except nursery) | [`oxlint.go`](./js/oxlint.go) |
+| **`playwright`** | Display help for command | [`playwright.go`](./js/playwright.go) |
+| **`pnpm`** | fast node packages | [`pnpm.go`](./js/pnpm.go) |
+| **`pnpx`** | Execute binaries from npm packages | [`pnpx.go`](./js/pnpx.go) |
+| **`prettier`** | Run Prettier from the command line | [`prettier.go`](./js/prettier.go) |
+| **`quasar`** | Quasar Framework CLI | [`quasar.go`](./js/quasar.go) |
+| **`react-native`** | Attempt to fix all diagnosed issues | [`react_native.go`](./js/react_native.go) |
+| **`redwood`** | Script | [`redwood.go`](./js/redwood.go) |
+| **`remix`** | Represent the directory of the Remix application | [`remix.go`](./js/remix.go) |
+| **`remotion`** | Create videos programmatically in React | [`remotion.go`](./js/remotion.go) |
+| **`rollup`** | Next-generation ES module bundler | [`rollup.go`](./js/rollup.go) |
+| **`rome`** | Rome CLI | [`rome.go`](./js/rome.go) |
+| **`rush`** | Projects | [`rush.go`](./js/rush.go) |
+| **`sequelize`** | The environment to run the command in | [`sequelize.go`](./js/sequelize.go) |
+| **`serve`** | Static file serving and directory listing | [`serve.go`](./js/serve.go) |
+| **`shadcn-ui`** | Shadcn UI CLI | [`shadcn_ui.go`](./js/shadcn_ui.go) |
+| **`start-storybook`** | Display usage information | [`start_storybook.go`](./js/start_storybook.go) |
+| **`stencil`** | CLI to build Stencil projects and generate components | [`stencil.go`](./js/stencil.go) |
+| **`swagger-typescript-api`** | Generate api via swagger scheme | [`swagger_typescript_api.go`](./js/swagger_typescript_api.go) |
+| **`swc`** | Path to the file | [`swc.go`](./js/swc.go) |
+| **`truffle`** | Execute build pipeline (if configuration present) | [`truffle.go`](./js/truffle.go) |
+| **`ts-node`** | Run the TypeScript interpreter for Node.JS | [`ts_node.go`](./js/ts_node.go) |
+| **`tsc`** | CLI tool for TypeScript compiler | [`tsc.go`](./js/tsc.go) |
+| **`tsx`** | Run TypeScript file using tsx | [`tsx.go`](./js/tsx.go) |
+| **`turbo`** | Print the version | [`turbo.go`](./js/turbo.go) |
+| **`typeorm`** | Show help for command | [`typeorm.go`](./js/typeorm.go) |
+| **`vite`** | Native ESM-powered web dev build tool | [`vite.go`](./js/vite.go) |
+| **`vr`** | The npm-style script runner for Deno | [`vr.go`](./js/vr.go) |
+| **`vsce`** | The Visual Studio Code Extension Manager | [`vsce.go`](./js/vsce.go) |
+| **`vue`** | Vue cli tools | [`vue.go`](./js/vue.go) |
+| **`watchman`** | A file watching service | [`watchman.go`](./js/watchman.go) |
+| **`webpack`** | Run webpack (default command, can be omitted) | [`webpack.go`](./js/webpack.go) |
+| **`yalc`** | Work with yarn/npm packages locally like a boss | [`yalc.go`](./js/yalc.go) |
+| **`yarn`** | yarn package manager | [`yarn.go`](./js/yarn.go) |
+
+
+## Python Ecosystem & Data Science Tools (`python/`)
+
+| Command | Description | Source File |
+| :--- | :--- | :--- |
+| **`black`** | Version | [`black.go`](./python/black.go) |
+| **`conda`** | Name of environment | [`conda.go`](./python/conda.go) |
+| **`django-admin`** | Show this help message and exit | [`django_admin.go`](./python/django_admin.go) |
+| **`googler`** | Google from the command-line | [`googler.go`](./python/googler.go) |
+| **`jupyter`** | Set log level to logging.DEBUG (maximize logging output) | [`jupyter.go`](./python/jupyter.go) |
+| **`mamba`** | Mamba is a fast, robust, and cross-platform package manager | [`mamba.go`](./python/mamba.go) |
+| **`mypy`** | Mypy is a static type checker for Python | [`mypy.go`](./python/mypy.go) |
+| **`pipenv`** | Python package manager | [`pipenv.go`](./python/pipenv.go) |
+| **`pipx`** | Installed package | [`pipx.go`](./python/pipx.go) |
+| **`poetry`** | python dependency manager | [`python.go`](./python/python.go) |
+| **`pre-commit`** | Show help message and exit | [`pre_commit.go`](./python/pre_commit.go) |
+| **`pyenv`** | Pyenv | [`pyenv.go`](./python/pyenv.go) |
+| **`pytest`** | Control assertion debugging tools. | [`pytest.go`](./python/pytest.go) |
+| **`ruff`** | Enable verbose logging | [`ruff.go`](./python/ruff.go) |
+| **`sqlfluff`** | A dialect-flexible and configurable SQL linter | [`sqlfluff.go`](./python/sqlfluff.go) |
+| **`sqlmesh`** | SQLMesh command line tool | [`sqlmesh.go`](./python/sqlmesh.go) |
+| **`streamlit`** | Streamlit | [`streamlit.go`](./python/streamlit.go) |
+| **`uv`** | fast python package manager | [`python.go`](./python/python.go) |
+| **`youtube-dl`** | Clipboard | [`youtube_dl.go`](./python/youtube_dl.go) |
+
+
+## Rust Ecosystem & Modern CLI Tools (`rust/`)
+
+| Command | Description | Source File |
+| :--- | :--- | :--- |
+| **`cargo`** | rust toolchain | [`cargo.go`](./rust/cargo.go) |
+| **`dprint`** | Prints the help of the given subcommand(s) | [`dprint.go`](./rust/dprint.go) |
+| **`pijul`** | Adds a path to the tree | [`pijul.go`](./rust/pijul.go) |
+| **`rustc`** | Rust compiler | [`rustc.go`](./rust/rustc.go) |
+| **`rustup`** | The Rust toolchain installer | [`rustup.go`](./rust/rustup.go) |
+| **`taplo`** | Set color values for the output | [`taplo.go`](./rust/taplo.go) |
+| **`tokei`** | Count your code, quickly | [`tokei.go`](./rust/tokei.go) |
+| **`trunk`** | Run on all files instead of only changed files | [`trunk.go`](./rust/trunk.go) |
+| **`wasm-bindgen`** | Generate bindings between WebAssembly and JavaScript | [`wasm_bindgen.go`](./rust/wasm_bindgen.go) |
+| **`wasm-pack`** | Build an npm package | [`wasm_pack.go`](./rust/wasm_pack.go) |
+| **`zellij`** | Change where zellij looks for the configuration file | [`zellij.go`](./rust/zellij.go) |
+
+
+## Go Development & Project Tools (`golang/`)
+
+| Command | Description | Source File |
+| :--- | :--- | :--- |
+| **`go`** | tool for managing Go source code | [`go.go`](./golang/go.go) |
+| **`goctl`** | A cli tool to generate go-zero code | [`goctl.go`](./golang/goctl.go) |
+| **`goreleaser`** | Deliver Go binaries as fast and easily as possible | [`goreleaser.go`](./golang/goreleaser.go) |
+
+
+## Java, Kotlin & JVM Build Tools (`jvm/`)
+
+| Command | Description | Source File |
+| :--- | :--- | :--- |
+| **`clojure`** | An alias to refer to its function or a qualified function | [`clojure.go`](./jvm/clojure.go) |
+| **`dart`** | The Dart file containing the main function | [`dart.go`](./jvm/dart.go) |
+| **`flutter`** | Available emulators | [`flutter.go`](./jvm/flutter.go) |
+| **`fvm`** | Print this usage information | [`fvm.go`](./jvm/fvm.go) |
+| **`gradle`** | Log all warnings | [`gradle.go`](./jvm/gradle.go) |
+| **`java`** | Java runtime | [`jvm.go`](./jvm/jvm.go) |
+| **`javac`** | Java compiler | [`jvm.go`](./jvm/jvm.go) |
+| **`jenv`** | Executable file | [`jenv.go`](./jvm/jenv.go) |
+| **`jmeter`** | Apache JMeter - 100% Java Load Testing Tool | [`jmeter.go`](./jvm/jmeter.go) |
+| **`kdoctor`** | Report a version of KDoctor | [`kdoctor.go`](./jvm/kdoctor.go) |
+| **`keytool`** | Show help message | [`keytool.go`](./jvm/keytool.go) |
+| **`kotlinc`** | Kotlin compiler | [`jvm.go`](./jvm/jvm.go) |
+| **`mvn`** | Maven - a Java based project management and comprehension tool | [`mvn.go`](./jvm/mvn.go) |
+| **`spring`** | Initialize a new project using Spring Initializr | [`spring.go`](./jvm/spring.go) |
+
+
+## C/C++ Compilers & Build Systems (`cc/`)
+
+| Command | Description | Source File |
+| :--- | :--- | :--- |
+| **`bazel`** | Bazel target | [`bazel.go`](./cc/bazel.go) |
+| **`c++`** | C++ compiler (alias) | [`cc.go`](./cc/cc.go) |
+| **`cc`** | C compiler (alias) | [`cc.go`](./cc/cc.go) |
+| **`clang`** | LLVM C compiler | [`cc.go`](./cc/cc.go) |
+| **`clang++`** | LLVM C++ compiler | [`cc.go`](./cc/cc.go) |
+| **`cmake`** | Command-line interface of the cross-platform buildsystem generator CMake | [`cmake.go`](./cc/cmake.go) |
+| **`g++`** | GNU C++ compiler | [`cc.go`](./cc/cc.go) |
+| **`gcc`** | GNU C compiler | [`cc.go`](./cc/cc.go) |
+| **`premake`** | The premake5.lua file | [`premake.go`](./cc/premake.go) |
+| **`swift`** | Show help information | [`swift.go`](./cc/swift.go) |
+| **`typst`** | The Typst compiler | [`typst.go`](./cc/typst.go) |
+| **`xcode-select`** | Active developer directory for Xcode tools | [`xcode_select.go`](./cc/xcode_select.go) |
+| **`xcodebuild`** | Build Xcode projects | [`xcodebuild.go`](./cc/xcodebuild.go) |
+| **`xcodeproj`** | Xcodeproj lets you create and modify Xcode projects | [`xcodeproj.go`](./cc/xcodeproj.go) |
+| **`xcrun`** | SceneKit CLI utilities | [`xcrun.go`](./cc/xcrun.go) |
+| **`zig`** | Enable or disable colored message | [`zig.go`](./cc/zig.go) |
+
+
+## Git Version Control & GitHub Tools (`git/`)
+
+| Command | Description | Source File |
+| :--- | :--- | :--- |
+| **`ghq`** | Clone/sync with a remote repository | [`ghq.go`](./git/ghq.go) |
+| **`git`** | version control | [`git.go`](./git/git.go) |
+| **`git-cliff`** | Increases the logging verbosity | [`git_cliff.go`](./git/git_cliff.go) |
+| **`git-flow`** | Git extensions to provide high-level repository operations for Vincent Driessen | [`git_flow.go`](./git/git_flow.go) |
+| **`git-profile`** | Use profile | [`git_profile.go`](./git/git_profile.go) |
+| **`git-quick-stats`** | Show help for git-quick-stats | [`git_quick_stats.go`](./git/git_quick_stats.go) |
+| **`github`** | Open a git repository in GitHub Desktop | [`github.go`](./git/github.go) |
+| **`svn`** | Specify a username ARG | [`svn.go`](./git/svn.go) |
+
+
+## System Package Managers (`pkginstaller/`)
+
+| Command | Description | Source File |
+| :--- | :--- | :--- |
+| **`apt`** | Debian/Ubuntu package manager | [`pkgmgr.go`](./pkginstaller/pkgmgr.go) |
+| **`apt-get`** | Debian/Ubuntu package manager (low-level) | [`pkgmgr.go`](./pkginstaller/pkgmgr.go) |
+| **`brew`** | Homebrew package manager | [`pkgmgr.go`](./pkginstaller/pkgmgr.go) |
+| **`dnf`** | Fedora/RHEL package manager | [`pkgmgr.go`](./pkginstaller/pkgmgr.go) |
+| **`dpkg`** | Debian package management system | [`dpkg.go`](./pkginstaller/dpkg.go) |
+| **`flatpak`** | flatpak package manager | [`pkgmgr.go`](./pkginstaller/pkgmgr.go) |
+| **`pacman`** | Arch package manager | [`pkgmgr.go`](./pkginstaller/pkgmgr.go) |
+| **`paru`** | AUR helper (feature-rich) | [`pkgmgr.go`](./pkginstaller/pkgmgr.go) |
+| **`pkgutil`** | Query and manipulate for macOS Installer packages and receipts | [`pkgutil.go`](./pkginstaller/pkgutil.go) |
+| **`snap`** | snap package manager | [`pkgmgr.go`](./pkginstaller/pkgmgr.go) |
+| **`yay`** | AUR helper (pacman wrapper) | [`pkgmgr.go`](./pkginstaller/pkgmgr.go) |
+| **`yum`** | RHEL/CentOS package manager (legacy) | [`pkgmgr.go`](./pkginstaller/pkgmgr.go) |
+
+
+## Filesystem, Directory & Archive Utilities (`fs/`)
+
+| Command | Description | Source File |
+| :--- | :--- | :--- |
+| **`broot`** | Show the last modified date of files and directories | [`broot.go`](./fs/broot.go) |
+| **`cd`** | change directory | [`cd.go`](./fs/cd.go) |
+| **`chmod`** | change file permissions | [`chmod.go`](./fs/chmod.go) |
+| **`chown`** | change file owner | [`chown.go`](./fs/chown.go) |
+| **`cp`** | copy files and directories | [`cp.go`](./fs/cp.go) |
+| **`df`** | Display free disk space | [`df.go`](./fs/df.go) |
+| **`dust`** | Like du but more intuitive | [`dust.go`](./fs/dust.go) |
+| **`exa`** | A modern replacement for ls | [`exa.go`](./fs/exa.go) |
+| **`eza`** | A modern replacement for ls | [`eza.go`](./fs/eza.go) |
+| **`find`** | Walk a file hierarchy | [`find.go`](./fs/find.go) |
+| **`fold`** | Fold long lines for finite width output device | [`fold.go`](./fs/fold.go) |
+| **`ln`** | create links | [`ln.go`](./fs/ln.go) |
+| **`ls`** | list directory contents | [`ls.go`](./fs/ls.go) |
+| **`lsd`** | An ls command with a lot of pretty colors and some other stuff | [`lsd.go`](./fs/lsd.go) |
+| **`mkdir`** | make directories | [`mkdir.go`](./fs/mkdir.go) |
+| **`mv`** | move (rename) files | [`mv.go`](./fs/mv.go) |
+| **`paper`** | The Paper CLI | [`paper.go`](./fs/paper.go) |
+| **`rclone`** | Only list directories | [`rclone.go`](./fs/rclone.go) |
+| **`readlink`** | Display file status | [`readlink.go`](./fs/readlink.go) |
+| **`rm`** | remove files or directories | [`rm.go`](./fs/rm.go) |
+| **`rmdir`** | Remove directories | [`rmdir.go`](./fs/rmdir.go) |
+| **`stow`** | Manage farms of symbolic links | [`stow.go`](./fs/stow.go) |
+| **`tar`** | Use archive file or device ARCHIVE | [`tar.go`](./fs/tar.go) |
+| **`touch`** | create or update file timestamp | [`touch.go`](./fs/touch.go) |
+| **`trash`** | Trash, move files/folders to the trash | [`trash.go`](./fs/trash.go) |
+| **`tree`** | Display directories as trees (with optional color/HTML output) | [`tree.go`](./fs/tree.go) |
+| **`unzip`** | Extract compressed files in a ZIP archive | [`unzip.go`](./fs/unzip.go) |
+| **`z`** | jump to directory | [`zoxide.go`](./fs/zoxide.go) |
+| **`zi`** | jump to directory interactively | [`zoxide.go`](./fs/zoxide.go) |
+| **`zip`** | Package and compress (archive) files into zip file | [`zip.go`](./fs/zip.go) |
+
+
+## Editors, Pagers & File Viewers (`view/`)
+
+| Command | Description | Source File |
+| :--- | :--- | :--- |
+| **`bat`** | A cat(1) clone with syntax highlighting and Git integration | [`bat.go`](./view/bat.go) |
+| **`cat`** | concatenate and print | [`cat.go`](./view/cat.go) |
+| **`code`** | Read from stdin (e.g. | [`code.go`](./view/code.go) |
+| **`cot`** | Command-line utility for CotEditor | [`cot.go`](./view/cot.go) |
+| **`du`** | estimate file space usage | [`du.go`](./view/du.go) |
+| **`emacs`** | An extensible, customizable, free/libre text editor - and more | [`emacs.go`](./view/emacs.go) |
+| **`file`** | determine file type | [`file.go`](./view/file.go) |
+| **`glow`** | Render markdown on the CLI, with pizzazz! | [`glow.go`](./view/glow.go) |
+| **`head`** | output first lines of file | [`head.go`](./view/head.go) |
+| **`idea`** | IntelliJ IDEA CLI | [`idea.go`](./view/idea.go) |
+| **`less`** | view file contents (scrollable) | [`less.go`](./view/less.go) |
+| **`lvim`** | Hyperextensible Vim-based text editor | [`lvim.go`](./view/lvim.go) |
+| **`micro`** | True/false | [`micro.go`](./view/micro.go) |
+| **`more`** | Opposite of less | [`more.go`](./view/more.go) |
+| **`nano`** | Nano | [`nano.go`](./view/nano.go) |
+| **`nvim`** | Hyperextensible Vim-based text editor | [`nvim.go`](./view/nvim.go) |
+| **`rich`** | Defined by terminal, appearance may differ | [`rich.go`](./view/rich.go) |
+| **`stat`** | display file status | [`stat.go`](./view/stat.go) |
+| **`subl`** | Sublime Text | [`subl.go`](./view/subl.go) |
+| **`tail`** | output last lines of file | [`tail.go`](./view/tail.go) |
+| **`vi`** | Print help message for vi and exit | [`vi.go`](./view/vi.go) |
+| **`vim`** | Vi IMproved, a programmer | [`vim.go`](./view/vim.go) |
+| **`vimr`** | VimR - Neovim GUI for macOS in Swift | [`vimr.go`](./view/vimr.go) |
+| **`wc`** | word, line, character count | [`wc.go`](./view/wc.go) |
+| **`xed`** | Xcode text editor invocation tool | [`xed.go`](./view/xed.go) |
+| **`xxd`** | Make a hexdump or do the reverse | [`xxd.go`](./view/xxd.go) |
+| **`zed`** | A lightning-fast, collaborative code editor written in Rust | [`zed.go`](./view/zed.go) |
+
+
+## Text Processing, JSON & Stream Manipulation (`text/`)
+
+| Command | Description | Source File |
+| :--- | :--- | :--- |
+| **`awk`** | pattern-directed scanning | [`textproc.go`](./text/textproc.go) |
+| **`cut`** | extract columns from lines | [`textproc.go`](./text/textproc.go) |
+| **`diff`** | Compare files line by line | [`diff.go`](./text/diff.go) |
+| **`dos2unix`** | DOS to Unix file format converter | [`dos2unix.go`](./text/dos2unix.go) |
+| **`egrep`** | grep with extended regex | [`grep.go`](./text/grep.go) |
+| **`fd`** | fast find alternative | [`rg.go`](./text/rg.go) |
+| **`find`** | search for files | [`find.go`](./text/find.go) |
+| **`gawk`** | GNU awk | [`textproc.go`](./text/textproc.go) |
+| **`grep`** | search text in files | [`grep.go`](./text/grep.go) |
+| **`iconv`** | Character set conversion | [`iconv.go`](./text/iconv.go) |
+| **`jq`** | Output the jq version and exit with zero | [`jq.go`](./text/jq.go) |
+| **`pandoc`** | A universal document converter | [`pandoc.go`](./text/pandoc.go) |
+| **`rg`** | ripgrep (fast search) | [`rg.go`](./text/rg.go) |
+| **`sed`** | stream editor | [`textproc.go`](./text/textproc.go) |
+| **`seq`** | Print sequences of numbers. (Defaults to increments of 1) | [`seq.go`](./text/seq.go) |
+| **`sha1sum`** | Print or check SHA1 (160-bit) checksums | [`sha1sum.go`](./text/sha1sum.go) |
+| **`shasum`** | Print or Check SHA Checksums | [`shasum.go`](./text/shasum.go) |
+| **`shred`** | Overwrite a file to hide its contents, and optionally delete it | [`shred.go`](./text/shred.go) |
+| **`sort`** | sort lines of text | [`textproc.go`](./text/textproc.go) |
+| **`split`** | Use suffix_length letters to form the suffix of the file name | [`split.go`](./text/split.go) |
+| **`tee`** | read stdin, write to stdout and files | [`textproc.go`](./text/textproc.go) |
+| **`tr`** | translate or delete characters | [`textproc.go`](./text/textproc.go) |
+| **`truncate`** | Shrink or extend the size of a file to the specified size | [`truncate.go`](./text/truncate.go) |
+| **`typos`** | Source code spelling correction | [`typos.go`](./text/typos.go) |
+| **`uniq`** | filter adjacent duplicate lines | [`textproc.go`](./text/textproc.go) |
+| **`unix2dos`** | Unix to DOS text file format convertor | [`unix2dos.go`](./text/unix2dos.go) |
+| **`vale`** | A syntax-aware linter for prose built with speed and extensibility in mind | [`vale.go`](./text/vale.go) |
+| **`xargs`** | build and run commands from stdin | [`textproc.go`](./text/textproc.go) |
+
+
+## Task Runners & Build Automation (`runner/`)
+
+| Command | Description | Source File |
+| :--- | :--- | :--- |
+| **`ant`** | Apache Ant - Java library and command-line build tool | [`ant.go`](./runner/ant.go) |
+| **`composer`** | Composer Command | [`composer.go`](./runner/composer.go) |
+| **`dbt`** | CLI for dbt - Data Build Tool | [`dbt.go`](./runner/dbt.go) |
+| **`drush`** | Drush is a command line shell and Unix scripting interface for Drupal | [`drush.go`](./runner/drush.go) |
+| **`elixir`** | Elixir Language | [`elixir.go`](./runner/elixir.go) |
+| **`gem`** | Use HTTP proxy for remote operations | [`gem.go`](./runner/gem.go) |
+| **`hexo`** | Draft for | [`hexo.go`](./runner/hexo.go) |
+| **`just`** | command runner | [`justfile.go`](./runner/justfile.go) |
+| **`laravel`** | The output format (txt, xml, json, or md) | [`laravel.go`](./runner/laravel.go) |
+| **`magento`** | Open-source E-commerce | [`magento.go`](./runner/magento.go) |
+| **`make`** | build automation | [`makefile.go`](./runner/makefile.go) |
+| **`mix`** | Build tool for Elixir | [`mix.go`](./runner/mix.go) |
+| **`php`** | Run the PHP interpreter | [`php.go`](./runner/php.go) |
+| **`phpunit`** | Generate code coverage report in Clover XML format, | [`phpunit.go`](./runner/phpunit.go) |
+| **`phpunit-watcher`** | Automatically rerun PHPUnit tests when source code changes | [`phpunit_watcher.go`](./runner/phpunit_watcher.go) |
+| **`rails`** | Create a new rails application | [`rails.go`](./runner/rails.go) |
+| **`rake`** | A ruby build program with capabilities similar to make | [`rake.go`](./runner/rake.go) |
+| **`rubocop`** | Run only lint cops | [`rubocop.go`](./runner/rubocop.go) |
+| **`ruby`** | Interpreted object-oriented scripting language | [`ruby.go`](./runner/ruby.go) |
+| **`rvm`** | Show version of rvm | [`rvm.go`](./runner/rvm.go) |
+| **`sidekiq`** | Background job framework for Ruby | [`sidekiq.go`](./runner/sidekiq.go) |
+| **`symfony`** | Symfony Binary | [`symfony.go`](./runner/symfony.go) |
+| **`valet`** | Do not output any message | [`valet.go`](./runner/valet.go) |
+| **`vapor`** | Vapor Toolbox (Server-side Swift web framework) | [`vapor.go`](./runner/vapor.go) |
+
+
+## System Administration, Network & Process Management (`sys/`)
+
+| Command | Description | Source File |
+| :--- | :--- | :--- |
+| **`adb`** | Forward-lock the app | [`adb.go`](./sys/adb.go) |
+| **`ag`** | Recursively search for PATTERN in PATH. Like grep or ack, but faster | [`ag.go`](./sys/ag.go) |
+| **`airflow`** | Subcommand | [`airflow.go`](./sys/airflow.go) |
+| **`aliases`** | Prints help information | [`aliases.go`](./sys/aliases.go) |
+| **`asciinema`** | Terminal session recorder | [`asciinema.go`](./sys/asciinema.go) |
+| **`asr`** | Can be a disk image, /dev entry, or volume mountpoint | [`asr.go`](./sys/asr.go) |
+| **`atuin`** | Magical shell history | [`atuin.go`](./sys/atuin.go) |
+| **`basename`** | Return filename portion of pathname | [`basename.go`](./sys/basename.go) |
+| **`bc`** | An arbitrary precision calculator language | [`bc.go`](./sys/bc.go) |
+| **`btop`** | Beautifuler htop (interactive process viewer) | [`btop.go`](./sys/btop.go) |
+| **`bundle`** | Gem | [`bundle.go`](./sys/bundle.go) |
+| **`cal`** | Displays a calendar and the date of Easter | [`cal.go`](./sys/cal.go) |
+| **`cci`** | CumulusCI command line interface | [`cci.go`](./sys/cci.go) |
+| **`cdk8s`** | CDK for K8s | [`cdk8s.go`](./sys/cdk8s.go) |
+| **`chezmoi`** | Attribute modifier | [`chezmoi.go`](./sys/chezmoi.go) |
+| **`chsh`** | Change your login shell | [`chsh.go`](./sys/chsh.go) |
+| **`codesign`** | Create and manipulate code signatures | [`codesign.go`](./sys/codesign.go) |
+| **`croc`** | Send file(s), or folder | [`croc.go`](./sys/croc.go) |
+| **`crontab`** | Maintain crontab file for individual users | [`crontab.go`](./sys/crontab.go) |
+| **`curl`** | transfer data via URL | [`network.go`](./sys/network.go) |
+| **`date`** | Display or set date and time | [`date.go`](./sys/date.go) |
+| **`dateseq`** | Print help and exit | [`dateseq.go`](./sys/dateseq.go) |
+| **`dcli`** | Display help for command | [`dcli.go`](./sys/dcli.go) |
+| **`dd`** | The same as | [`dd.go`](./sys/dd.go) |
+| **`ddev`** | DDEV-Local local development environment | [`ddev.go`](./sys/ddev.go) |
+| **`defaults`** | Global domain | [`defaults.go`](./sys/defaults.go) |
+| **`degit`** | Straightforward project scaffolding | [`degit.go`](./sys/degit.go) |
+| **`deta`** | Runtime | [`deta.go`](./sys/deta.go) |
+| **`dig`** | DNS lookup | [`network.go`](./sys/network.go) |
+| **`dirname`** | Return directory portion of pathname | [`dirname.go`](./sys/dirname.go) |
+| **`do-release-upgrade`** | Upgrade Ubuntu to latest release | [`do_release_upgrade.go`](./sys/do_release_upgrade.go) |
+| **`dog`** | Human-readable host names, nameservers, types, or classes | [`dog.go`](./sys/dog.go) |
+| **`dotnet`** | The dotnet cli | [`dotnet.go`](./sys/dotnet.go) |
+| **`dscacheutil`** | Utility for managing the Directory Service cache | [`dscacheutil.go`](./sys/dscacheutil.go) |
+| **`dscl`** | Prompt for password | [`dscl.go`](./sys/dscl.go) |
+| **`dtm`** | Plugin | [`dtm.go`](./sys/dtm.go) |
+| **`echo`** | Environment Variable | [`echo.go`](./sys/echo.go) |
+| **`eleventy`** | Eleventy is a simpler static site generator | [`eleventy.go`](./sys/eleventy.go) |
+| **`env`** | print environment | [`env.go`](./sys/env.go) |
+| **`exec`** | Replace the current shell with a program | [`exec.go`](./sys/exec.go) |
+| **`export`** | set environment variable | [`env.go`](./sys/env.go) |
+| **`fastlane`** | Helps you with your initial fastlane setup | [`fastlane.go`](./sys/fastlane.go) |
+| **`fdisk`** | Manipulate disk partition table | [`fdisk.go`](./sys/fdisk.go) |
+| **`ffmpeg`** | Play, record, convert, and stream audio and video | [`ffmpeg.go`](./sys/ffmpeg.go) |
+| **`firefox`** | Free open-source web browser developer by Mozilla | [`firefox.go`](./sys/firefox.go) |
+| **`fisher`** | [Prompt] - ๐ The ultimate Fish prompt | [`fisher.go`](./sys/fisher.go) |
+| **`fmt`** | Simple text formatter | [`fmt.go`](./sys/fmt.go) |
+| **`forc`** | Fuel Orchestrator | [`forc.go`](./sys/forc.go) |
+| **`forge`** | A command line interface for managing Atlassian-hosted apps | [`forge.go`](./sys/forge.go) |
+| **`fzf`** | A general-purpose command-line fuzzy finder | [`fzf.go`](./sys/fzf.go) |
+| **`fzf-tmux`** | Opens a fuzzy finder in a tmux pane | [`fzf_tmux.go`](./sys/fzf_tmux.go) |
+| **`gltfjsx`** | GLTF to JSX converter | [`gltfjsx.go`](./sys/gltfjsx.go) |
+| **`goto`** | Goto | [`goto.go`](./sys/goto.go) |
+| **`gum`** | Background Color | [`gum.go`](./sys/gum.go) |
+| **`herd`** | Display this application version | [`herd.go`](./sys/herd.go) |
+| **`hop`** | Interact with Hop in your terminal | [`hop.go`](./sys/hop.go) |
+| **`hostname`** | Set or print name of current host system | [`hostname.go`](./sys/hostname.go) |
+| **`htop`** | Improved top (interactive process viewer) | [`htop.go`](./sys/htop.go) |
+| **`http`** | HTTPie: command-line HTTP client for the API era | [`http.go`](./sys/http.go) |
+| **`hyper`** | Hyper is an Electron-based terminal | [`hyper.go`](./sys/hyper.go) |
+| **`hyperfine`** | A command-line benchmarking tool | [`hyperfine.go`](./sys/hyperfine.go) |
+| **`ibus`** | Set or get engine | [`ibus.go`](./sys/ibus.go) |
+| **`id`** | Display the full name of the user | [`id.go`](./sys/id.go) |
+| **`ifconfig`** | configure network interface | [`network.go`](./sys/network.go) |
+| **`ignite-cli`** | Output usage information | [`ignite_cli.go`](./sys/ignite_cli.go) |
+| **`install`** | Use suffix as the backup suffix if -b is given | [`install.go`](./sys/install.go) |
+| **`ip`** | show/manage network | [`network.go`](./sys/network.go) |
+| **`join`** | The join utility performs an | [`join.go`](./sys/join.go) |
+| **`julia`** | The Julia Programming Language | [`julia.go`](./sys/julia.go) |
+| **`kafkactl`** | Command-line interface for Apache Kafka | [`kafkactl.go`](./sys/kafkactl.go) |
+| **`kamal`** | Skip image build and push | [`kamal.go`](./sys/kamal.go) |
+| **`kill`** | send signal to process | [`ps.go`](./sys/ps.go) |
+| **`killall`** | kill by process name | [`ps.go`](./sys/ps.go) |
+| **`kitty`** | A cat like utility to display images in the terminal | [`kitty.go`](./sys/kitty.go) |
+| **`klist`** | Credential cache to list | [`klist.go`](./sys/klist.go) |
+| **`kool`** | Script | [`kool.go`](./sys/kool.go) |
+| **`launchctl`** | Service or domain target | [`launchctl.go`](./sys/launchctl.go) |
+| **`leaf`** | Create and interact with your leaf projects | [`leaf.go`](./sys/leaf.go) |
+| **`lima`** | Lima is an alias for | [`lima.go`](./sys/lima.go) |
+| **`login`** | Begin session on the system | [`login.go`](./sys/login.go) |
+| **`lsblk`** | List block devices | [`lsblk.go`](./sys/lsblk.go) |
+| **`lsof`** | List open files | [`lsof.go`](./sys/lsof.go) |
+| **`man`** | Format and display manual pages | [`man.go`](./sys/man.go) |
+| **`meroxa`** | The Meroxa CLI | [`meroxa.go`](./sys/meroxa.go) |
+| **`mkdocs`** | Project documentation with Markdown | [`mkdocs.go`](./sys/mkdocs.go) |
+| **`mkfifo`** | Make FIFOs (first-in, first-out) | [`mkfifo.go`](./sys/mkfifo.go) |
+| **`mkinitcpio`** | Create an initial ramdisk environment | [`mkinitcpio.go`](./sys/mkinitcpio.go) |
+| **`mknod`** | Create device special file | [`mknod.go`](./sys/mknod.go) |
+| **`mosh`** | Address of remote machine to log into | [`mosh.go`](./sys/mosh.go) |
+| **`mount`** | Mount disks and manage subtrees | [`mount.go`](./sys/mount.go) |
+| **`nc`** | netcat - TCP/UDP tool | [`network.go`](./sys/network.go) |
+| **`ncal`** | Displays a calendar and the date of Easter | [`ncal.go`](./sys/ncal.go) |
+| **`neofetch`** | The most complete system information CLI tool | [`neofetch.go`](./sys/neofetch.go) |
+| **`netstat`** | network statistics | [`network.go`](./sys/network.go) |
+| **`networkQuality`** | Measure the different aspects of network quality | [`networkquality.go`](./sys/networkquality.go) |
+| **`networksetup`** | Configuration tool for network settings in macOS | [`networksetup.go`](./sys/networksetup.go) |
+| **`nextflow`** | Session ID | [`nextflow.go`](./sys/nextflow.go) |
+| **`nhost`** | Nhost | [`nhost.go`](./sys/nhost.go) |
+| **`nmap`** | Network exploration tool and security / port scanner | [`nmap.go`](./sys/nmap.go) |
+| **`nrm`** | Use the right package manage - remove | [`nrm.go`](./sys/nrm.go) |
+| **`ns`** | Forces rebuilding the native application | [`ns.go`](./sys/ns.go) |
+| **`nslookup`** | query DNS | [`network.go`](./sys/network.go) |
+| **`nylas`** | A command line interface for Nylas | [`nylas.go`](./sys/nylas.go) |
+| **`oh-my-posh`** | The config file to use | [`oh_my_posh.go`](./sys/oh_my_posh.go) |
+| **`okta`** | The Okta CLI is the easiest way to get started with Okta! | [`okta.go`](./sys/okta.go) |
+| **`ollama`** | A command-line tool for managing and deploying machine learning models | [`ollama.go`](./sys/ollama.go) |
+| **`omz`** | Oh My Zsh | [`omz.go`](./sys/omz.go) |
+| **`pac`** | 7 | [`pac.go`](./sys/pac.go) |
+| **`passwd`** | Modify a user | [`passwd.go`](./sys/passwd.go) |
+| **`pathchk`** | Check pathnames for POSIX portability | [`pathchk.go`](./sys/pathchk.go) |
+| **`pdfunite`** | Combine multiple pdfs | [`pdfunite.go`](./sys/pdfunite.go) |
+| **`pgrep`** | find process by pattern | [`ps.go`](./sys/ps.go) |
+| **`ping`** | test network connectivity | [`network.go`](./sys/network.go) |
+| **`pkg-config`** | Return metainformation about installed libraries | [`pkg_config.go`](./sys/pkg_config.go) |
+| **`pkill`** | kill by pattern | [`ps.go`](./sys/ps.go) |
+| **`pmset`** | Display sleep timer (value in minutes, or 0 to disable) | [`pmset.go`](./sys/pmset.go) |
+| **`pocketbase`** | PocketBase CLI | [`pocketbase.go`](./sys/pocketbase.go) |
+| **`printenv`** | print environment variables | [`env.go`](./sys/env.go) |
+| **`prisma`** | Display this help message | [`prisma.go`](./sys/prisma.go) |
+| **`pro`** | Manage Ubuntu Pro services from Canonical | [`pro.go`](./sys/pro.go) |
+| **`pry`** | Interactive Ruby | [`pry.go`](./sys/pry.go) |
+| **`ps`** | report processes | [`ps.go`](./sys/ps.go) |
+| **`publish`** | Set up a new website in the current folder | [`publish.go`](./sys/publish.go) |
+| **`pwd`** | Return working directory name | [`pwd.go`](./sys/pwd.go) |
+| **`rancher`** | Output format: | [`rancher.go`](./sys/rancher.go) |
+| **`repeat`** | Interpret the result as a number and repeat the commands this many times | [`repeat.go`](./sys/repeat.go) |
+| **`rscript`** | Scripting Front-End for R | [`rscript.go`](./sys/rscript.go) |
+| **`sam`** | Host of locally emulated Lambda container | [`sam.go`](./sys/sam.go) |
+| **`sanity`** | Displays help information about Sanity | [`sanity.go`](./sys/sanity.go) |
+| **`screen`** | Screen manager with VT100/ANSI terminal emulation | [`screen.go`](./sys/screen.go) |
+| **`shell-config`** | Display help for command | [`shell_config.go`](./sys/shell_config.go) |
+| **`shortcuts`** | Run a shortcut | [`shortcuts.go`](./sys/shortcuts.go) |
+| **`simctl`** | Add photos, live photos, videos, or contacts to the library of a device | [`simctl.go`](./sys/simctl.go) |
+| **`source`** | Source files in shell | [`source.go`](./sys/source.go) |
+| **`speedtest-cli`** | Command line interface for testing internet bandwidth using speedtest.net | [`speedtest_cli.go`](./sys/speedtest_cli.go) |
+| **`spotify`** | CLI to use Spotify from the terminal | [`spotify.go`](./sys/spotify.go) |
+| **`ss`** | socket statistics | [`network.go`](./sys/network.go) |
+| **`st2`** | Show this help and exit | [`st2.go`](./sys/st2.go) |
+| **`stack`** | The Haskell Tool Stack | [`stack.go`](./sys/stack.go) |
+| **`starkli`** | Starkli, a โก blazing โก fast โก CLI tool for Starknet powered by ๐ฆ starknet-rs ๐ฆ | [`starkli.go`](./sys/starkli.go) |
+| **`su`** | (no letter) The same as -l | [`su.go`](./sys/su.go) |
+| **`sudo`** | Execute a command as the superuser or another user | [`sudo.go`](./sys/sudo.go) |
+| **`sysctl`** | Variable name | [`sysctl.go`](./sys/sysctl.go) |
+| **`systemctl`** | Control the systemd system and service manager | [`systemctl.go`](./sys/systemctl.go) |
+| **`tac`** | Concatenate and print files in reverse | [`tac.go`](./sys/tac.go) |
+| **`tailcall`** | TailCall CLI for managing and optimizing GraphQL configurations | [`tailcall.go`](./sys/tailcall.go) |
+| **`tailwindcss`** | Display usage information | [`tailwindcss.go`](./sys/tailwindcss.go) |
+| **`time`** | Time how long a command takes! | [`time.go`](./sys/time.go) |
+| **`tldr`** | Tldr page | [`tldr.go`](./sys/tldr.go) |
+| **`tmux`** | Format output | [`tmux.go`](./sys/tmux.go) |
+| **`tmuxinator`** | Project | [`tmuxinator.go`](./sys/tmuxinator.go) |
+| **`top`** | Display Linux tasks | [`top.go`](./sys/top.go) |
+| **`traceroute`** | Print the route packets take to network host | [`traceroute.go`](./sys/traceroute.go) |
+| **`trap`** | Prints all defined signal handlers | [`trap.go`](./sys/trap.go) |
+| **`trex`** | trex script | [`trex.go`](./sys/trex.go) |
+| **`tsh`** | Remote host login | [`tsh.go`](./sys/tsh.go) |
+| **`tuist`** | Build the project in the current directory | [`tuist.go`](./sys/tuist.go) |
+| **`twilio`** | Level of logging messages | [`twilio.go`](./sys/twilio.go) |
+| **`uname`** | Print operating system name | [`uname.go`](./sys/uname.go) |
+| **`unset`** | unset variable | [`env.go`](./sys/env.go) |
+| **`visudo`** | Checking existing sudoers file for syntax errors | [`visudo.go`](./sys/visudo.go) |
+| **`vultr-cli`** | Bare Metal ID | [`vultr_cli.go`](./sys/vultr_cli.go) |
+| **`wezterm`** | Wez | [`wezterm.go`](./sys/wezterm.go) |
+| **`wget`** | non-interactive downloader | [`network.go`](./sys/network.go) |
+| **`where`** | For each name, indicate how it should be interpreted | [`where.go`](./sys/where.go) |
+| **`whereis`** | Locate the binary, source, and manual page files for a command | [`whereis.go`](./sys/whereis.go) |
+| **`which`** | Executable file | [`which.go`](./sys/which.go) |
+| **`who`** | Display who is logged in | [`who.go`](./sys/who.go) |
+| **`wing`** | Runs a Wing executable in the Wing Console | [`wing.go`](./sys/wing.go) |
+| **`wp`** | Path to the WordPress files | [`wp.go`](./sys/wp.go) |
+| **`wrk`** | Wrk - a HTTP benchmarking tool | [`wrk.go`](./sys/wrk.go) |
+| **`wscat`** | Communicate over websocket | [`wscat.go`](./sys/wscat.go) |
+| **`yank`** | Yank terminal output to clipboard | [`yank.go`](./sys/yank.go) |
+| **`ykman`** | Configure your YubiKey via the command line | [`ykman.go`](./sys/ykman.go) |
+| **`zapier`** | Change the way structured data is presented. If | [`zapier.go`](./sys/zapier.go) |
+
diff --git a/commands/categories.json b/commands/categories.json
new file mode 100644
index 0000000..65aea0e
--- /dev/null
+++ b/commands/categories.json
@@ -0,0 +1,18 @@
+{
+ "categories": [
+ { "id": "ops", "title": "Cloud, Containers, Kubernetes, DevOps & Databases" },
+ { "id": "js", "title": "JavaScript, TypeScript, Frontend & Node.js Tools" },
+ { "id": "python", "title": "Python Ecosystem & Data Science Tools" },
+ { "id": "rust", "title": "Rust Ecosystem & Modern CLI Tools" },
+ { "id": "golang", "title": "Go Development & Project Tools" },
+ { "id": "jvm", "title": "Java, Kotlin & JVM Build Tools" },
+ { "id": "cc", "title": "C/C++ Compilers & Build Systems" },
+ { "id": "git", "title": "Git Version Control & GitHub Tools" },
+ { "id": "pkginstaller", "title": "System Package Managers" },
+ { "id": "fs", "title": "Filesystem, Directory & Archive Utilities" },
+ { "id": "view", "title": "Editors, Pagers & File Viewers" },
+ { "id": "text", "title": "Text Processing, JSON & Stream Manipulation" },
+ { "id": "runner", "title": "Task Runners & Build Automation" },
+ { "id": "sys", "title": "System Administration, Network & Process Management" }
+ ]
+}
diff --git a/commands/cc/bazel.go b/commands/cc/bazel.go
new file mode 100644
index 0000000..24c59ae
--- /dev/null
+++ b/commands/cc/bazel.go
@@ -0,0 +1,48 @@
+package cc
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "bazel",
+ Description: "Bazel target",
+ Subcommands: []core.Subcommand{
+ {Name: "run", Description: "Runs the specified target"},
+ {Name: "test", Description: "Builds and runs the specified test targets"},
+ {Name: "build", Description: "Builds the specified targets"},
+ },
+ Options: []core.Option{
+ {Name: "--autodetect_server_javabase", Description: "Back to the local JDK for running the bazel server and instead exits"},
+ {Name: "--nobatch", Description: "Run with a server"},
+ {Name: "--batch_cpu_scheduling", Description: "Only on Linux; use 'batch' CPU scheduling for Bazel"},
+ {Name: "--nobatch_cpu_scheduling", Description: "Only on Linux; Bazel does not perform a system call"},
+ {Name: "--bazelrc", Description: "Wait for a running command to complete"},
+ {Name: "--noblock_for_lock", Description: "Don't log debug information from the client to stderr"},
+ {Name: "--connect_timeout_secs", Description: "The amount of time the client waits for each attempt to connect to the server"},
+ {Name: "--expand_configs_in_place", Description: "Changed the expansion of --config flags to be done in-place"},
+ {Name: "--noexpand_configs_in_place", Description: "Look for the home bazelrc file at $HOME/.bazelrc"},
+ {Name: "--nohome_rc", Description: "Don't look for the home bazelrc file at $HOME/.bazelrc"},
+ {Name: "--idle_server_tasks", Description: "Run System.gc() when the server is idle"},
+ {Name: "--noidle_server_tasks", Description: "Don't run System.gc() when the server is idle"},
+ {Name: "--ignore_all_rc_files", Description: "Enables all rc files"},
+ {Name: "--io_nice_level", Description: "The maximum amount of time the client waits to connect to the server"},
+ {Name: "--macos_qos_class", Description: "Sets the QoS service class of the bazel server when running on macOS"},
+ {Name: "--max_idle_secs", Description: "The number of seconds the build server will wait idling before shutting down"},
+ {Name: "--output_base", Description: "Specifies the output location to which all build output will be written"},
+ {Name: "--output_base_root", Description: "The user-specific directory beneath which all build outputs are written"},
+ {Name: "--preemptible", Description: "If true, the command can be preempted if another command is started"},
+ {Name: "--nopreemptible", Description: "If true, the command can be preempted if another command is started"},
+ {Name: "--server_jvm_out", Description: "The location to write the server's JVM's output"},
+ {Name: "--shutdown_on_low_sys_mem", Description: "Linux only. Don't shut down the server when the system is low on free RAM"},
+ {Name: "--system_rc", Description: "Look for the system-wide bazelrc"},
+ {Name: "--nosystem_rc", Description: "Don't look for the system-wide bazelrc"},
+ {Name: "--unlimit_coredumps", Description: "Scan every file for a change"},
+ {Name: "--windows_enable_symlinks", Description: "Real symbolic links will be created on Windows instead of file copying"},
+ {Name: "--nowindows_enable_symlinks", Description: "Real symbolic links will be created via file copying"},
+ {Name: "--workspace_rc", Description: "Look for the workspace bazelrc file at $workspace/.bazelrc"},
+ {Name: "--noworkspace_rc", Description: "Don't look for the workspace bazelrc file at $workspace/.bazelrc"},
+ },
+ })
+}
diff --git a/commands/cc/cmake.go b/commands/cc/cmake.go
new file mode 100644
index 0000000..a8573a7
--- /dev/null
+++ b/commands/cc/cmake.go
@@ -0,0 +1,83 @@
+package cc
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "cmake",
+ Description: "Command-line interface of the cross-platform buildsystem generator CMake",
+ Subcommands: []core.Subcommand{
+ {Name: "permissions", Description: "Format: "},
+ {Name: "cat", Description: "Concatenate files and print on the standard output"},
+ {Name: "chdir", Description: "Change the current working directory and run a command"},
+ {Name: "create_symlink", Description: "Create a symbolic link naming "},
+ {Name: "create_hardlink", Description: "Create a hard link naming "},
+ {Name: "echo", Description: "Displays arguments as text"},
+ {Name: "echo_append", Description: "Displays arguments as text but no new line"},
+ {Name: "env", Description: "Run command in a modified environment"},
+ {Name: "key value pair", Description: "Format: NAME=VALUE"},
+ {Name: "environment", Description: "Display the current environment variables"},
+ {Name: "false", Description: "Do nothing, with an exit code of 1"},
+ {Name: "md5sum", Description: "Create MD5 checksum of files in md5sum compatible format"},
+ {Name: "sha1sum", Description: "Create SHA1 checksum of files in sha1sum compatible format"},
+ {Name: "sha224sum", Description: "Create SHA224 checksum of files in sha224sum compatible format"},
+ {Name: "sha226sum", Description: "Create SHA226 checksum of files in sha226sum compatible format"},
+ {Name: "sha384sum", Description: "Create SHA384 checksum of files in sha384sum compatible format"},
+ {Name: "sha512sum", Description: "Create SHA512 checksum of files in sha512sum compatible format"},
+ {Name: "rm", Description: "Remove the files or directories dir"},
+ {Name: "server", Description: "Launch cmake-server(7) mode"},
+ {Name: "sleep", Description: "Sleep for given number of seconds"},
+ {Name: "tar", Description: "Create or extract a tar or zip archive"},
+ {Name: "v", Description: "Produce verbose output"},
+ {Name: "z", Description: "Compress the resulting archive with gzip"},
+ {Name: "j", Description: "Compress the resulting archive with bzip2"},
+ {Name: "J", Description: "Compress the resulting archive with XZ"},
+ {Name: "time", Description: "Run command and display elapsed time"},
+ {Name: "true", Description: "Do nothing, with an exit code of 0"},
+ },
+ Options: []core.Option{
+ {Name: "--build", Description: "Use a build preset to specify build options"},
+ {Name: "--list-presets", Description: "For multi-configuration tools, choose configuration "},
+ {Name: "--clean-first", Description: "Build target clean first, then build"},
+ {Name: "--use-stderr", Description: "Ignored. Behavior is default in CMake >= 3.0"},
+ {Name: "--verbose", Description: "Pass remaining options to the native tool"},
+ {Name: "--install", Description: "Project binary directory to install. This is required and must be first"},
+ {Name: "--config", Description: "For multi-configuration generators"},
+ {Name: "--component", Description: "Component-based install. Only install component specified"},
+ {Name: "--prefix", Description: "Override the installation prefix"},
+ {Name: "--strip", Description: "Strip before installing"},
+ {Name: "--open", Description: "CMake provides builtin command-line tools through the signature"},
+ {Name: "--ignore-eol", Description: "Implies line-wise comparison and ignores LF/CRLF differences"},
+ {Name: "--unset", Description: "Display the current environment variables"},
+ {Name: "-f", Description: "Remove the files or directories dir"},
+ {Name: "-r", Description: "Launch cmake-server(7) mode"},
+ {Name: "--zstd", Description: "Compress the resulting archive with Zstandard"},
+ {Name: "--files-from", Description: "Specify the format of the archive to be created"},
+ {Name: "--mtime", Description: "Specify modification time recorded in tarball entries"},
+ {Name: "-S", Description: "Path to root directory of the CMake project to build"},
+ {Name: "--help", Description: "Pre-load a script to populate the cache"},
+ {Name: "-D", Description: "Create or update a CMake CACHE entry"},
+ {Name: "-U", Description: "Remove matching entries from CMake CACHE"},
+ {Name: "-G", Description: "Specify a build system generator"},
+ {Name: "-T", Description: "Toolset specification for the generator, if supported"},
+ {Name: "-A", Description: "Specify platform name if supported by generator"},
+ {Name: "--install-prefix", Description: "Suppress developer warnings"},
+ {Name: "-Wdev", Description: "Enable developer warnings"},
+ {Name: "-Werror", Description: "Enable the type of warnings"},
+ {Name: "-Wno-error", Description: "Disable the type of warnings"},
+ {Name: "-Wdeprecated", Description: "Enable deprecated functionality warnings"},
+ {Name: "-Wno-deprecated", Description: "Suppress deprecated functionality warnings"},
+ {Name: "-L", Description: "List non-advanced cached-variables"},
+ {Name: "-N", Description: "View mode only"},
+ {Name: "--graphviz", Description: "Generate graphviz of dependencies"},
+ {Name: "--system-information", Description: "Dump information about this system"},
+ {Name: "--log-level", Description: "Set log-level"},
+ {Name: "--log-context", Description: "Enable the message() command outputting context attached to each message"},
+ {Name: "--debug-trycompile", Description: "Do not delete the try_compile() build tree"},
+ {Name: "--debug-output", Description: "Put cmake in a debug mode"},
+ {Name: "--debug-find", Description: "Put cmake find commands in a debug mode"},
+ },
+ })
+}
diff --git a/commands/cc/premake.go b/commands/cc/premake.go
new file mode 100644
index 0000000..2e2967a
--- /dev/null
+++ b/commands/cc/premake.go
@@ -0,0 +1,44 @@
+package cc
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "premake",
+ Description: "The premake5.lua file",
+ Subcommands: []core.Subcommand{
+ {Name: "clean", Description: "Remove all binaries and generated files"},
+ {Name: "vs2022", Description: "Generate Visual Studio 2022 project files"},
+ {Name: "vs2019", Description: "Generate Visual Studio 2019 project files"},
+ {Name: "vs2017", Description: "Generate Visual Studio 2017 project files"},
+ {Name: "vs2015", Description: "Generate Visual Studio 2015 project files"},
+ {Name: "vs2013", Description: "Generate Visual Studio 2013 project files"},
+ {Name: "vs2012", Description: "Generate Visual Studio 2012 project files"},
+ {Name: "vs2010", Description: "Generate Visual Studio 2010 project files"},
+ {Name: "vs2008", Description: "Generate Visual Studio 2008 project files"},
+ {Name: "vs2005", Description: "Generate Visual Studio 2005 project files"},
+ {Name: "gmake", Description: "Generate GNU Makefiles (This generator is deprecated by gmake2)"},
+ {Name: "gmake2", Description: "Generate GNU Makefiles (including Cygwin and MinGW)"},
+ {Name: "xcode4", Description: "Generate Apple Xcode 4 project files"},
+ {Name: "codelite", Description: "Generate CodeLite project files"},
+ },
+ Options: []core.Option{
+ {Name: "--file", Description: "The premake5.lua file"},
+ {Name: "--debugger", Description: "Start MobDebug remote debugger. Works with ZeroBrane Studio"},
+ {Name: "--fatal", Description: "Treat warnings from project scripts as errors"},
+ {Name: "--insecure", Description: "Forfeit SSH certification checks"},
+ {Name: "--interactive", Description: "Interactive command prompt"},
+ {Name: "--os", Description: "Generate files for a different operating system"},
+ {Name: "--scripts", Description: "Search for additional scripts on the given path"},
+ {Name: "--systemscript", Description: "Override default system script (premake5-system.lua)"},
+ {Name: "--verbose", Description: "Generate extra debug text output"},
+ {Name: "--cc", Description: "Choose a C/C++ compiler set"},
+ {Name: "--dc", Description: "Choose a D compiler"},
+ {Name: "--dotnet", Description: "Choose a .NET compiler set"},
+ {Name: "--help", Description: "Shows a complete list of the actions supported"},
+ {Name: "--version", Description: "Display version information"},
+ },
+ })
+}
diff --git a/commands/cc/swift.go b/commands/cc/swift.go
new file mode 100644
index 0000000..7d55110
--- /dev/null
+++ b/commands/cc/swift.go
@@ -0,0 +1,106 @@
+package cc
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "swift",
+ Description: "Show help information",
+ Subcommands: []core.Subcommand{
+ {Name: "build", Description: "Build sources into binary products"},
+ {Name: "target", Description: "The name of the target to build"},
+ {Name: "product", Description: "The name of the product to build"},
+ {Name: "run", Description: "Build and run an executable product"},
+ {Name: "executable", Description: "The executable to run"},
+ {Name: "arguments", Description: "The arguments to pass to the executable"},
+ {Name: "test", Description: "Build and run tests"},
+ {Name: "num-workers", Description: "Number of tests to execute in parallel"},
+ {Name: "regex", Description: ". or ./"},
+ {Name: "path", Description: "Path where the xUnit xml file should be generated"},
+ {Name: "package", Description: "Perform operations on Swift packages"},
+ {Name: "flag", Description: "The flag to pass through to all C compiler invocations"},
+ {Name: "configuration", Description: "The build configuration"},
+ {Name: "mode", Description: "The caching mode"},
+ {Name: "triple", Description: "The compilation destination's target triple"},
+ {Name: "type", Description: "What to sanitize"},
+ {Name: "jobs", Description: "The number of jobs to spawn in parallel during the build process"},
+ {Name: "build system", Description: "The build system to use"},
+ {Name: "clean", Description: "Delete build artifacts"},
+ {Name: "purge-cache", Description: "Purge the global repository cache"},
+ {Name: "reset", Description: "Reset the complete cache/build directory"},
+ {Name: "update", Description: "Update package dependencies"},
+ {Name: "describe", Description: "Describe the current package"},
+ {Name: "init", Description: "Initialize a new package"},
+ {Name: "name", Description: "The package name"},
+ {Name: "experimental-api-diff", Description: "Diagnose API-breaking changes to Swift modules in a package"},
+ {Name: "treeish", Description: "The baseline treeish to compare to (e.g. a commit hash, branch name, tag, etc.)"},
+ {Name: "dump-symbol-graph", Description: "Dump Symbol Graph"},
+ {Name: "dump-pif", Description: "Dump PIF"},
+ {Name: "dump-package", Description: "Print parsed Package.swift as JSON"},
+ {Name: "edit", Description: "Put a package in editable mode"},
+ {Name: "revision", Description: "The revision to edit"},
+ {Name: "branch", Description: "The branch to create"},
+ {Name: "unedit", Description: "Remove a package from editable mode"},
+ {Name: "package-name", Description: "The name of the package to unedit"},
+ {Name: "config", Description: "Manipulate configuration of the package"},
+ {Name: "set-mirror", Description: "Set a mirror for a dependency"},
+ {Name: "package-url", Description: "The package dependency url"},
+ {Name: "original-url", Description: "The original url"},
+ {Name: "unset-mirror", Description: "Remove an existing mirror"},
+ {Name: "get-mirror", Description: "Print mirror configuration for the given package dependency"},
+ {Name: "resolve", Description: "Resolve package dependencies"},
+ {Name: "version", Description: "The version to resolve at"},
+ {Name: "show-dependencies", Description: "Print the resolved dependency graph"},
+ {Name: "format", Description: "The format type"},
+ {Name: "tools-version", Description: "Manipulate tools version of the current package"},
+ {Name: "tools version", Description: "The tools version"},
+ {Name: "generate-xcodeproj", Description: "Generates an Xcode project (this command will be deprecated soon)"},
+ {Name: "compute-checksum", Description: "Compute the checksum for a binary artifact"},
+ {Name: "archive-source", Description: "Create a source archive for the package"},
+ },
+ Options: []core.Option{
+ {Name: "--help", Description: "Show help information"},
+ {Name: "--version", Description: "Show the version"},
+ {Name: "-access-notes-path", Description: "Specify YAML file to override attributes on Swift declarations in this module"},
+ {Name: "-assert-config", Description: "Specify the assert_configuration replacement"},
+ {Name: "-async-main", Description: "Resolve main function as if it were called from an asynchronous context"},
+ {Name: "-clang-target", Description: "Separately set the target we should use for internal Clang instance"},
+ {Name: "-color-diagnostics", Description: "Print diagnostics in color"},
+ {Name: "-coverage-prefix-map", Description: "Remap source paths in coverage info"},
+ {Name: "-debug-info-format", Description: "Specify the debug info format type"},
+ {Name: "-debug-info-store-invocation", Description: "Emit the compiler invocation in the debug info"},
+ {Name: "-debug-prefix-map", Description: "Remap source paths in debug info"},
+ {Name: "-diagnostic-style", Description: "The formatting style used when printing diagnostics"},
+ {Name: "-disable-clang-target", Description: "Disable a separately specified target triple for Clang instance to use"},
+ {Name: "-disable-incremental-imports", Description: "Disables incremental build optimization that only produces one dependencies file"},
+ {Name: "-disallow-use-new-driver", Description: "Disable using new swift-driver"},
+ {Name: "-D", Description: "Marks a conditional compilation flag as true"},
+ {Name: "-embed-tbd-for-module", Description: "Embed symbols from the module in the emitted tbd file"},
+ {Name: "-enable-bare-slash-regex", Description: "Enable the use of forward slash regular-expression literal syntax"},
+ {Name: "-enable-incremental-imports", Description: "Build the module to allow binary-compatible library evolution"},
+ {Name: "-enforce-exclusivity", Description: "Enforce law of exclusivity"},
+ {Name: "-experimental-cxx-stdlib", Description: "C++ standard library to use; forwarded to Clang's -std lib flag"},
+ {Name: "-file-compilation-dir", Description: "The compilation directory to embed in the debug info"},
+ {Name: "-file-prefix-map", Description: "Remap source paths in debug, coverage, and index info"},
+ {Name: "-framework", Description: "Specifies a framework which should be linked against"},
+ {Name: "-Fsystem", Description: "Add directory to system framework search path"},
+ {Name: "-F", Description: "Add directory to framework search path"},
+ {Name: "-gdwarf-types", Description: "Emit full DWARF type info"},
+ {Name: "-gline-tables-only", Description: "Emit minimal debug info for backtraces only"},
+ {Name: "-gnone", Description: "Don't emit debug info"},
+ {Name: "-g", Description: "Emit debug info. This is the preferred setting for debugging with LLDB"},
+ {Name: "-index-ignore-clang-modules", Description: "Avoid indexing clang modules (pcms)"},
+ {Name: "-index-store-path", Description: "Store indexing data to path"},
+ {Name: "-index-unit-output-path", Description: "Use the specified path as the output path in the produced index data"},
+ {Name: "-I", Description: "Add directory to the import search path"},
+ {Name: "-j", Description: "Number of commands to execute in parallel"},
+ {Name: "-libc", Description: "The libc runtime library to use"},
+ {Name: "-locale", Description: "Choose a language for diagnostic messages"},
+ {Name: "-localization-path", Description: "Path to localized diagnostic messages directory"},
+ {Name: "-L", Description: "Add directory to library link search path"},
+ {Name: "-l", Description: "Specifies a library which should be linked against"},
+ },
+ })
+}
diff --git a/commands/cc/typst.go b/commands/cc/typst.go
new file mode 100644
index 0000000..1f23ac9
--- /dev/null
+++ b/commands/cc/typst.go
@@ -0,0 +1,42 @@
+package cc
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "typst",
+ Description: "The Typst compiler",
+ Subcommands: []core.Subcommand{
+ {Name: "compile", Description: "Compiles an input file into a supported output format"},
+ {Name: "input", Description: "Path to input Typst file"},
+ {Name: "output", Description: "Path to output file (PDF, PNG, or SVG)"},
+ {Name: "watch", Description: "Watches an input file and recompiles on changes"},
+ {Name: "query", Description: "Processes an input file to extract provided metadata"},
+ {Name: "selector", Description: "Defines which elements to retrieve"},
+ {Name: "fonts", Description: "Lists all discovered fonts in system and custom font paths"},
+ {Name: "update", Description: "Self update the Typst CLI (disabled)"},
+ {Name: "version", Description: "Which version to update to (defaults to latest)"},
+ {Name: "help", Description: "Print this message or the help of the given subcommand(s)"},
+ },
+ Options: []core.Option{
+ {Name: "--root", Description: "Configures the project root (for absolute paths)"},
+ {Name: "--font-path", Description: "Adds additional directories to search for fonts"},
+ {Name: "--diagnostic-format", Description: "The format to emit diagnostics in"},
+ {Name: "-f", Description: "The format of the output file, inferred from the extension by default"},
+ {Name: "--open", Description: "Opens the output file using the default viewer after compilation"},
+ {Name: "--ppi", Description: "The PPI (pixels per inch) to use for PNG export"},
+ {Name: "--flamegraph", Description: "Produces a flamegraph of the compilation process"},
+ {Name: "-h", Description: "Print help"},
+ {Name: "--field", Description: "Extracts just one field from all retrieved elements"},
+ {Name: "--format", Description: "The format to serialize in"},
+ {Name: "--one", Description: "Expects and retrieves exactly one element"},
+ {Name: "--variants", Description: "Also lists style variants of each font family"},
+ {Name: "--force", Description: "Forces a downgrade to an older version (required for downgrading)"},
+ {Name: "--cert", Description: "Path to a custom CA certificate to use when making network requests"},
+ {Name: "-v", Description: "Print help"},
+ {Name: "-V", Description: "Print version"},
+ },
+ })
+}
diff --git a/commands/cc/xcode_select.go b/commands/cc/xcode_select.go
new file mode 100644
index 0000000..79777c0
--- /dev/null
+++ b/commands/cc/xcode_select.go
@@ -0,0 +1,20 @@
+package cc
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "xcode-select",
+ Description: "Active developer directory for Xcode tools",
+ Options: []core.Option{
+ {Name: "-h", Description: "Help message"},
+ {Name: "-p", Description: "Display path to active developer directory"},
+ {Name: "-s", Description: "Set path to active developer directory"},
+ {Name: "--install", Description: "Install Xcode command line tools"},
+ {Name: "-v", Description: "Display version"},
+ {Name: "-r", Description: "Reset to the default CLT path"},
+ },
+ })
+}
diff --git a/commands/cc/xcodebuild.go b/commands/cc/xcodebuild.go
new file mode 100644
index 0000000..255474f
--- /dev/null
+++ b/commands/cc/xcodebuild.go
@@ -0,0 +1,54 @@
+package cc
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "xcodebuild",
+ Description: "Build Xcode projects",
+ Options: []core.Option{
+ {Name: "-usage", Description: "Print brief usage"},
+ {Name: "-help", Description: "Print complete usage"},
+ {Name: "-verbose", Description: "Provide additional status output"},
+ {Name: "-license", Description: "Show the Xcode and SDK license agreements"},
+ {Name: "-checkFirstLaunchStatus", Description: "Check if any First Launch tasks need to be performed"},
+ {Name: "-runFirstLaunch", Description: "Install packages and agree to the license"},
+ {Name: "-project", Description: "Build the project NAME"},
+ {Name: "-target", Description: "Build the target NAME"},
+ {Name: "-alltargets", Description: "Build all targets"},
+ {Name: "-workspace", Description: "Build the workspace NAME"},
+ {Name: "-scheme", Description: "Build the scheme NAME"},
+ {Name: "-configuration", Description: "Use the build configuration NAME for building each target"},
+ {Name: "-xcconfig", Description: "Apply the build settings defined in the file at PATH as overrides"},
+ {Name: "-arch", Description: "Use SDK as the name or path of the base SDK when building the project"},
+ {Name: "-toolchain", Description: "Use the toolchain with identifier or name NAME"},
+ {Name: "-destination", Description: "Wait for TIMEOUT seconds while searching for the destination device"},
+ {Name: "-parallelizeTargets", Description: "Build independent targets in parallel"},
+ {Name: "-jobs", Description: "Specify the maximum number of concurrent build operations"},
+ {Name: "-parallel-testing-enabled", Description: "Overrides the per-target setting in the scheme"},
+ {Name: "-dry-run", Description: "Do everything except actually running the commands"},
+ {Name: "-quiet", Description: "Do not print any output except for warnings and errors"},
+ {Name: "-hideShellScriptEnvironment", Description: "Don't show shell script environment variables in build log"},
+ {Name: "-showsdks", Description: "Display a compact list of the installed SDKs"},
+ {Name: "-showdestinations", Description: "Display a list of destinations"},
+ {Name: "-showTestPlans", Description: "Display a list of test plans"},
+ {Name: "-showBuildSettings", Description: "Display a list of build settings and values"},
+ {Name: "-showBuildSettingsForIndex", Description: "Display build settings for the index service"},
+ {Name: "-list", Description: "Lists the targets and configurations in a project, or the schemes in a workspace"},
+ {Name: "-find-executable", Description: "Display the full path to executable NAME in the provided SDK and toolchain"},
+ {Name: "-find-library", Description: "Display the full path to library NAME in the provided SDK and toolchain"},
+ {Name: "-version", Description: "Turn the address sanitizer on or off"},
+ {Name: "-enableThreadSanitizer", Description: "Turn the thread sanitizer on or off"},
+ {Name: "-resultBundlePath", Description: "Specifies which result bundle version should be used"},
+ {Name: "-clonedSourcePackagesDirPath", Description: "Specifies the directory where build products and other derived data will go"},
+ {Name: "-archivePath", Description: "Specifies that an archive should be exported"},
+ {Name: "-exportNotarizedApp", Description: "Export an archive that has been notarized by Apple"},
+ {Name: "-exportOptionsPlist", Description: "Specifies a path to a plist file that configures archive exporting"},
+ {Name: "-enableCodeCoverage", Description: "Turn code coverage on or off when testing"},
+ {Name: "-exportPath", Description: "Specifies the destination for the product exported from an archive"},
+ {Name: "-skipUnavailableActions", Description: "Exports completed and outstanding project localizations"},
+ },
+ })
+}
diff --git a/commands/cc/xcodeproj.go b/commands/cc/xcodeproj.go
new file mode 100644
index 0000000..7bae2dd
--- /dev/null
+++ b/commands/cc/xcodeproj.go
@@ -0,0 +1,22 @@
+package cc
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "xcodeproj",
+ Description: "Xcodeproj lets you create and modify Xcode projects",
+ Options: []core.Option{
+ {Name: "--ignore", Description: "A key to ignore in the comparison. Can be specified multiple times"},
+ {Name: "--format", Description: "YAML output format"},
+ {Name: "--group-option", Description: "Shows the difference between two targets"},
+ {Name: "--project", Description: "The Xcode project document to use"},
+ {Name: "--verbose", Description: "Show more debugging information"},
+ {Name: "--version", Description: "Show the version of the tool"},
+ {Name: "--no-ansi", Description: "Show output without ANSI codes"},
+ {Name: "--help", Description: "Show help banner of specified command"},
+ },
+ })
+}
diff --git a/commands/cc/xcrun.go b/commands/cc/xcrun.go
new file mode 100644
index 0000000..b49afae
--- /dev/null
+++ b/commands/cc/xcrun.go
@@ -0,0 +1,38 @@
+package cc
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "xcrun",
+ Description: "SceneKit CLI utilities",
+ Subcommands: []core.Subcommand{
+ {Name: "scntool", Description: "SceneKit CLI utilities"},
+ },
+ Options: []core.Option{
+ {Name: "--convert", Description: "File to convert"},
+ {Name: "--format", Description: "Format to convert to"},
+ {Name: "--output", Description: "Path to the output file"},
+ {Name: "--force-y-up", Description: "Convert objects to use y axis up"},
+ {Name: "--force-interleaved", Description: "Use .ktx, .astc and .pvrtc files for textures if available in the asset catalog"},
+ {Name: "--verbose", Description: "Get pretty error message"},
+ {Name: "-h", Description: "Help message"},
+ {Name: "--version", Description: "Show the xcrun version"},
+ {Name: "-v", Description: "Show verbose logging output"},
+ {Name: "--sdk", Description: "Find the tool for the given SDK name"},
+ {Name: "--toolchain", Description: "Find the tool for the given toolchain"},
+ {Name: "-l", Description: "Show command path to be executed (and --run)"},
+ {Name: "-f", Description: "Find and print the tool path"},
+ {Name: "--run", Description: "(Default) find and execute the tool"},
+ {Name: "-n", Description: "Do not use the lookup cache"},
+ {Name: "-k", Description: "Invalidate all existing cache entries"},
+ {Name: "--show-sdk-path", Description: "Show selected SDK install path"},
+ {Name: "--show-sdk-version", Description: "Show selected SDK version"},
+ {Name: "--show-sdk-build-version", Description: "Show selected SDK build version"},
+ {Name: "--show-sdk-platform-path", Description: "Show selected SDK platform path"},
+ {Name: "--show-sdk-platform-version", Description: "Show selected SDK platform version"},
+ },
+ })
+}
diff --git a/commands/cc/zig.go b/commands/cc/zig.go
new file mode 100644
index 0000000..8c65da0
--- /dev/null
+++ b/commands/cc/zig.go
@@ -0,0 +1,86 @@
+package cc
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "zig",
+ Description: "Enable or disable colored message",
+ Subcommands: []core.Subcommand{
+ {Name: "build", Description: "Build project from build.zig"},
+ {Name: "install", Description: "Copy build artifacts to prefix path"},
+ {Name: "uninstall", Description: "Remove build artifacts from prefix path"},
+ {Name: "run", Description: "Run the app"},
+ {Name: "test", Description: "Run unit tests"},
+ {Name: "init-exe", Description: "Initializes a `zig build` project in the current working directory"},
+ {Name: "init-lib", Description: "Initializes a `zig build` project in the current working directory"},
+ {Name: "ast-check", Description: "Given a .zig source file, reports any compile errors that"},
+ {Name: "build-exe", Description: "Create executable from source or object files"},
+ {Name: "build-lib", Description: "Create library from source or object files"},
+ {Name: "build-obj", Description: "Create library from source or object files"},
+ {Name: "fmt", Description: "Reformat Zig source into canonical form"},
+ {Name: "translate-c", Description: "Convert C code to Zig code"},
+ {Name: "ar", Description: "LLVM Archiver"},
+ {Name: "default", Description: "Default"},
+ {Name: "gnu", Description: "GNU"},
+ {Name: "darwin", Description: "Darwin"},
+ {Name: "bsd", Description: "BSD"},
+ {Name: "bigarchive", Description: "Big archive (AIX OS)"},
+ {Name: "cc", Description: "Use Zig as a drop-in C compiler"},
+ {Name: "c++", Description: "Use Zig as a drop-in C++ compiler"},
+ {Name: "dll-tool", Description: "LLVM dll tool"},
+ {Name: "lib", Description: "Use Zig as a drop-in lib.exe"},
+ {Name: "ranlib", Description: "LLVM Ranlib : This program generates an index to speed access to archives"},
+ {Name: "env", Description: "Print lib path, std path, cache directory, and version"},
+ {Name: "help", Description: "Print help and exit"},
+ {Name: "libc", Description: "Detect the native libc installation and print the resulting paths to stdout"},
+ {Name: "targets", Description: "List available compilation targets"},
+ {Name: "version", Description: "Print version number and exit"},
+ {Name: "zen", Description: "Print Zen of Zig and exit"},
+ },
+ Options: []core.Option{
+ {Name: "--color", Description: "Enable or disable colored message"},
+ {Name: "--cache-dir", Description: "Override path to local Zig cache directory"},
+ {Name: "--global-cache-dir", Description: "Override path to global Zig cache directory"},
+ {Name: "-fstage1", Description: "Force using bootstrap compiler as the codegen backend"},
+ {Name: "-fno-stage1", Description: "Prevent using bootstrap compiler as the codegen backend"},
+ {Name: "--zig-lib-dir", Description: "Override path to Zig lib directory"},
+ {Name: "-freference-trace", Description: "How many lines of reference trace should be shown per compile error"},
+ {Name: "-fno-reference-trace", Description: "Disable reference trace"},
+ {Name: "-h", Description: "Print help and exit"},
+ {Name: "-v", Description: "Display the version of this program"},
+ {Name: "--watch", Description: "Enable compiler REPL"},
+ {Name: "-femit-bin", Description: "(default) Output machine code"},
+ {Name: "-fno-emit-bin", Description: "Do not output machine code"},
+ {Name: "-femit-asm", Description: "Output .s (assembly code)"},
+ {Name: "-fno-emit-asm", Description: "(default) Do not output .s (assembly code)"},
+ {Name: "-femit-llvm-ir", Description: "Produce a .ll file with LLVM IR (requires LLVM extensions)"},
+ {Name: "-fno-emit-llvm-ir", Description: "(default) Do not produce a .ll file with LLVM IR"},
+ {Name: "-femit-llvm-bc", Description: "Produce a LLVM module as a .bc file (requires LLVM extensions)"},
+ {Name: "-fno-emit-llvm-bc", Description: "(default) Do not produce a LLVM module as a .bc file"},
+ {Name: "-femit-h", Description: "Generate a C header file (.h)"},
+ {Name: "-fno-emit-h", Description: "(default) Do not generate a C header file (.h)"},
+ {Name: "-femit-docs", Description: "Create a docs/ dir with html documentation"},
+ {Name: "-fno-emit-docs", Description: "(default) Do not produce docs/ dir with html documentation"},
+ {Name: "-femit-analysis", Description: "Write analysis JSON file with type information"},
+ {Name: "-fno-emit-analysis", Description: "(default) Do not write analysis JSON file with type information"},
+ {Name: "-femit-implib", Description: "(default) Produce an import .lib when building a Windows DLL"},
+ {Name: "-fno-emit-implib", Description: "Do not produce an import .lib when building a Windows DLL"},
+ {Name: "--show-builtin", Description: "Output to cache directory; print path to stdout"},
+ {Name: "-target", Description: "-- see the targets command"},
+ {Name: "-mcpu", Description: "Specify target CPU and feature set"},
+ {Name: "-mcmodel", Description: "Limit range of code and data virtual addresses"},
+ {Name: "-mred-zone", Description: "Omit the stack frame pointer"},
+ {Name: "-fno-omit-frame-pointer", Description: "Store the stack frame pointer"},
+ {Name: "-mexec-model", Description: "(WASI) Execution model"},
+ {Name: "--name", Description: "Override root name (not a file path)"},
+ {Name: "-O", Description: "Choose what to optimize for"},
+ {Name: "--pkg-begin", Description: "Make pkg available to import and push current pkg"},
+ {Name: "--pkg-end", Description: "Pop current pkg"},
+ {Name: "--main-pkg-path", Description: "Set the directory of the root package"},
+ {Name: "-fPIC", Description: "Force-enable Position Independent Code"},
+ },
+ })
+}
diff --git a/commands/fs/broot.go b/commands/fs/broot.go
new file mode 100644
index 0000000..42ab169
--- /dev/null
+++ b/commands/fs/broot.go
@@ -0,0 +1,44 @@
+package fs
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "broot",
+ Description: "Show the last modified date of files and directories",
+ Options: []core.Option{
+ {Name: "--dates", Description: "Show the last modified date of files and directories"},
+ {Name: "--no-dates", Description: "Don't show the last modified date"},
+ {Name: "--only-folders", Description: "Only show folders"},
+ {Name: "--no-only-folders", Description: "Show folders and files alike"},
+ {Name: "--show-root-fs", Description: "Show filesystem info on top"},
+ {Name: "--show-git-info", Description: "Show git statuses on files and stats of repository"},
+ {Name: "--no-show-git-info", Description: "Don't show git statuses on files nor stats"},
+ {Name: "--git-status", Description: "Only show files having an interesting git status, including hidden ones"},
+ {Name: "--hidden", Description: "Show hidden files"},
+ {Name: "--no-hidden", Description: "Don't show hidden files"},
+ {Name: "--show-gitignored", Description: "Show files which should be ignored according to git"},
+ {Name: "--no-show-gitignored", Description: "Don't show gitignored files"},
+ {Name: "--permissions", Description: "Show permissions with owner and group"},
+ {Name: "--no-permissions", Description: "Don't show permissions"},
+ {Name: "--sizes", Description: "Don't show sizes"},
+ {Name: "--sort-by-count", Description: "Sort by count (only show one level of the tree)"},
+ {Name: "--sort-by-date", Description: "Sort by date (only show one level of the tree)"},
+ {Name: "--sort-by-size", Description: "Sort by size (only show one level of the tree)"},
+ {Name: "--whale-spotting", Description: "Sort by size, show ignored and hidden files"},
+ {Name: "--no-sort", Description: "Don't sort"},
+ {Name: "--trim-root", Description: "Install or reinstall the br shell function"},
+ {Name: "--get-root", Description: "Ask for the current root of the remote broot"},
+ {Name: "--color", Description: "Prints a help page, with more or less the same content as this man page"},
+ {Name: "--version", Description: "Prints the version of broot"},
+ {Name: "--outcmd", Description: "Where to write a command if broot produces one"},
+ {Name: "--cmd", Description: "Semicolon separated commands to execute on start of broot"},
+ {Name: "--conf", Description: "Semicolon separated paths to specific config files"},
+ {Name: "--height", Description: "Where to write the produced path, if any"},
+ {Name: "--set-install-state", Description: "Listen for commands"},
+ {Name: "--send", Description: "Send commands to a remote broot then quits"},
+ },
+ })
+}
diff --git a/commands/fs/df.go b/commands/fs/df.go
new file mode 100644
index 0000000..593628a
--- /dev/null
+++ b/commands/fs/df.go
@@ -0,0 +1,22 @@
+package fs
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "df",
+ Description: "Display free disk space",
+ Options: []core.Option{
+ {Name: "-a", Description: "Show all mount points"},
+ {Name: "-b", Description: "Use 512-byte blocks (default)"},
+ {Name: "-g", Description: "Use 1073741824-byte (1-Gbyte) blocks"},
+ {Name: "-m", Description: "Use 1048576-byte (1-Mbyte) blocks"},
+ {Name: "-k", Description: "Use 1024-byte (1-Kbyte) blocks"},
+ {Name: "-H", Description: "Include the number of free inodes"},
+ {Name: "-l", Description: "Only display information about locally-mounted filesystems"},
+ {Name: "-n", Description: "Print out the previously obtained statistics"},
+ },
+ })
+}
diff --git a/commands/fs/dust.go b/commands/fs/dust.go
new file mode 100644
index 0000000..c13b26e
--- /dev/null
+++ b/commands/fs/dust.go
@@ -0,0 +1,31 @@
+package fs
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "dust",
+ Description: "Like du but more intuitive",
+ Options: []core.Option{
+ {Name: "--help", Description: "Show help for dust"},
+ {Name: "--version", Description: "Print version information"},
+ {Name: "--no-percent-bars", Description: "No percent bars or percentages will be displayed"},
+ {Name: "--no-colors", Description: "No colors will be printed (Useful for commands like: watch)"},
+ {Name: "--depth", Description: "Depth to show"},
+ {Name: "--filter", Description: "Directory 'size' is number of child files/dirs not disk size"},
+ {Name: "--si", Description: "Print sizes in powers of 1000 (e.g., 1.1G)"},
+ {Name: "--ignore_hidden", Description: "Do not display hidden files"},
+ {Name: "--number-of-lines", Description: "Number of lines of output to show. (Default is terminal_height - 10)"},
+ {Name: "--full-paths", Description: "Subdirectories will not have their path shortened"},
+ {Name: "--reverse", Description: "Print tree upside down (biggest highest)"},
+ {Name: "--apparent-size", Description: "Use file length instead of blocks"},
+ {Name: "--skip-total", Description: "No total row will be displayed"},
+ {Name: "--file_types", Description: "Show only these file types"},
+ {Name: "--invert-filter", Description: "Specify width of output overriding the auto detection of terminal width"},
+ {Name: "--limit-filesystem", Description: "Exclude any file or directory with this name"},
+ {Name: "--min-size", Description: "Minimum size file to include in output"},
+ },
+ })
+}
diff --git a/commands/fs/exa.go b/commands/fs/exa.go
new file mode 100644
index 0000000..164019a
--- /dev/null
+++ b/commands/fs/exa.go
@@ -0,0 +1,12 @@
+package fs
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "exa",
+ Description: "A modern replacement for ls",
+ })
+}
diff --git a/commands/fs/eza.go b/commands/fs/eza.go
new file mode 100644
index 0000000..2c7458c
--- /dev/null
+++ b/commands/fs/eza.go
@@ -0,0 +1,54 @@
+package fs
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "eza",
+ Description: "A modern replacement for ls",
+ Options: []core.Option{
+ {Name: "-?", Description: "Show list of command-line options"},
+ {Name: "-v", Description: "Show version of eza"},
+ {Name: "-1", Description: "Display one entry per line"},
+ {Name: "-l", Description: "Display extended file metadata as a table"},
+ {Name: "-G", Description: "Display entries as a grid (default)"},
+ {Name: "-x", Description: "Sort the grid across, rather than downward"},
+ {Name: "-R", Description: "Recurse into directories"},
+ {Name: "-T", Description: "Recurse into directories as a tree"},
+ {Name: "-X", Description: "Dereference symbolic links when displaying information"},
+ {Name: "-F", Description: "Display type indicator by file names"},
+ {Name: "--color", Description: "When to use terminal colours"},
+ {Name: "--color-scale", Description: "Highlight levels of 'field' distinctly"},
+ {Name: "--color-scale-mode", Description: "Use gradient or fixed colors in --color-scale"},
+ {Name: "--icons", Description: "When to display icons"},
+ {Name: "--no-quotes", Description: "Don't quote file names with spaces"},
+ {Name: "--hyperlink", Description: "Display entries as hyperlinks"},
+ {Name: "--absolute", Description: "Display entries with their absolute path"},
+ {Name: "--follow-symlinks", Description: "Drill down into symbolic links that point to directories"},
+ {Name: "-w", Description: "Set screen width in columns"},
+ {Name: "-a", Description: "Show hidden and 'dot' files"},
+ {Name: "-A", Description: "Equivalent to '--all'"},
+ {Name: "-d", Description: "List directories like regular files"},
+ {Name: "-D", Description: "List only directories"},
+ {Name: "-f", Description: "List only files"},
+ {Name: "--show-symlinks", Description: "Explicitly show symbolic links"},
+ {Name: "--no-symlinks", Description: "Do not show symbolic links"},
+ {Name: "-L", Description: "Limit the depth of recursion"},
+ {Name: "-r", Description: "Reverse the sort order"},
+ {Name: "-s", Description: "Which field to sort by"},
+ {Name: "--group-directories-first", Description: "List directories before other files"},
+ {Name: "--group-directories-last", Description: "List directories after other files"},
+ {Name: "-I", Description: "Glob patterns (pipe-separated) of files to ignore"},
+ {Name: "--git-ignore", Description: "Ignore files mentioned in '.gitignore'"},
+ {Name: "-b", Description: "List file sizes with binary prefixes"},
+ {Name: "-B", Description: "List file sizes in bytes, without any prefixes"},
+ {Name: "-g", Description: "List each file's group"},
+ {Name: "--smart-group", Description: "Only show group if it has a different name from owner"},
+ {Name: "-h", Description: "Add a header row to each column"},
+ {Name: "-H", Description: "List each file's number of hard links"},
+ {Name: "-i", Description: "List each file's inode number"},
+ },
+ })
+}
diff --git a/commands/fs/find.go b/commands/fs/find.go
new file mode 100644
index 0000000..ee5355f
--- /dev/null
+++ b/commands/fs/find.go
@@ -0,0 +1,18 @@
+package fs
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "find",
+ Description: "Walk a file hierarchy",
+ Options: []core.Option{
+ {Name: "-E", Description: "Permit find to be safely used in conjunction with xargs"},
+ {Name: "-d", Description: "Cause find to perform a depth-first traversal"},
+ {Name: "-f", Description: "Specify a file hierarch for find to traverse"},
+ {Name: "-s", Description: "Cause find to traverse the file hierarchies in lexicographical order"},
+ },
+ })
+}
diff --git a/commands/fs/fold.go b/commands/fs/fold.go
new file mode 100644
index 0000000..f1582fa
--- /dev/null
+++ b/commands/fs/fold.go
@@ -0,0 +1,15 @@
+package fs
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "fold",
+ Description: "Fold long lines for finite width output device",
+ Options: []core.Option{
+ {Name: "-b", Description: "File(s) to fold"},
+ },
+ })
+}
diff --git a/commands/fs/lsd.go b/commands/fs/lsd.go
new file mode 100644
index 0000000..c9f0118
--- /dev/null
+++ b/commands/fs/lsd.go
@@ -0,0 +1,43 @@
+package fs
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "lsd",
+ Description: "An ls command with a lot of pretty colors and some other stuff",
+ Options: []core.Option{
+ {Name: "-1", Description: "Display one entry per line"},
+ {Name: "-A", Description: "Do not list implied . and"},
+ {Name: "-a", Description: "Do not ignore entries starting with"},
+ {Name: "-d", Description: "Append indicator (one of */=>@|) at the end of the file names"},
+ {Name: "-h", Description: "For ls compatibility purposes ONLY, currently set by default"},
+ {Name: "-i", Description: "Display the index number of each file"},
+ {Name: "-L", Description: "Display the extended file metadata as a table"},
+ {Name: "-R", Description: "Recurse into directories"},
+ {Name: "-r", Description: "Reverse the order of the sort"},
+ {Name: "-S", Description: "Sort by size"},
+ {Name: "-t", Description: "Sort by time modified"},
+ {Name: "-v", Description: "Natural sort of (version) numbers within text"},
+ {Name: "--classic", Description: "Enable classic mode (no colors or icons)"},
+ {Name: "-X", Description: "Sort by file extension"},
+ {Name: "--help", Description: "Prints help information"},
+ {Name: "--ignore-config", Description: "Ignore the configuration file"},
+ {Name: "--no-symlink", Description: "Do not display symlink target"},
+ {Name: "--total-size", Description: "Display the total size of directories"},
+ {Name: "--tree", Description: "Recurse into directories and present the result as a tree"},
+ {Name: "-V", Description: "Prints version information"},
+ {Name: "--blocks", Description: "Specify the blocks that will be displayed and in what order"},
+ {Name: "--color", Description: "When to use terminal colours"},
+ {Name: "--date", Description: "How to display date"},
+ {Name: "--depth", Description: "Stop recursing into directories after reaching depth"},
+ {Name: "--group-dirs", Description: "Sort the directories then the files"},
+ {Name: "--icon", Description: "When to print the icons"},
+ {Name: "--icon-theme", Description: "Whether to use fancy or unicode icons"},
+ {Name: "--ignore-glob", Description: "How to display size"},
+ {Name: "--sort", Description: "Sort by WORD instead of name"},
+ },
+ })
+}
diff --git a/commands/fs/paper.go b/commands/fs/paper.go
new file mode 100644
index 0000000..90f1b46
--- /dev/null
+++ b/commands/fs/paper.go
@@ -0,0 +1,75 @@
+package fs
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "paper",
+ Description: "The Paper CLI",
+ Subcommands: []core.Subcommand{
+ {Name: "bench", Description: "Benchmark a Paper query"},
+ {Name: "build", Description: "Build an Paper bundle"},
+ {Name: "check", Description: "Check Paper source files"},
+ {Name: "completion", Description: "Generate the autocompletion script for the specified shell"},
+ {Name: "bash", Description: "Generate the autocompletion script for bash"},
+ {Name: "fish", Description: "Generate the autocompletion script for fish"},
+ {Name: "powershell", Description: "Generate the autocompletion script for powershell"},
+ {Name: "zsh", Description: "Generate the autocompletion script for zsh"},
+ {Name: "deps", Description: "Analyze Paper query dependencies"},
+ {Name: "eval", Description: "Evaluate a Paper query"},
+ {Name: "exec", Description: "Execute against input files"},
+ {Name: "fmt", Description: "Format Paper source files"},
+ {Name: "inspect", Description: "Inspect Paper bundle(s)"},
+ {Name: "parse", Description: "Parse Paper source file"},
+ {Name: "run", Description: "Start Paper in interactive or server mode"},
+ {Name: "sign", Description: "Generate an Paper bundle signature"},
+ {Name: "test", Description: "Execute Paper test cases"},
+ {Name: "version", Description: "Print the version of Paper"},
+ {Name: "help", Description: "Help about any command"},
+ },
+ Options: []core.Option{
+ {Name: "--benchmem", Description: "Report memory allocations with benchmark results"},
+ {Name: "--bundle", Description: "Set bundle file(s) or directory path(s). This flag can be repeated"},
+ {Name: "--count", Description: "Number of times to repeat each benchmark"},
+ {Name: "--data", Description: "Set policy or data file(s). This flag can be repeated"},
+ {Name: "--fail", Description: "Exits with non-zero exit code on undefined/empty result and errors"},
+ {Name: "--format", Description: "Set output format"},
+ {Name: "--ignore", Description: "Set query import(s). This flag can be repeated"},
+ {Name: "--input", Description: "Set input file path"},
+ {Name: "--metrics", Description: "Report query performance metrics"},
+ {Name: "--package", Description: "Set query package"},
+ {Name: "--partial", Description: "Perform partial evaluation"},
+ {Name: "--schema", Description: "Set schema file path or directory path"},
+ {Name: "--stdin", Description: "Read query from stdin"},
+ {Name: "--stdin-input", Description: "Read input document from stdin"},
+ {Name: "--target", Description: "Set the runtime to exercise"},
+ {Name: "--unknowns", Description: "Set paths to treat as unknown during partial evaluation"},
+ {Name: "--help", Description: "Help for bench"},
+ {Name: "--capabilities", Description: "Set capabilities.json file path"},
+ {Name: "--debug", Description: "Enable debug output"},
+ {Name: "--entrypoint", Description: "Set slash separated entrypoint path"},
+ {Name: "--exclude-files-verify", Description: "Set file names to exclude during bundle verification"},
+ {Name: "--output", Description: "Set the output filename"},
+ {Name: "--revision", Description: "Set output bundle revision"},
+ {Name: "--scope", Description: "Scope to use for bundle signature verification"},
+ {Name: "--signing-alg", Description: "Name of the signing algorithm"},
+ {Name: "--signing-key", Description: "Set the output bundle target type"},
+ {Name: "--verification-key", Description: "Name assigned to the verification key used for bundle verification"},
+ {Name: "--strict", Description: "Enable compiler strict mode"},
+ {Name: "--no-descriptions", Description: "Disable completion descriptions"},
+ {Name: "--coverage", Description: "Report coverage"},
+ {Name: "--disable-early-exit", Description: "Disable 'early exit' optimizations"},
+ {Name: "--disable-indexing", Description: "Disable indexing optimizations"},
+ {Name: "--disable-inlining", Description: "Set paths of documents to exclude from inlining"},
+ {Name: "--explain", Description: "Enable query explanations"},
+ {Name: "--fail-defined", Description: "Exits with non-zero exit code on defined/non-empty result and errors"},
+ {Name: "--instrument", Description: "Enable query instrumentation metrics (implies --metrics)"},
+ {Name: "--pretty-limit", Description: "Set limit after which pretty output gets truncated"},
+ {Name: "--profile", Description: "Perform expression profiling"},
+ {Name: "--profile-limit", Description: "Set number of profiling results to show"},
+ {Name: "--profile-sort", Description: "Set sort order of expression profiler results"},
+ },
+ })
+}
diff --git a/commands/fs/rclone.go b/commands/fs/rclone.go
new file mode 100644
index 0000000..b3ee1a1
--- /dev/null
+++ b/commands/fs/rclone.go
@@ -0,0 +1,106 @@
+package fs
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "rclone",
+ Description: "Only list directories",
+ Subcommands: []core.Subcommand{
+ {Name: "about", Description: "Get quota information from the remote"},
+ {Name: "authorize", Description: "Remote authorization"},
+ {Name: "backend", Description: "Run a backend specific command"},
+ {Name: "cat", Description: "Concatenates any files and sends them to stdout"},
+ {Name: "check", Description: "Checks the files in the source and destination match"},
+ {Name: "cleanup", Description: "Clean up the remote if possible"},
+ {Name: "config", Description: "Enter an interactive configuration session"},
+ {Name: "create", Description: "Create a new remote with name, type and options"},
+ {Name: "copy", Description: "Copy files from source to dest, skipping already copied"},
+ {Name: "copyto", Description: "Copy files from source to dest, skipping already copied"},
+ {Name: "copyurl", Description: "Copy url content to dest"},
+ {Name: "cryptcheck", Description: "Cryptcheck checks the integrity of a crypted remote"},
+ {Name: "cryptdecode", Description: "Cryptdecode returns unencrypted file names"},
+ {Name: "dedupe", Description: "Interactively find duplicate filenames and delete/rename them"},
+ {Name: "interactive", Description: "Interactive"},
+ {Name: "skip", Description: "Removes identical files then skips anything left"},
+ {Name: "rename", Description: "Removes identical files then renames the rest to be different"},
+ {Name: "list", Description: "Lists duplicate dirs and files only and changes nothing"},
+ {Name: "delete", Description: "Remove the files in path"},
+ {Name: "genautocomplete", Description: "Output completion script for a given shell"},
+ {Name: "gendocs", Description: "Output markdown docs for rclone to the directory supplied"},
+ {Name: "hashsum", Description: "Produces a hashsum file for all the objects in the path"},
+ {Name: "help", Description: "Show help for rclone commands, flags and backends"},
+ {Name: "flags", Description: "List of global flags"},
+ {Name: "link", Description: "Generate public link to file/folder"},
+ {Name: "listremotes", Description: "List all the remotes in the config file"},
+ {Name: "ls", Description: "List the objects in the path with size and path"},
+ {Name: "lsd", Description: "List all directories/containers/buckets in the path"},
+ {Name: "lsf", Description: "List directories and objects in remote:path formatted for parsing"},
+ {Name: "lsjson", Description: "List directories and objects in the path in JSON format"},
+ {Name: "lsl", Description: "List the objects in path with modification time, size and path"},
+ {Name: "md5sum", Description: "Produces an md5sum file for all the objects in the path"},
+ {Name: "mkdir", Description: "Make the path if it doesn't already exist"},
+ {Name: "mount", Description: "Mount the remote as file system on a mountpoint"},
+ {Name: "move", Description: "Move files from source to dest"},
+ {Name: "moveto", Description: "Move file or directory from source to dest"},
+ {Name: "ncdu", Description: "Explore a remote with a text based user interface"},
+ {Name: "obscure", Description: "Obscure password for use in the rclone config file"},
+ {Name: "purge", Description: "Remove the path and all of its contents"},
+ {Name: "rc", Description: "Run a command against a running rclone"},
+ {Name: "rcat", Description: "Copies standard input to file on remote"},
+ {Name: "rcd", Description: "Run rclone listening to remote control commands only"},
+ {Name: "rmdir", Description: "Remove the empty directory at path"},
+ {Name: "rmdirs", Description: "Remove empty directories under the path"},
+ {Name: "selfupdate", Description: "Update the rclone binary"},
+ {Name: "serve", Description: "Serve a remote over a protocol"},
+ {Name: "settier", Description: "Changes storage class/tier of objects in remote"},
+ {Name: "sha1sum", Description: "Produces an sha1sum file for all the objects in the path"},
+ {Name: "size", Description: "Prints the total size and number of objects in remote:path"},
+ {Name: "sync", Description: "Make source and dest identical, modifying destination only"},
+ },
+ Options: []core.Option{
+ {Name: "--dirs-only", Description: "Only list directories"},
+ {Name: "--files-only", Description: "Only list files"},
+ {Name: "--recursive", Description: "Recurse into the listing"},
+ {Name: "--combined", Description: "Make a combined report of changes to this file"},
+ {Name: "--differ", Description: "Report all non-matching files to this file"},
+ {Name: "--error", Description: "Report all files with errors (hashing or reading) to this file"},
+ {Name: "--match", Description: "Report all matching files to this file"},
+ {Name: "--missing-on-dst", Description: "Report all files missing from the destination to this file"},
+ {Name: "--missing-on-src", Description: "Report all files missing from the source to this file"},
+ {Name: "--one-way", Description: "Check one way only, source files must exist on remote"},
+ {Name: "--full", Description: "Full numbers instead of SI units"},
+ {Name: "--json", Description: "Format output as JSON"},
+ {Name: "--auth-no-open-browser", Description: "Do not automatically open auth link in default browser"},
+ {Name: "--discard", Description: "Discard the output instead of printing"},
+ {Name: "--count", Description: "Only print N characters. (default -1)"},
+ {Name: "--head", Description: "Only print the first N characters"},
+ {Name: "--offset", Description: "Start printing at offset N (or from end if -ve)"},
+ {Name: "--tail", Description: "Only print the last N characters"},
+ {Name: "--download", Description: "Check by downloading rather than with hash"},
+ {Name: "--reverse", Description: "Reverse cryptdecode, encrypts filenames"},
+ {Name: "--by-hash", Description: "Find identical hashes rather than names"},
+ {Name: "--dedupe-mode", Description: "Dedupe mode"},
+ {Name: "--rmdirs", Description: "Rmdirs removes empty directories but leaves root intact"},
+ {Name: "--base64", Description: "Output base64 encoded hashsum"},
+ {Name: "--expire", Description: "The amount of time that the link will be valid (default 100y)"},
+ {Name: "--unlink", Description: "Remove existing public link to file/folder"},
+ {Name: "--long", Description: "Show the type as well as names"},
+ {Name: "-R", Description: "List directories and objects in remote:path formatted for parsing"},
+ {Name: "--absolute", Description: "Put a leading / in front of path names"},
+ {Name: "--csv", Description: "Output in CSV format"},
+ {Name: "-d", Description: "Append a slash to directory names. (default true)"},
+ {Name: "--format", Description: "List directories and objects in the path in JSON format"},
+ {Name: "--encrypted", Description: "Show the encrypted names"},
+ {Name: "--hash", Description: "Include hashes in the output (may take longer)"},
+ {Name: "--hash-type", Description: "Show only this hash type (may be repeated)"},
+ {Name: "--no-mimetype", Description: "Don't read the mime type (can speed things up)"},
+ {Name: "--no-modtime", Description: "Don't read the modification time (can speed things up)"},
+ {Name: "--original", Description: "Show the ID of the underlying Object"},
+ {Name: "--version", Description: "View your current rclone version"},
+ {Name: "--help", Description: "Show help for rclone commands, flags and backends"},
+ },
+ })
+}
diff --git a/commands/fs/readlink.go b/commands/fs/readlink.go
new file mode 100644
index 0000000..b4c982f
--- /dev/null
+++ b/commands/fs/readlink.go
@@ -0,0 +1,15 @@
+package fs
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "readlink",
+ Description: "Display file status",
+ Options: []core.Option{
+ {Name: "-f", Description: "Do not force a newline to appear at the end of each piece of output"},
+ },
+ })
+}
diff --git a/commands/fs/rmdir.go b/commands/fs/rmdir.go
new file mode 100644
index 0000000..6f6859e
--- /dev/null
+++ b/commands/fs/rmdir.go
@@ -0,0 +1,15 @@
+package fs
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "rmdir",
+ Description: "Remove directories",
+ Options: []core.Option{
+ {Name: "-p", Description: "Remove each directory of path"},
+ },
+ })
+}
diff --git a/commands/fs/stow.go b/commands/fs/stow.go
new file mode 100644
index 0000000..358bb31
--- /dev/null
+++ b/commands/fs/stow.go
@@ -0,0 +1,18 @@
+package fs
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "stow",
+ Description: "Manage farms of symbolic links",
+ Options: []core.Option{
+ {Name: "-n", Description: "Set the target directory to 'DIR' instead of the parent of the stow directory"},
+ {Name: "-v", Description: "Ignore files ending in this Perl regex"},
+ {Name: "--defer", Description: "Show Stow version, and exit"},
+ {Name: "-h", Description: "Show Stow command syntax, and exit"},
+ },
+ })
+}
diff --git a/commands/fs/tar.go b/commands/fs/tar.go
new file mode 100644
index 0000000..8aa1bc2
--- /dev/null
+++ b/commands/fs/tar.go
@@ -0,0 +1,87 @@
+package fs
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "tar",
+ Description: "Use archive file or device ARCHIVE",
+ Subcommands: []core.Subcommand{
+ {Name: "A", Description: "Append archive to the end of another archive"},
+ {Name: "c", Description: "Create a new archive"},
+ {Name: "b", Description: "Set record size to BLOCKSx512 bytes"},
+ {Name: "NUMBER", Description: "The number of bytes per record"},
+ {Name: "H", Description: "Create archive of the given format"},
+ {Name: "gnu", Description: "GNU tar 1.13.x format"},
+ {Name: "oldgnu", Description: "GNU format as per tar <= 1.12"},
+ {Name: "pax", Description: "POSIX 1003.1-2001 (pax) format"},
+ {Name: "ustar", Description: "POSIX 1003.1-1988 (ustar) format"},
+ {Name: "v7", Description: "Old V7 tar format"},
+ {Name: "V", Description: "Create archive with volume name TEXT"},
+ {Name: "failed-read", Description: "Enables warnings about unreadable files or directories"},
+ {Name: "no-failed-read", Description: "Suppresses warnings about unreadable files or directories"},
+ {Name: "o", Description: "Same as --old-archive"},
+ {Name: "d", Description: "Find differences between archive and file system"},
+ {Name: "t", Description: "List the contents of an archive"},
+ {Name: "r", Description: "Append files to the end of an archive"},
+ {Name: "u", Description: "Append files which are newer than the corresponding copy in the archive"},
+ {Name: "x", Description: "Extract files from an archive"},
+ {Name: "k", Description: "Don't replace existing files when extracting"},
+ {Name: "U", Description: "Remove each file prior to extracting over it"},
+ {Name: "O", Description: "Extract files to standard output"},
+ {Name: "m", Description: "Don't extract file modified time"},
+ {Name: "p", Description: "Extract information about file permissions"},
+ {Name: "s", Description: "Sort names to extract to match archive"},
+ {Name: "unknown-cast", Description: "\\"},
+ {Name: "no-unknown-cast", Description: "No \\"},
+ {Name: "unknown-keyword", Description: "\\"},
+ {Name: "no-unknown-keyword", Description: "No \\"},
+ {Name: "bad-dumpdir", Description: "\\"},
+ {Name: "?", Description: "Display a short option summary and exit"},
+ },
+ Options: []core.Option{
+ {Name: "--force-local", Description: "Archive file is local even if it has a colon"},
+ {Name: "--rmt-command", Description: "Use COMMAND instead of rmt when accessing remote archives"},
+ {Name: "--rsh-command", Description: "Use COMMAND instead of rsh when accessing remote archives"},
+ {Name: "--volno-file", Description: "Use archive suffix to determine the compression program"},
+ {Name: "--lzip", Description: "Filter the archive through lzip"},
+ {Name: "--lzma", Description: "Filter the archive through lzma"},
+ {Name: "--lzop", Description: "Filter the archive through lzop"},
+ {Name: "--no-auto-compress", Description: "Do not use archive suffix to determine the compression program"},
+ {Name: "--zstd", Description: "Filter the archive through zstd"},
+ {Name: "--transform", Description: "Use sed replace EXPRESSION to transform file names"},
+ {Name: "--checkpoint", Description: "Display progress messages every Nth record"},
+ {Name: "--checkpoint-action", Description: "Run ACTION on each checkpoint"},
+ {Name: "--full-time", Description: "Print file time to its full resolution"},
+ {Name: "--utc", Description: "Print file modification times in UTC"},
+ {Name: "--ignore-failed-read", Description: "Do not exit with nonzero on unreadable files"},
+ {Name: "--restrict", Description: "Disable the use of some potentially harmful options"},
+ {Name: "--remove-files", Description: "Remove files from disk after adding them to the archive"},
+ {Name: "--atime-preserve", Description: "Preserve access times on dumped files"},
+ {Name: "--group", Description: "Force NAME as group for added files"},
+ {Name: "--group-map", Description: "Read group translation map from FILE"},
+ {Name: "--mode", Description: "Force symbolic mode CHANGES for added files"},
+ {Name: "--mtime", Description: "Set mtime for added files"},
+ {Name: "--owner", Description: "Force NAME as owner for added files"},
+ {Name: "--owner-map", Description: "Read owner translation map from FILE"},
+ {Name: "--sort", Description: "When creating an archive, sort directory entries according to ORDER"},
+ {Name: "--add-file", Description: "Add FILE to the archive"},
+ {Name: "--exclude", Description: "Exclude files matching PATTERN"},
+ {Name: "--exclude-backups", Description: "Exclude backup and lock files"},
+ {Name: "--exclude-caches", Description: "Exclude directories containing file CACHEDIR.TAG and the file itself"},
+ {Name: "--exclude-caches-under", Description: "Exclude everything under directories containing CACHEDIR.TAG"},
+ {Name: "--exclude-ignore", Description: "Read exclusion patterns from FILE in directory before dumping"},
+ {Name: "--exclude-ignore-recursive", Description: "Exclude contents of directories containing FILE, except for FILE itself"},
+ {Name: "--exclude-tag-all", Description: "Exclude directories containing FILE"},
+ {Name: "--exclude-tag-under", Description: "Exclude everything under directories containing FILE"},
+ {Name: "--exclude-vcs", Description: "Exclude version control system directories"},
+ {Name: "--exclude-vcs-ignores", Description: "Exclude files that match patterns read from VCS-specific ignore files"},
+ {Name: "--hard-dereference", Description: "Follow hard links; archive and dump the files they refer to"},
+ {Name: "--one-file-system", Description: "Stay in local file system when creating archive"},
+ {Name: "--anchored", Description: "Patterns match file name start"},
+ {Name: "--ignore-case", Description: "Ignore case"},
+ },
+ })
+}
diff --git a/commands/fs/trash.go b/commands/fs/trash.go
new file mode 100644
index 0000000..e49dc1e
--- /dev/null
+++ b/commands/fs/trash.go
@@ -0,0 +1,19 @@
+package fs
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "trash",
+ Description: "Trash, move files/folders to the trash",
+ Options: []core.Option{
+ {Name: "-v", Description: "Print verbose output while moving items"},
+ {Name: "-F", Description: "Use the Finder API to move items to the trash"},
+ {Name: "-l", Description: "List items in the trash"},
+ {Name: "-e", Description: "Empty the trash"},
+ {Name: "-s", Description: "Skips the confirmation prompt for -e and -s. CAUTION: permanently instantly"},
+ },
+ })
+}
diff --git a/commands/fs/tree.go b/commands/fs/tree.go
new file mode 100644
index 0000000..c60755f
--- /dev/null
+++ b/commands/fs/tree.go
@@ -0,0 +1,54 @@
+package fs
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "tree",
+ Description: "Display directories as trees (with optional color/HTML output)",
+ Options: []core.Option{
+ {Name: "-a", Description: "All files are listed"},
+ {Name: "-d", Description: "List directories only"},
+ {Name: "-l", Description: "Follow symbolic links like directories"},
+ {Name: "-f", Description: "Print the full path prefix for each file"},
+ {Name: "-x", Description: "Stay on current filesystem only"},
+ {Name: "-L", Description: "Descend only level directories deep"},
+ {Name: "-R", Description: "Rerun tree when max dir level reached"},
+ {Name: "-P", Description: "List only those files that match the pattern given"},
+ {Name: "-I", Description: "Do not list files that match the given pattern"},
+ {Name: "--ignore-case", Description: "Ignore case when pattern matching"},
+ {Name: "--matchdirs", Description: "Include directory names in -P pattern matching"},
+ {Name: "--noreport", Description: "Turn off file/directory count at end of tree listing"},
+ {Name: "--charset", Description: "Use charset X for terminal/HTML and indentation line output"},
+ {Name: "--filelimit", Description: "Do not descend dirs with more than # files in them"},
+ {Name: "--timefmt", Description: "Print and format time according to the format "},
+ {Name: "-o", Description: "Output to file instead of stdout"},
+ {Name: "-q", Description: "Print non-printable characters as '?'"},
+ {Name: "-N", Description: "Print non-printable characters as is"},
+ {Name: "-Q", Description: "Quote filenames with double quotes"},
+ {Name: "-p", Description: "Print the protections for each file"},
+ {Name: "-u", Description: "Displays file owner or UID number"},
+ {Name: "-g", Description: "Displays file group owner or GID number"},
+ {Name: "-s", Description: "Print the size in bytes of each file"},
+ {Name: "-h", Description: "Print the size in a more human readable way"},
+ {Name: "--si", Description: "Like -h but use SI units (powers of 1000) instead"},
+ {Name: "--du", Description: "Appends '/', '=', '*', '@', '|' or '>' as per ls -F"},
+ {Name: "--inodes", Description: "Print inode number of each file"},
+ {Name: "--device", Description: "Print device ID number to which each file belongs"},
+ {Name: "-v", Description: "Sort files alphanumerically by version"},
+ {Name: "-t", Description: "Sort files by last modification time"},
+ {Name: "-c", Description: "Sort files by last status change time"},
+ {Name: "-U", Description: "Leave files unsorted"},
+ {Name: "-r", Description: "Reverse the order of the sort"},
+ {Name: "--dirsfirst", Description: "List directories before files (-U disables)"},
+ {Name: "--sort", Description: "Select sort"},
+ {Name: "-i", Description: "Don't print indentation lines"},
+ {Name: "-A", Description: "Print ANSI lines graphic indentation lines"},
+ {Name: "-S", Description: "Print with CP437 (console) graphics indentation lines"},
+ {Name: "-n", Description: "Turn colorization off always (-C overrides)"},
+ {Name: "-C", Description: "Turn colorization on always"},
+ },
+ })
+}
diff --git a/commands/fs/unzip.go b/commands/fs/unzip.go
new file mode 100644
index 0000000..46621c3
--- /dev/null
+++ b/commands/fs/unzip.go
@@ -0,0 +1,15 @@
+package fs
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "unzip",
+ Description: "Extract compressed files in a ZIP archive",
+ Options: []core.Option{
+ {Name: "-l", Description: "List the contents of a zip file without extracting"},
+ },
+ })
+}
diff --git a/commands/fs/zip.go b/commands/fs/zip.go
new file mode 100644
index 0000000..f17ef71
--- /dev/null
+++ b/commands/fs/zip.go
@@ -0,0 +1,16 @@
+package fs
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "zip",
+ Description: "Package and compress (archive) files into zip file",
+ Options: []core.Option{
+ {Name: "-r", Description: "Package and compress a directory and its contents, recursively"},
+ {Name: "-e", Description: "Archive a directory and its contents with the highest level [9] of compression"},
+ },
+ })
+}
diff --git a/commands/git/ghq.go b/commands/git/ghq.go
new file mode 100644
index 0000000..1eab25d
--- /dev/null
+++ b/commands/git/ghq.go
@@ -0,0 +1,35 @@
+package git
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "ghq",
+ Description: "Clone/sync with a remote repository",
+ Subcommands: []core.Subcommand{
+ {Name: "get", Description: "Clone/sync with a remote repository"},
+ {Name: "list", Description: "List local repositories"},
+ {Name: "root", Description: "Show repositories' root"},
+ {Name: "create", Description: "Create a new repository"},
+ },
+ Options: []core.Option{
+ {Name: "-u", Description: "Update local repository if cloned already (default: false)"},
+ {Name: "-p", Description: "Clone with SSH (default: false)"},
+ {Name: "--shallow", Description: "Do a shallow clone (default: false)"},
+ {Name: "-l", Description: "Look after get (default: false)"},
+ {Name: "--vcs", Description: "Specify vcs backend for cloning"},
+ {Name: "-s", Description: "Clone or update silently (default: false)"},
+ {Name: "--no-recursive", Description: "Prevent recursive fetching (default: false)"},
+ {Name: "-b", Description: "Specify branch name. This flag implies --single-branch on Git"},
+ {Name: "-P", Description: "Import parallelly (default: false)"},
+ {Name: "--bare", Description: "Do a bare clone (default: false)"},
+ {Name: "-e", Description: "Perform an exact match (default: false)"},
+ {Name: "--unique", Description: "Print unique subpaths (default: false)"},
+ {Name: "--all", Description: "Show all roots (default: false)"},
+ {Name: "-h", Description: "Show help"},
+ {Name: "-v", Description: "Print the version"},
+ },
+ })
+}
diff --git a/commands/git/git_cliff.go b/commands/git/git_cliff.go
new file mode 100644
index 0000000..023bca3
--- /dev/null
+++ b/commands/git/git_cliff.go
@@ -0,0 +1,35 @@
+package git
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "git-cliff",
+ Description: "Increases the logging verbosity",
+ Options: []core.Option{
+ {Name: "--verbose", Description: "Increases the logging verbosity"},
+ {Name: "--init", Description: "Writes the default configuration file to cliff.toml"},
+ {Name: "--latest", Description: "Processes the commits starting from the latest tag"},
+ {Name: "--current", Description: "Processes the commits that belong to the current tag"},
+ {Name: "--unreleased", Description: "Processes the commits that do not belong to a tag"},
+ {Name: "--date-order", Description: "Sorts the tags chronologically"},
+ {Name: "--context", Description: "Prints changelog context as JSON"},
+ {Name: "--help", Description: "Prints help information"},
+ {Name: "--version", Description: "Prints version information"},
+ {Name: "--config", Description: "Sets the configuration file"},
+ {Name: "--workdir", Description: "Sets the working directory"},
+ {Name: "--repository", Description: "Sets the git repository"},
+ {Name: "--include-path", Description: "Sets the path to include related commits"},
+ {Name: "--exclude-path", Description: "Sets the path to exclude related commits"},
+ {Name: "--with-commit", Description: "Sets custom commit messages to include in the changelog"},
+ {Name: "--prepend", Description: "Prepends entries to the given changelog file"},
+ {Name: "--output", Description: "Writes output to the given file"},
+ {Name: "--tag", Description: "Sets the tag for the latest version"},
+ {Name: "--body", Description: "Sets the template for the changelog body"},
+ {Name: "--strip", Description: "Strips the given parts from the changelog"},
+ {Name: "--sort", Description: "Sets sorting of the commits inside sections"},
+ },
+ })
+}
diff --git a/commands/git/git_flow.go b/commands/git/git_flow.go
new file mode 100644
index 0000000..e0ba640
--- /dev/null
+++ b/commands/git/git_flow.go
@@ -0,0 +1,29 @@
+package git
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "git-flow",
+ Description: "Git extensions to provide high-level repository operations for Vincent Driessen's branching model",
+ Subcommands: []core.Subcommand{
+ {Name: "init", Description: "Initialize a new git repo with support for the branching model"},
+ {Name: "feature", Description: "List all feature branches"},
+ {Name: "start", Description: "Create a new feature branch"},
+ {Name: "name", Description: "The name of the new feature branch"},
+ {Name: "finish", Description: "Merge a feature branch into develop"},
+ {Name: "publish", Description: "Push a feature branch to the remote repository"},
+ {Name: "pull", Description: "Pull a feature branch from the remote repository"},
+ {Name: "origin", Description: "The name of the remote feature branch"},
+ {Name: "release", Description: "List all release branches"},
+ {Name: "hotfix", Description: "List all hotfix branches"},
+ {Name: "support", Description: "List all support branches"},
+ },
+ Options: []core.Option{
+ {Name: "-d", Description: "Use default branch naming conventions"},
+ {Name: "-f", Description: "Force setting of gitflow branches, even if already configured"},
+ },
+ })
+}
diff --git a/commands/git/git_profile.go b/commands/git/git_profile.go
new file mode 100644
index 0000000..2b163ec
--- /dev/null
+++ b/commands/git/git_profile.go
@@ -0,0 +1,19 @@
+package git
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "git-profile",
+ Description: "Use profile",
+ Subcommands: []core.Subcommand{
+ {Name: "use", Description: "Use a profile"},
+ {Name: "profile", Description: "Profile you want to apply in this repository"},
+ },
+ Options: []core.Option{
+ {Name: "--help", Description: "Help for git-profile script"},
+ },
+ })
+}
diff --git a/commands/git/git_quick_stats.go b/commands/git/git_quick_stats.go
new file mode 100644
index 0000000..f7e2cf5
--- /dev/null
+++ b/commands/git/git_quick_stats.go
@@ -0,0 +1,33 @@
+package git
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "git-quick-stats",
+ Description: "Show help for git-quick-stats",
+ Options: []core.Option{
+ {Name: "--help", Description: "Show help for git-quick-stats"},
+ {Name: "--suggest-reviewers", Description: "Show the best people to contact to review code"},
+ {Name: "--detailed-git-stats", Description: "Give a detailed list of git stats"},
+ {Name: "---git-stats-by-branch", Description: "Show detailed list of git stats by branch"},
+ {Name: "--changelogs", Description: "Show changelogs"},
+ {Name: "--changelogs-by-author", Description: "Show changelogs by author"},
+ {Name: "--my-daily-stats", Description: "Show your current daily stats"},
+ {Name: "--json-output", Description: "Save git log as a JSON formatted file to a specified area"},
+ {Name: "--branch-tree", Description: "Show an ASCII graph of the git repo branch history"},
+ {Name: "--branches-by-date", Description: "Show branches by date"},
+ {Name: "--contributors", Description: "See a list of everyone who contributed to the repo"},
+ {Name: "--commits-per-author", Description: "Displays a list of commits per author"},
+ {Name: "--commits-per-day", Description: "Displays a list of commits per day"},
+ {Name: "--commits-by-month", Description: "Displays a list of commits per month"},
+ {Name: "--commits-by-year", Description: "Displays a list of commits per year"},
+ {Name: "--commits-by-weekday", Description: "Displays a list of commits per weekday"},
+ {Name: "--commits-by-hour", Description: "Displays a list of commits per hour"},
+ {Name: "--commits-by-author-by-hour", Description: "Displays a list of commits per hour by author"},
+ {Name: "--commits-by-timezone", Description: "Displays a list of commits per timezone"},
+ },
+ })
+}
diff --git a/commands/git/github.go b/commands/git/github.go
new file mode 100644
index 0000000..30be086
--- /dev/null
+++ b/commands/git/github.go
@@ -0,0 +1,21 @@
+package git
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "github",
+ Description: "Open a git repository in GitHub Desktop",
+ Subcommands: []core.Subcommand{
+ {Name: "clone", Description: "Clone a repository"},
+ {Name: "open", Description: "Open a git repository in GitHub Desktop"},
+ {Name: "help", Description: "Show the help page for a command"},
+ },
+ Options: []core.Option{
+ {Name: "--help", Description: "Show the help page for a command"},
+ {Name: "--branch", Description: "The branch to checkout after cloning"},
+ },
+ })
+}
diff --git a/commands/git/svn.go b/commands/git/svn.go
new file mode 100644
index 0000000..52b36cc
--- /dev/null
+++ b/commands/git/svn.go
@@ -0,0 +1,35 @@
+package git
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "svn",
+ Description: "Specify a username ARG",
+ Subcommands: []core.Subcommand{
+ {Name: "help", Description: "Show help for svn"},
+ {Name: "subcommand", Description: "Help about specific subcommand"},
+ {Name: "status", Description: "Show the working tree status"},
+ {Name: "info", Description: "Show information about a local or remote item"},
+ {Name: "checkout", Description: "Check out a working copy from a repository"},
+ {Name: "repository", Description: "The repository you want to checkout"},
+ {Name: "commit", Description: "Commit to a repository"},
+ },
+ Options: []core.Option{
+ {Name: "--password", Description: "Specify a password ARG"},
+ {Name: "--password-from-stdin", Description: "Read password from stdin"},
+ {Name: "--no-auth-cache", Description: "Do not cache authentication tokens"},
+ {Name: "--non-interactive", Description: "Do interactive prompting even if standard input is not a terminal device"},
+ {Name: "--trust-server-cert", Description: "Specify a password ARG"},
+ {Name: "--trust-server-cert-failures", Description: "Specify a password ARG"},
+ {Name: "--config-dir", Description: "Read user configuration files from directory ARG"},
+ {Name: "--config-option", Description: "Specify a password ARG"},
+ {Name: "-m", Description: "Use the given message as the commit message"},
+ {Name: "--version", Description: "Show help for svn"},
+ {Name: "--verbose", Description: "Show help for svn"},
+ {Name: "--quiet", Description: "Show help for svn"},
+ },
+ })
+}
diff --git a/commands/golang/goctl.go b/commands/golang/goctl.go
new file mode 100644
index 0000000..d1412b8
--- /dev/null
+++ b/commands/golang/goctl.go
@@ -0,0 +1,96 @@
+package golang
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "goctl",
+ Description: "A cli tool to generate go-zero code",
+ Subcommands: []core.Subcommand{
+ {Name: "api", Description: "Generate api related files"},
+ {Name: "dart", Description: "Generate dart files for provided api in api file"},
+ {Name: "doc", Description: "Generate doc files"},
+ {Name: "format", Description: "Format api files"},
+ {Name: "go", Description: "Generate go files for provided api in yaml file"},
+ {Name: "java", Description: "Generate java files for provided api in api file"},
+ {Name: "kt", Description: "Generate kotlin code for provided api file"},
+ {Name: "new", Description: "Fast create api service"},
+ {Name: "plugin", Description: "Custom file generator"},
+ {Name: "ts", Description: "Generate ts files for provided api in api file"},
+ {Name: "validate", Description: "Validate api file"},
+ {Name: "bug", Description: "Report a bug"},
+ {Name: "completion", Description: "Generate the autocompletion script for the specified shell"},
+ {Name: "bash", Description: "Generate the autocompletion script for bash"},
+ {Name: "fish", Description: "Generate the autocompletion script for fish"},
+ {Name: "powershell", Description: "Generate the autocompletion script for powershell"},
+ {Name: "zsh", Description: "Generate the autocompletion script for zsh"},
+ {Name: "docker", Description: "Generate Dockerfile"},
+ {Name: "env", Description: "Check or edit goctl environment"},
+ {Name: "check", Description: "Detect goctl env and dependency tools"},
+ {Name: "install", Description: "Goctl env installation"},
+ {Name: "kube", Description: "Generate kubernetes files"},
+ {Name: "deploy", Description: "Generate deployment yaml file"},
+ {Name: "migrate", Description: "Migrate from tal-tech to zeromicro"},
+ {Name: "model", Description: "Generate model code"},
+ {Name: "mongo", Description: "Generate mongo model"},
+ {Name: "mysql", Description: "Generate mysql model"},
+ {Name: "datasource", Description: "Generate model from datasource"},
+ {Name: "ddl", Description: "Generate mysql model from ddl"},
+ {Name: "pg", Description: "Generate postgresql model"},
+ {Name: "quickstart", Description: "Quickly start a project"},
+ {Name: "rpc", Description: "Generate rpc code"},
+ {Name: "protoc", Description: "Generate grpc code"},
+ {Name: "template", Description: "Generate proto template"},
+ {Name: "clean", Description: "Clean the all cache templates"},
+ {Name: "init", Description: "Initialize the all templates(force update)"},
+ {Name: "revert", Description: "Revert the target template to the latest"},
+ {Name: "update", Description: "Update template of the target category to the latest"},
+ {Name: "upgrade", Description: "Upgrade goctl to latest version"},
+ {Name: "help", Description: "Help about any command"},
+ },
+ Options: []core.Option{
+ {Name: "--api", Description: "The api file"},
+ {Name: "--dir", Description: "The target dir"},
+ {Name: "--hostname", Description: "Hostname of the server"},
+ {Name: "--legacy", Description: "Legacy generator for flutter v1"},
+ {Name: "--o", Description: "The output markdown directory"},
+ {Name: "--declare", Description: "Use to skip check api types already declare"},
+ {Name: "--iu", Description: "Ignore update"},
+ {Name: "--stdin", Description: "Generate go files for provided api in yaml file"},
+ {Name: "--branch", Description: "The branch of the remote repo, it does work with --remote"},
+ {Name: "--home", Description: "Generate java files for provided api in api file"},
+ {Name: "--pkg", Description: "Define package name for kotlin file"},
+ {Name: "--plugin", Description: "The plugin file"},
+ {Name: "--style", Description: "Generate ts files for provided api in api file"},
+ {Name: "--caller", Description: "The web api caller"},
+ {Name: "--unwrap", Description: "Unwrap the webapi caller for import"},
+ {Name: "--webapi", Description: "The web api file path"},
+ {Name: "--remote", Description: "Report a bug"},
+ {Name: "--no-descriptions", Description: "Disable completion descriptions"},
+ {Name: "--base", Description: "The base image to build the docker image, default scratch"},
+ {Name: "--go", Description: "The directory that contains main function"},
+ {Name: "--version", Description: "The goctl builder golang image version"},
+ {Name: "--install", Description: "Install dependencies if not found"},
+ {Name: "--write", Description: "Edit goctl environment"},
+ {Name: "--force", Description: "Silent installation of non-existent dependencies"},
+ {Name: "--verbose", Description: "Enable log output"},
+ {Name: "--limitCpu", Description: "The limit cpu to deploy"},
+ {Name: "--limitMem", Description: "The limit memory to deploy"},
+ {Name: "--maxReplicas", Description: "The max replicas to deploy"},
+ {Name: "--minReplicas", Description: "The min replicas to deploy"},
+ {Name: "--name", Description: "The name of deployment (required)"},
+ {Name: "--namespace", Description: "The namespace of deployment (required)"},
+ {Name: "--nodePort", Description: "The nodePort of the deployment to expose"},
+ {Name: "--port", Description: "The port of the deployment to listen on pod (required)"},
+ {Name: "--requestCpu", Description: "The request cpu to deploy"},
+ {Name: "--requestMem", Description: "The request memory to deploy"},
+ {Name: "--revisions", Description: "The number of revision history to limit"},
+ {Name: "--secret", Description: "The secret to image pull from registry"},
+ {Name: "--serviceAccount", Description: "The ServiceAccount for the deployment"},
+ {Name: "--cache", Description: "Generate code with cache [optional]"},
+ {Name: "--url", Description: "Generate mysql model from ddl"},
+ },
+ })
+}
diff --git a/commands/golang/goreleaser.go b/commands/golang/goreleaser.go
new file mode 100644
index 0000000..1443b45
--- /dev/null
+++ b/commands/golang/goreleaser.go
@@ -0,0 +1,57 @@
+package golang
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "goreleaser",
+ Description: "Deliver Go binaries as fast and easily as possible",
+ Subcommands: []core.Subcommand{
+ {Name: "b", Description: "Builds the current project"},
+ {Name: "c", Description: "Checks if configuration is valid"},
+ {Name: "completion", Description: "Generate the autocompletion script for the specified shell"},
+ {Name: "bash", Description: "Generate the autocompletion script for bash"},
+ {Name: "fish", Description: "Generate the autocompletion script for fish"},
+ {Name: "powershell", Description: "Generate the autocompletion script for powershell"},
+ {Name: "zsh", Description: "Generate the autocompletion script for zsh"},
+ {Name: "hc", Description: "Checks if needed tools are installed"},
+ {Name: "i", Description: "Generates a .goreleaser.yaml file"},
+ {Name: "schema", Description: "Outputs goreleaser's JSON schema"},
+ {Name: "r", Description: "Releases the current project"},
+ {Name: "help", Description: "Help about any command"},
+ },
+ Options: []core.Option{
+ {Name: "--clean", Description: "Remove the dist folder before building"},
+ {Name: "--config", Description: "Load configuration from file"},
+ {Name: "--deprecated", Description: "Force print the deprecation message - tests only"},
+ {Name: "--id", Description: "Builds only the specified build ids"},
+ {Name: "--output", Description: "Amount tasks to run concurrently (default: number of CPUs)"},
+ {Name: "--rm-dist", Description: "Remove the dist folder before building"},
+ {Name: "--single-target", Description: "Skips global before hooks"},
+ {Name: "--skip-post-hooks", Description: "Skips all post-build hooks"},
+ {Name: "--skip-validate", Description: "Skips several sanity checks"},
+ {Name: "--snapshot", Description: "Generate an unversioned snapshot build, skipping all validations"},
+ {Name: "--timeout", Description: "Timeout to the entire build process"},
+ {Name: "--quiet", Description: "Quiet mode: no output"},
+ {Name: "--no-descriptions", Description: "Disable completion descriptions"},
+ {Name: "--auto-snapshot", Description: "Automatically sets --snapshot if the repository is dirty"},
+ {Name: "--fail-fast", Description: "Whether to abort the release publishing on the first error"},
+ {Name: "--parallelism", Description: "Amount tasks to run concurrently (default: number of CPUs)"},
+ {Name: "--release-footer", Description: "Load custom release notes footer from a markdown file"},
+ {Name: "--release-footer-tmpl", Description: "Load custom release notes header from a markdown file"},
+ {Name: "--release-header-tmpl", Description: "Removes the dist folder"},
+ {Name: "--skip", Description: "Skips announcing releases (implies --skip=validate)"},
+ {Name: "--skip-before", Description: "Skips global before hooks"},
+ {Name: "--skip-docker", Description: "Skips Docker Images/Manifests builds"},
+ {Name: "--skip-ko", Description: "Skips Ko builds"},
+ {Name: "--skip-publish", Description: "Skips publishing artifacts (implies --skip=announce)"},
+ {Name: "--skip-sbom", Description: "Skips cataloging artifacts"},
+ {Name: "--skip-sign", Description: "Skips signing artifacts"},
+ {Name: "--debug", Description: "Enable verbose mode"},
+ {Name: "--verbose", Description: "Enable verbose mode"},
+ {Name: "--help", Description: "Display help"},
+ },
+ })
+}
diff --git a/commands/js/asar.go b/commands/js/asar.go
new file mode 100644
index 0000000..8c58827
--- /dev/null
+++ b/commands/js/asar.go
@@ -0,0 +1,26 @@
+package js
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "asar",
+ Description: "A simple extensive tar-like archive format with indexing",
+ Subcommands: []core.Subcommand{
+ {Name: "pack", Description: "Create asar archive"},
+ {Name: "directory", Description: "The directory you want to archive"},
+ {Name: "output", Description: "The name of the output file"},
+ {Name: "list", Description: "List files of asar archive"},
+ {Name: "archive", Description: "The archive file"},
+ {Name: "extract-file", Description: "Extract one file from archive"},
+ {Name: "filename", Description: "The name of the file you want to extract"},
+ {Name: "extract", Description: "Extract archive"},
+ },
+ Options: []core.Option{
+ {Name: "--help", Description: "Show help for asar"},
+ {Name: "--V", Description: "Output the version number"},
+ },
+ })
+}
diff --git a/commands/js/astro.go b/commands/js/astro.go
new file mode 100644
index 0000000..94c0b67
--- /dev/null
+++ b/commands/js/astro.go
@@ -0,0 +1,41 @@
+package js
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "astro",
+ Description: "Add an integration",
+ Subcommands: []core.Subcommand{
+ {Name: "add", Description: "Add an integration"},
+ {Name: "build", Description: "Build your project and write it to disk"},
+ {Name: "check", Description: "Check your project for errors"},
+ {Name: "dev", Description: "Starts the development server"},
+ {Name: "docs", Description: "Open documentation in your web browser"},
+ {Name: "preview", Description: "Preview your build locally"},
+ {Name: "sync", Description: "Generate content collection types"},
+ {Name: "telemetry", Description: "Configure telemetry settings"},
+ {Name: "enable", Description: "Enable anonymous data collection"},
+ {Name: "disable", Description: "Disable anonymous data collection"},
+ {Name: "reset", Description: "Reset anonymous data collection settings"},
+ },
+ Options: []core.Option{
+ {Name: "--yes", Description: "Accept all prompts"},
+ {Name: "--drafts", Description: "Include Markdown draft pages in the build"},
+ {Name: "--watch", Description: "Watch Astro files for changes and re-run checks"},
+ {Name: "--port", Description: "Specify a port to listen on"},
+ {Name: "--host", Description: "Listen on all addresses, including LAN and public addresses"},
+ {Name: "--open", Description: "Automatically open the app in the browser on server start"},
+ {Name: "--config", Description: "Specify your config file"},
+ {Name: "--root", Description: "Specify your project root folder"},
+ {Name: "--site", Description: "Specify your project site"},
+ {Name: "--base", Description: "Specify your project base"},
+ {Name: "--verbose", Description: "Enable verbose logging"},
+ {Name: "--silent", Description: "Disable all logging"},
+ {Name: "--version", Description: "Show the version number and exit"},
+ {Name: "--help", Description: "Show help for astro"},
+ },
+ })
+}
diff --git a/commands/js/babel.go b/commands/js/babel.go
new file mode 100644
index 0000000..5a2163e
--- /dev/null
+++ b/commands/js/babel.go
@@ -0,0 +1,46 @@
+package js
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "babel",
+ Description: "A comma-separated list of preset names",
+ Options: []core.Option{
+ {Name: "-f", Description: "A comma-separated list of preset names"},
+ {Name: "--plugins", Description: "A comma-separated list of plugin names"},
+ {Name: "--config-file", Description: "Path to a .babelrc file to use"},
+ {Name: "--env-name", Description: "The project-root resolution mode"},
+ {Name: "--source-type", Description: "Whether or not to look up .babelrc and .babelignore files"},
+ {Name: "--ignore", Description: "List of glob paths to **not** compile"},
+ {Name: "--only", Description: "List of glob paths to **only** compile"},
+ {Name: "--no-highlight-code", Description: "Enable or disable ANSI syntax highlighting of code frames"},
+ {Name: "--no-comments", Description: "Write comments to generated output"},
+ {Name: "--retain-lines", Description: "Retain line numbers. This will result in really ugly code"},
+ {Name: "--compact", Description: "Do not include superfluous whitespace characters and line terminators"},
+ {Name: "--minified", Description: "Save as many bytes when printing. (false by default)"},
+ {Name: "--auxiliary-comment-before", Description: "Print a comment before any injected non-user code"},
+ {Name: "--auxiliary-comment-after", Description: "Print a comment after any injected non-user code"},
+ {Name: "-s", Description: "Set `file` on returned source map"},
+ {Name: "--source-file-name", Description: "Set `sources[0]` on returned source map"},
+ {Name: "--source-root", Description: "The root from which all sources are relative"},
+ {Name: "-x", Description: "Preserve the file extensions of the input files"},
+ {Name: "-w", Description: "Recompile files on changes"},
+ {Name: "--skip-initial-build", Description: "Do not compile files before watching"},
+ {Name: "-o", Description: "Compile all input files into a single file"},
+ {Name: "-d", Description: "Compile an input directory of modules into an output directory"},
+ {Name: "--relative", Description: "Compile into an output directory relative to input directory or file"},
+ {Name: "-D", Description: "When compiling a directory copy over non-compilable files"},
+ {Name: "--include-dotfiles", Description: "Include dotfiles when compiling and copying non-compilable files"},
+ {Name: "--no-copy-ignored", Description: "Exclude ignored files when copying non-compilable files"},
+ {Name: "--verbose", Description: "Log everything. This option conflicts with --quiet"},
+ {Name: "--quiet", Description: "Don't log anything. This option conflicts with --verbose"},
+ {Name: "--delete-dir-on-start", Description: "Delete the out directory before compilation"},
+ {Name: "--out-file-extension", Description: "Use a specific extension for the output files"},
+ {Name: "-V", Description: "Output the version number"},
+ {Name: "-h", Description: "Output usage information"},
+ },
+ })
+}
diff --git a/commands/js/blitz.go b/commands/js/blitz.go
new file mode 100644
index 0000000..625fc53
--- /dev/null
+++ b/commands/js/blitz.go
@@ -0,0 +1,49 @@
+package js
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "blitz",
+ Description: "Show help for command",
+ Subcommands: []core.Subcommand{
+ {Name: "build", Description: "Creates a production build"},
+ {Name: "codegen", Description: "Generates Routes Manifest"},
+ {Name: "console", Description: "Run the Blitz console REPL"},
+ {Name: "db", Description: "Run database commands"},
+ {Name: "command", Description: "Run specific db command"},
+ {Name: "dev", Description: "Start a development server"},
+ {Name: "export", Description: "Exports a static page"},
+ {Name: "generate", Description: "Generate new files for your Blitz project"},
+ {Name: "type", Description: "What files to generate"},
+ {Name: "help", Description: "Display help for blitz"},
+ {Name: "install", Description: "Install a Recipe into your Blitz app"},
+ {Name: "new", Description: "Create a new Blitz project"},
+ {Name: "name", Description: "Name of your new project"},
+ {Name: "prisma", Description: "Loads env variables then proxies all args to Prisma CLI"},
+ {Name: "routes", Description: "Display all Blitz URL Routes"},
+ {Name: "start", Description: "Start the production server"},
+ {Name: "autocomplete", Description: "Display autocomplete installation instructions"},
+ {Name: "shell", Description: "Shell type"},
+ },
+ Options: []core.Option{
+ {Name: "--help", Description: "Show help for command"},
+ {Name: "-p", Description: "Set port number"},
+ {Name: "-H", Description: "Set server hostname"},
+ {Name: "--inspect", Description: "Enable the Node.js inspector"},
+ {Name: "--no-incremental-build", Description: "Disable incremental build and start from a fresh cache"},
+ {Name: "-o", Description: "Set the output dir (defaults to 'out')"},
+ {Name: "-c", Description: "Show what files will be created without writing them to disk"},
+ {Name: "--all", Description: "See all commands in CLI"},
+ {Name: "--npm", Description: "Use npm as the package manager"},
+ {Name: "--yarn", Description: "Use yarn as the package manager"},
+ {Name: "--form", Description: "A form library"},
+ {Name: "-d", Description: "Show what files will be created without writing them to disk"},
+ {Name: "--no-git", Description: "Skip git repository creation"},
+ {Name: "--skip-upgrade", Description: "Skip blitz upgrade if outdated"},
+ {Name: "-r", Description: "Refresh cache (ignores displaying instructions)"},
+ },
+ })
+}
diff --git a/commands/js/browser_sync.go b/commands/js/browser_sync.go
new file mode 100644
index 0000000..5038305
--- /dev/null
+++ b/commands/js/browser_sync.go
@@ -0,0 +1,61 @@
+package js
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "browser-sync",
+ Description: "Keep multiple browsers & devices in sync when building websites",
+ Subcommands: []core.Subcommand{
+ {Name: "start", Description: "Start Browsersync"},
+ {Name: "init", Description: "Create a configuration file"},
+ {Name: "reload", Description: "Send a reload event over HTTP protocol"},
+ {Name: "recipe", Description: "Generate the files for a recipe"},
+ {Name: "ls", Description: "List recipes"},
+ },
+ Options: []core.Option{
+ {Name: "--version", Description: "Show version number"},
+ {Name: "--help", Description: "Show help"},
+ {Name: "-s", Description: "Run a Local server (uses your cwd as the web root)"},
+ {Name: "--cwd", Description: "Working directory"},
+ {Name: "--json", Description: "If true, certain logs will output as json only"},
+ {Name: "--serveStatic", Description: "Directories to serve static files from"},
+ {Name: "--port", Description: "Specify a port to use"},
+ {Name: "-p", Description: "Proxy an existing server"},
+ {Name: "--ws", Description: "Proxy mode only - enable websocket proxying"},
+ {Name: "-b", Description: "Choose which browser should be auto-opened"},
+ {Name: "-w", Description: "Watch files"},
+ {Name: "--ignore", Description: "Ignore patterns for file watchers"},
+ {Name: "-f", Description: "File paths to watch"},
+ {Name: "--index", Description: "Specify which file should be used as the index page"},
+ {Name: "--plugins", Description: "Load Browsersync plugins"},
+ {Name: "--extensions", Description: "Specify file extension fallbacks"},
+ {Name: "--startPath", Description: "Specify the start path for the opened browser"},
+ {Name: "--single", Description: "If true, the connect-history-api-fallback middleware will be added"},
+ {Name: "--https", Description: "Enable SSL for local development"},
+ {Name: "--directory", Description: "Show a directory listing for the server"},
+ {Name: "--xip", Description: "Use xip.io domain routing"},
+ {Name: "--tunnel", Description: "Use a public URL"},
+ {Name: "--open", Description: "Choose which URL is auto-opened (local, external or tunnel), or provide a url"},
+ {Name: "--cors", Description: "Add Access Control headers to every request"},
+ {Name: "-c", Description: "Specify a path to a configuration file"},
+ {Name: "--host", Description: "Specify a hostname to use"},
+ {Name: "--listen", Description: "Specify a hostname bind to (this will prevent binding to all interfaces)"},
+ {Name: "--logLevel", Description: "Set the logger output level (silent, info or debug)"},
+ {Name: "--reload-delay", Description: "Time in milliseconds to delay the reload event following file changes"},
+ {Name: "--reload-debounce", Description: "Specify a port for the UI to use"},
+ {Name: "--watchEvents", Description: "Specify which file events to respond to"},
+ {Name: "--no-notify", Description: "Disable the notify element in browsers"},
+ {Name: "--no-open", Description: "Don't open a new browser window"},
+ {Name: "--no-snippet", Description: "Disable the snippet injection"},
+ {Name: "--no-online", Description: "Force offline usage"},
+ {Name: "--no-ui", Description: "Don't start the user interface"},
+ {Name: "--no-ghost-mode", Description: "Disable Ghost Mode"},
+ {Name: "--no-inject-changes", Description: "Reload on every file change"},
+ {Name: "--no-reload-on-restart", Description: "Don't auto-reload all browsers following a restart"},
+ {Name: "-u", Description: "Provide the full URL to the running browsersync instance"},
+ },
+ })
+}
diff --git a/commands/js/build_storybook.go b/commands/js/build_storybook.go
new file mode 100644
index 0000000..e301299
--- /dev/null
+++ b/commands/js/build_storybook.go
@@ -0,0 +1,17 @@
+package js
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "build-storybook",
+ Description: "Storybook build CLI tools",
+ Options: []core.Option{
+ {Name: "-o", Description: "Directory where to store built files"},
+ {Name: "-w", Description: "Enables watch mode"},
+ {Name: "--loglevel", Description: "Controls level of logging during build"},
+ },
+ })
+}
diff --git a/commands/js/cordova.go b/commands/js/cordova.go
new file mode 100644
index 0000000..719ce05
--- /dev/null
+++ b/commands/js/cordova.go
@@ -0,0 +1,58 @@
+package js
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "cordova",
+ Description: "Print out the version of your cordova-cli install",
+ Subcommands: []core.Subcommand{
+ {Name: "create", Description: "Create a project"},
+ {Name: "help", Description: "Get help for a command"},
+ {Name: "telemetry", Description: "Turn telemetry collection on or off"},
+ {Name: "on", Description: "Turn telemetry collection on"},
+ {Name: "off", Description: "Turn telemetry collection off"},
+ {Name: "config", Description: "Set, get, delete, edit, and list global cordova options"},
+ {Name: "ls", Description: "Lists contents of config file"},
+ {Name: "edit", Description: "Opens the config file in an editor"},
+ {Name: "get", Description: "Echo the config value to stdout"},
+ {Name: "delete", Description: "Deletes the key from all configuration files"},
+ {Name: "info", Description: "Generate project information"},
+ {Name: "requirements", Description: "Checks and print out all the installation requirements for platforms specified"},
+ {Name: "platform", Description: "Platform name(s) to build. If not specified, all platforms are built"},
+ {Name: "add", Description: "Add specified platforms"},
+ {Name: "remove", Description: "Remove specified platforms"},
+ {Name: "update", Description: "Update specified platforms"},
+ {Name: "list", Description: "List all installed and available platforms"},
+ {Name: "plugin", Description: "Manage project plugins"},
+ {Name: "prepare", Description: "Copy files into platform(s) for building"},
+ {Name: "compile", Description: "Compile project for platform(s)"},
+ {Name: "build", Description: "Build project for platform(s) (prepare + compile)"},
+ {Name: "clean", Description: "Cleanup project from build artifacts"},
+ {Name: "run", Description: "Run project (including prepare && compile)"},
+ {Name: "serve", Description: "Run project with a local webserver (including prepare)"},
+ {Name: "port", Description: "Port to use for local web server"},
+ },
+ Options: []core.Option{
+ {Name: "-d", Description: "Print out the version of your cordova-cli install"},
+ {Name: "--no-update-notifier", Description: "Will disable updates check"},
+ {Name: "--nohooks", Description: "Suppress executing hooks (taking RegExp hook patterns as parameters)"},
+ {Name: "--no-telemetry", Description: "Disable telemetry collection for the current command"},
+ {Name: "--template", Description: "Use a custom template located locally, in NPM, or GitHub"},
+ {Name: "--nosave", Description: "Do not save"},
+ {Name: "--link", Description: "Remove specified platforms"},
+ {Name: "--save", Description: "Updates the version specified in **config.xml**"},
+ {Name: "--searchpath", Description: "Don't search the registry for plugins"},
+ {Name: "--debug", Description: "Build it for a device"},
+ {Name: "--emulator", Description: "Platform name(s) to build. If not specified, all platforms are built"},
+ {Name: "--list", Description: "Deploy a debug build. This is the default behavior unless --release is specified"},
+ {Name: "--release", Description: "Deploy a release build"},
+ {Name: "--noprepare", Description: "Skip preparing (available in Cordova v6.2 or later)"},
+ {Name: "--nobuild", Description: "Skip building"},
+ {Name: "--device", Description: "Deploy to a device"},
+ {Name: "--target", Description: "Run project with a local webserver (including prepare)"},
+ },
+ })
+}
diff --git a/commands/js/create_completion_spec.go b/commands/js/create_completion_spec.go
new file mode 100644
index 0000000..9cc8a8f
--- /dev/null
+++ b/commands/js/create_completion_spec.go
@@ -0,0 +1,19 @@
+package js
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "create-completion-spec",
+ Description: "Setup fig folder and create spec with the given name",
+ Subcommands: []core.Subcommand{
+ {Name: "help", Description: "Display help for command"},
+ },
+ Options: []core.Option{
+ {Name: "--here", Description: "Set if the spec should be created in the current folder"},
+ {Name: "-h", Description: "Display help for command"},
+ },
+ })
+}
diff --git a/commands/js/create_next_app.go b/commands/js/create_next_app.go
new file mode 100644
index 0000000..9e7811f
--- /dev/null
+++ b/commands/js/create_next_app.go
@@ -0,0 +1,19 @@
+package js
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "create-next-app",
+ Description: "Output the version number",
+ Options: []core.Option{
+ {Name: "-V", Description: "Output the version number"},
+ {Name: "--ts", Description: "Initialize as a TypeScript project"},
+ {Name: "--use-npm", Description: "Explicitly tell the CLI to bootstrap the app using npm"},
+ {Name: "--use-pnpm", Description: "Explicitly tell the CLI to bootstrap the app using pnpm"},
+ {Name: "-e", Description: "Display help for command"},
+ },
+ })
+}
diff --git a/commands/js/create_nx_workspace.go b/commands/js/create_nx_workspace.go
new file mode 100644
index 0000000..cc9c340
--- /dev/null
+++ b/commands/js/create_nx_workspace.go
@@ -0,0 +1,22 @@
+package js
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "create-nx-workspace",
+ Description: "The name of the workspace",
+ Options: []core.Option{
+ {Name: "--name", Description: "Workspace name (e.g., org name)"},
+ {Name: "--preset", Description: "Empty [an empty workspace with a layout that works best for building apps]"},
+ {Name: "--appName", Description: "The name of the application created by some presets"},
+ {Name: "--cli", Description: "CSS"},
+ {Name: "--interactive", Description: "Enable interactive mode when using presets (boolean)"},
+ {Name: "--packageManager", Description: "Package manager to use (npm, yarn, pnpm)"},
+ {Name: "--nx-cloud", Description: "Use Nx Cloud (boolean)"},
+ {Name: "--help", Description: "Show help for create-nx-workspace"},
+ },
+ })
+}
diff --git a/commands/js/create_react_app.go b/commands/js/create_react_app.go
new file mode 100644
index 0000000..3717791
--- /dev/null
+++ b/commands/js/create_react_app.go
@@ -0,0 +1,19 @@
+package js
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "create-react-app",
+ Description: "Creates a new React project",
+ Options: []core.Option{
+ {Name: "--template", Description: "Use npm to install dependencies (default when Yarn is not installed)"},
+ {Name: "--use-pnp", Description: "Use Yarn Plug'n'Play to create the app"},
+ {Name: "--scripts-version", Description: "Print additional logs"},
+ {Name: "-h", Description: "Output usage information"},
+ {Name: "-V", Description: "Output the version number"},
+ },
+ })
+}
diff --git a/commands/js/create_react_native_app.go b/commands/js/create_react_native_app.go
new file mode 100644
index 0000000..ad18b20
--- /dev/null
+++ b/commands/js/create_react_native_app.go
@@ -0,0 +1,20 @@
+package js
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "create-react-native-app",
+ Description: "Creates a new React Native project",
+ Options: []core.Option{
+ {Name: "--template", Description: "The path inside of a GitHub repo where the example lives"},
+ {Name: "--yes", Description: "Use the default options for creating a project"},
+ {Name: "--no-install", Description: "Skip installing npm packages or CocoaPods"},
+ {Name: "--use-npm", Description: "Use npm to install dependencies. (default when Yarn is not installed)"},
+ {Name: "-h", Description: "Output usage information"},
+ {Name: "-V", Description: "Output the version number"},
+ },
+ })
+}
diff --git a/commands/js/create_redwood_app.go b/commands/js/create_redwood_app.go
new file mode 100644
index 0000000..ac80ede
--- /dev/null
+++ b/commands/js/create_redwood_app.go
@@ -0,0 +1,23 @@
+package js
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "create-redwood-app",
+ Description: "Name of your Redwood project",
+ Options: []core.Option{
+ {Name: "--help", Description: "Show help"},
+ {Name: "--typescript", Description: "Generate a TypeScript project"},
+ {Name: "--overwrite", Description: "Create even if target directory isn't empty"},
+ {Name: "--telemetry", Description: "Enables sending telemetry events for this create"},
+ {Name: "--git-init", Description: "Initialize a git repository"},
+ {Name: "--commit-message", Description: "Commit message for the initial commit"},
+ {Name: "--yes", Description: "Skip prompts and use defaults"},
+ {Name: "--version", Description: "Show version number"},
+ {Name: "--yarn-install", Description: "Install node modules. Skip via --no-yarn-install"},
+ },
+ })
+}
diff --git a/commands/js/create_remix.go b/commands/js/create_remix.go
new file mode 100644
index 0000000..c0b8458
--- /dev/null
+++ b/commands/js/create_remix.go
@@ -0,0 +1,16 @@
+package js
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "create-remix",
+ Description: "Display help for command",
+ Options: []core.Option{
+ {Name: "-h", Description: "Display help for command"},
+ {Name: "-v", Description: "Display version for command"},
+ },
+ })
+}
diff --git a/commands/js/create_t3_app.go b/commands/js/create_t3_app.go
new file mode 100644
index 0000000..979271d
--- /dev/null
+++ b/commands/js/create_t3_app.go
@@ -0,0 +1,22 @@
+package js
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "create-t3-app",
+ Description: "The name of the application, as well as the name of the directory to create",
+ Options: []core.Option{
+ {Name: "--noGit", Description: "Boolean value if we're running in CI (default: false)"},
+ {Name: "--tailwind", Description: "Install Tailwind CSS"},
+ {Name: "--nextAuth", Description: "Install NextAuth.js"},
+ {Name: "--prisma", Description: "Install Prisma"},
+ {Name: "--trpc", Description: "Install tRPC"},
+ {Name: "-i", Description: "Explicitly tell the CLI to use a custom import alias"},
+ {Name: "-v", Description: "Display the version number"},
+ {Name: "--help", Description: "Display help for command"},
+ },
+ })
+}
diff --git a/commands/js/create_video.go b/commands/js/create_video.go
new file mode 100644
index 0000000..4c83fb3
--- /dev/null
+++ b/commands/js/create_video.go
@@ -0,0 +1,12 @@
+package js
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "create-video",
+ Description: "CLI used to create remotion video project",
+ })
+}
diff --git a/commands/js/create_vite.go b/commands/js/create_vite.go
new file mode 100644
index 0000000..de50688
--- /dev/null
+++ b/commands/js/create_vite.go
@@ -0,0 +1,12 @@
+package js
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "create-vite",
+ Description: "Create a new project powered by Vite",
+ })
+}
diff --git a/commands/js/create_web3_frontend.go b/commands/js/create_web3_frontend.go
new file mode 100644
index 0000000..4474d2a
--- /dev/null
+++ b/commands/js/create_web3_frontend.go
@@ -0,0 +1,18 @@
+package js
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "create-web3-frontend",
+ Description: "Quickly create a Next.js project with wagmi and TailwindCSS ready to go",
+ Options: []core.Option{
+ {Name: "--ts", Description: "Initialize as a TypeScript project"},
+ {Name: "--use-npm", Description: "Explicitly tell the CLI to bootstrap the app using npm"},
+ {Name: "--use-pnpm", Description: "Explicitly tell the CLI to bootstrap the app using pnpm"},
+ {Name: "-h", Description: "Display help for command"},
+ },
+ })
+}
diff --git a/commands/js/deno.go b/commands/js/deno.go
new file mode 100644
index 0000000..9e1eb1b
--- /dev/null
+++ b/commands/js/deno.go
@@ -0,0 +1,80 @@
+package js
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "deno",
+ Description: "A modern JavaScript and TypeScript runtime",
+ Subcommands: []core.Subcommand{
+ {Name: "bench", Description: "Run benchmarks"},
+ {Name: "bundle", Description: "Bundle module and dependencies into single file"},
+ {Name: "cache", Description: "Cache the dependencies"},
+ {Name: "check", Description: "Type-check the dependencies"},
+ {Name: "compile", Description: "UNSTABLE: Compile the script into a self contained executable"},
+ {Name: "completions", Description: "Generate shell completions"},
+ {Name: "coverage", Description: "Print coverage reports"},
+ {Name: "doc", Description: "Show documentation for a module"},
+ {Name: "eval", Description: "Eval script"},
+ {Name: "fmt", Description: "Format source files"},
+ {Name: "init", Description: "Initialize a new project"},
+ {Name: "info", Description: "Show info about cache or info related to source file"},
+ {Name: "install", Description: "Install script as an executable"},
+ {Name: "uninstall", Description: "Uninstall a script previously installed with deno install"},
+ {Name: "lsp", Description: "Start the language server"},
+ {Name: "lint", Description: "Lint source files"},
+ {Name: "repl", Description: "Read Eval Print Loop"},
+ {Name: "run", Description: "Run a JavaScript or TypeScript program"},
+ {Name: "task", Description: "Run a task defined in the configuration file"},
+ {Name: "test", Description: "Run tests"},
+ {Name: "types", Description: "Print runtime TypeScript declarations"},
+ {Name: "upgrade", Description: "Upgrade deno executable to given version"},
+ {Name: "vendor", Description: "Vendor remote modules into a local directory"},
+ {Name: "help", Description: "Print this message or the help of the given subcommand(s)"},
+ },
+ Options: []core.Option{
+ {Name: "--import-map", Description: "Load import map file"},
+ {Name: "-c", Description: "Specify the configuration file"},
+ {Name: "--no-check", Description: "Skip type-checking modules"},
+ {Name: "--check", Description: "Type-check modules"},
+ {Name: "-r", Description: "Reload source code cache (recompile TypeScript)"},
+ {Name: "--lock", Description: "Check the specified lock file"},
+ {Name: "--cert", Description: "Load certificate authority from PEM encoded file"},
+ {Name: "--allow-read", Description: "Allow file system read access"},
+ {Name: "--allow-write", Description: "Allow file system write access"},
+ {Name: "--allow-net", Description: "Allow network access"},
+ {Name: "--allow-env", Description: "Allow environment access"},
+ {Name: "--allow-run", Description: "Allow running subprocesses"},
+ {Name: "--allow-ffi", Description: "Allow loading dynamic libraries"},
+ {Name: "--location", Description: "Value of 'globalThis.location' used by some web APIs"},
+ {Name: "--v8-flags", Description: "Set V8 command line options"},
+ {Name: "--seed", Description: "Set the random number generator seed"},
+ {Name: "--ignore", Description: "Ignore files"},
+ {Name: "--filter", Description: "Run benchmarks with this string or pattern in the bench name"},
+ {Name: "-L", Description: "Set log level"},
+ {Name: "--no-remote", Description: "Do not resolve remote modules"},
+ {Name: "--no-config", Description: "Disable automatic loading of the configuration file"},
+ {Name: "--lock-write", Description: "Write lock file (use with --lock)"},
+ {Name: "--allow-hrtime", Description: "Allow high resolution time measurement"},
+ {Name: "-A", Description: "Allow all permissions"},
+ {Name: "--prompt", Description: "Deprecated: Fallback to prompt if required permission wasn't passed"},
+ {Name: "--no-prompt", Description: "Always throw if required permission wasn't passed"},
+ {Name: "--cached-only", Description: "Require that remote dependencies are already cached"},
+ {Name: "--compat", Description: "UNSTABLE: Node compatibility mode"},
+ {Name: "--watch", Description: "Watch for file changes and restart automatically"},
+ {Name: "--no-clear-screen", Description: "Do not clear terminal screen when under watch mode"},
+ {Name: "-h", Description: "Print help information"},
+ {Name: "--unstable", Description: "Enable unstable features and APIs"},
+ {Name: "-q", Description: "Suppress diagnostic output"},
+ {Name: "--remote", Description: "Type-check all modules, including remote"},
+ {Name: "-o", Description: "Output file (defaults to $PWD/)"},
+ {Name: "--target", Description: "Target OS architecture"},
+ {Name: "--include", Description: "Include source files in the report"},
+ {Name: "--exclude", Description: "Exclude source files from the report"},
+ {Name: "--output", Description: "Output file (defaults to stdout) for lcov"},
+ {Name: "--lcov", Description: "Output coverage report in lcov format"},
+ },
+ })
+}
diff --git a/commands/js/dotenv.go b/commands/js/dotenv.go
new file mode 100644
index 0000000..8553d26
--- /dev/null
+++ b/commands/js/dotenv.go
@@ -0,0 +1,18 @@
+package js
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "dotenv",
+ Description: "Loads environment variables from .env",
+ Options: []core.Option{
+ {Name: "-f", Description: "List of env files to parse"},
+ {Name: "-h", Description: "Display help"},
+ {Name: "-v", Description: "Show version"},
+ {Name: "-t", Description: "Create a template env file"},
+ },
+ })
+}
diff --git a/commands/js/electron.go b/commands/js/electron.go
new file mode 100644
index 0000000..997d3eb
--- /dev/null
+++ b/commands/js/electron.go
@@ -0,0 +1,18 @@
+package js
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "electron",
+ Description: "Build cross platform desktop apps with JavaScript, HTML and CSS",
+ Options: []core.Option{
+ {Name: "-i", Description: "Open a REPL to the main process"},
+ {Name: "-r", Description: "Module to preload"},
+ {Name: "-v", Description: "Print the version"},
+ {Name: "-a", Description: "Print the Node ABI version"},
+ },
+ })
+}
diff --git a/commands/js/elm.go b/commands/js/elm.go
new file mode 100644
index 0000000..2c4a390
--- /dev/null
+++ b/commands/js/elm.go
@@ -0,0 +1,32 @@
+package js
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "elm",
+ Description: "Fig spec for the Elm language cli",
+ Subcommands: []core.Subcommand{
+ {Name: "reactor", Description: "Start an Elm development server"},
+ {Name: "port", Description: "The port number"},
+ {Name: "package", Description: "The name of the package to install"},
+ {Name: "make", Description: "Build your Elm code"},
+ {Name: "output file", Description: "Name and location of output"},
+ {Name: "output json", Description: "Name and location of output"},
+ {Name: "bump", Description: "Bump the version of your package"},
+ {Name: "diff", Description: "See what changed between versions of a package"},
+ },
+ Options: []core.Option{
+ {Name: "--help", Description: "Show help for elm init"},
+ {Name: "--no-colors", Description: "Turn off colors in the repl"},
+ {Name: "--interpreter", Description: "Path to an alternate JS interpreter, such as Node or Deno"},
+ {Name: "--port", Description: "The port to access the development server on"},
+ {Name: "--debug", Description: "Compile in debug mode"},
+ {Name: "--optimize", Description: "Compile in production mode"},
+ {Name: "--output", Description: "Where to output the compiled code"},
+ {Name: "--docs", Description: "Generate a JSON file of documentation"},
+ },
+ })
+}
diff --git a/commands/js/elm_format.go b/commands/js/elm_format.go
new file mode 100644
index 0000000..35a5a4d
--- /dev/null
+++ b/commands/js/elm_format.go
@@ -0,0 +1,20 @@
+package js
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "elm-format",
+ Description: "Format your code in the Elm idiomatic way",
+ Options: []core.Option{
+ {Name: "--help", Description: "Show help for elm-format"},
+ {Name: "--output", Description: "Write output to FILE instead of overwriting the given source file"},
+ {Name: "--yes", Description: "Reply 'yes' to all automated prompts"},
+ {Name: "--validate", Description: "Check if files are formatted without changing them"},
+ {Name: "--stdin", Description: "Read from stdin, output to stdout"},
+ {Name: "--elm-version", Description: "The Elm version of the source files being formatted"},
+ },
+ })
+}
diff --git a/commands/js/elm_json.go b/commands/js/elm_json.go
new file mode 100644
index 0000000..e2778c7
--- /dev/null
+++ b/commands/js/elm_json.go
@@ -0,0 +1,31 @@
+package js
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "elm-json",
+ Description: "Deal with your elm.json",
+ Subcommands: []core.Subcommand{
+ {Name: "help", Description: "Prints help information or the help of the given subcommand(s)"},
+ {Name: "install", Description: "Install a package"},
+ {Name: "PACKAGE", Description: "Package to install, e.g. elm/core or elm/core@1.0.2 or elm/core@1"},
+ {Name: "new", Description: "Create a new elm.json file"},
+ {Name: "tree", Description: "List entire dependency graph as a tree"},
+ {Name: "uninstall", Description: "Uninstall a package"},
+ {Name: "upgrade", Description: "Bring your dependencies up to date"},
+ {Name: "INPUT", Description: "The elm.json file to upgrade [default: elm.json]"},
+ },
+ Options: []core.Option{
+ {Name: "--help", Description: "Prints help information"},
+ {Name: "--test", Description: "Install as a test-dependency"},
+ {Name: "--version", Description: "Prints version information"},
+ {Name: "--yes", Description: "Package to install, e.g. elm/core or elm/core@1.0.2 or elm/core@1"},
+ {Name: "--unsafe", Description: "Allow major versions bumps"},
+ {Name: "--offline", Description: "Enable offline mode, which means no HTTP traffic will happen"},
+ {Name: "--verbose", Description: "Sets the level of verbosity"},
+ },
+ })
+}
diff --git a/commands/js/elm_review.go b/commands/js/elm_review.go
new file mode 100644
index 0000000..0294515
--- /dev/null
+++ b/commands/js/elm_review.go
@@ -0,0 +1,40 @@
+package js
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "elm-review",
+ Description: "Prints a single JSON object",
+ Subcommands: []core.Subcommand{
+ {Name: "init", Description: "Initialize Elm Review in this directory"},
+ {Name: "suppress", Description: "Generate suppression files for rules that report many errors"},
+ {Name: "new-package", Description: "Creates an new project aimed to contain rules and to be published later"},
+ {Name: "new-rule", Description: "Adds a new rule to your review configuration or review package"},
+ },
+ Options: []core.Option{
+ {Name: "--help", Description: "Show help for elm-review init"},
+ {Name: "--config", Description: "Specify the path to the elm compiler"},
+ {Name: "--check-after-tests", Description: "Checks whether there are uncommitted suppression files"},
+ {Name: "--unsuppress", Description: "Include suppressed errors in the error report for all rules"},
+ {Name: "--unsuppress-rules", Description: "Include suppressed errors in the error report for all rules"},
+ {Name: "--compiler", Description: "Specify the path to the elm compiler"},
+ {Name: "--rules", Description: "Run with a subsection of the rules in the configuration"},
+ {Name: "--watch", Description: "Re-run elm-review automatically when your project or configuration changes"},
+ {Name: "--watch-code", Description: "Re-run elm-review automatically when your project changes"},
+ {Name: "--elmjson", Description: "Specify the path to the elm.json file of the project"},
+ {Name: "--template", Description: "Use the review configuration from a GitHub repository"},
+ {Name: "--version", Description: "Print the version of the elm-review CLI"},
+ {Name: "--debug", Description: "Add helpful information to debug your configuration or rules"},
+ {Name: "--report", Description: "Error reports will be in JSON format"},
+ {Name: "--no-details", Description: "Hide the details from error reports for a more compact view"},
+ {Name: "--ignore-dirs", Description: "Ignore the reports of all rules for the specified directories"},
+ {Name: "--ignore-files", Description: "Ignore the reports of all rules for the specified files"},
+ {Name: "--fix", Description: "Specify the path to elm-format"},
+ {Name: "--fix-limit", Description: "Limit the number of fixes applied in a single batch to N"},
+ {Name: "--extract", Description: "Disable colors in the output"},
+ },
+ })
+}
diff --git a/commands/js/esbuild.go b/commands/js/esbuild.go
new file mode 100644
index 0000000..4feffab
--- /dev/null
+++ b/commands/js/esbuild.go
@@ -0,0 +1,54 @@
+package js
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "esbuild",
+ Description: "An extremely fast JavaScript bundler",
+ Options: []core.Option{
+ {Name: "--bundle", Description: "Bundle all dependencies into the output files"},
+ {Name: "--define", Description: "Replace variable names with a literal value, eg. --define:DEBUG=true"},
+ {Name: "--external", Description: "Exclude modules from the build"},
+ {Name: "--format", Description: "The output format"},
+ {Name: "--loader", Description: "For a given file extension, specify a loader"},
+ {Name: "--minify", Description: "Minify the output (sets all the --minify-* options)"},
+ {Name: "--outdir", Description: "The output directory for multiple entrypoints"},
+ {Name: "--outfile", Description: "The output file for one entrypoint"},
+ {Name: "--platform", Description: "The platform target"},
+ {Name: "--serve", Description: "Start a local HTTP server on this host:port"},
+ {Name: "--splitting", Description: "Enable code splitting"},
+ {Name: "--target", Description: "Rebuild on file system changes"},
+ {Name: "--allow-overwrite", Description: "Allow output files to overwrite input files"},
+ {Name: "--analyze", Description: "Print a report about the contents of the bundle"},
+ {Name: "--asset-names", Description: "Path template for 'file' loader files"},
+ {Name: "--banner", Description: "Text to be prepended to each output file type"},
+ {Name: "--charset", Description: "Use UTF-8 instead of escaped codepoints in ASCII"},
+ {Name: "--chunk-names", Description: "Path template to use for code splitting chunks"},
+ {Name: "--color", Description: "Force use of terminal colors"},
+ {Name: "--drop", Description: "Remove certain constructs"},
+ {Name: "--entry-names", Description: "Path template to use for entry point output paths"},
+ {Name: "--footer", Description: "Text to be appended to each file type"},
+ {Name: "--global-name", Description: "The name of the global if using --format=iife"},
+ {Name: "--ignore-annotations", Description: "Enable this to work with packages that have incorrect tree-shaking annotations"},
+ {Name: "--inject", Description: "Import the file into all input files, automatically replace matching globals"},
+ {Name: "--jsx-factory", Description: "What to use for the JSX factory"},
+ {Name: "--jsx-fragment", Description: "What to use for the JS Fragment factory"},
+ {Name: "--jsx", Description: "Preserve JSX instead of transforming"},
+ {Name: "--jsx-dev", Description: "Toggles development mode for the automatic runtime"},
+ {Name: "--jsx-import-source", Description: "Overrides the root import for runtime functions (default: react)"},
+ {Name: "--keep-names", Description: "Preserve 'name' on functions and classes"},
+ {Name: "--legal-comments", Description: "Where to place legal comments"},
+ {Name: "--log-level", Description: "Set the log level"},
+ {Name: "--log-limit", Description: "Maximum message count, 0 to disable"},
+ {Name: "--log-override", Description: "For a particular identifier, set the log level"},
+ {Name: "--main-fields", Description: "Override the main file order in package.json"},
+ {Name: "--mangle-cache", Description: "Save 'mangle props' decisions to a JSON file"},
+ {Name: "--mangle-props", Description: "Rename all properties matching a regular expression"},
+ {Name: "--mangle-quoted", Description: "Enable mangling (renaming) quoted properties"},
+ {Name: "--metafile", Description: "Write metadata about the build to a JSON file"},
+ },
+ })
+}
diff --git a/commands/js/eslint.go b/commands/js/eslint.go
new file mode 100644
index 0000000..0a55b75
--- /dev/null
+++ b/commands/js/eslint.go
@@ -0,0 +1,49 @@
+package js
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "eslint",
+ Description: "Pluggable JavaScript linter",
+ Options: []core.Option{
+ {Name: "--no-eslintrc", Description: "Disable use of configuration from .eslintrc.*"},
+ {Name: "-c", Description: "Use this configuration, overriding .eslintrc.* config options if present"},
+ {Name: "--env", Description: "Specify environments"},
+ {Name: "--ext", Description: "Specify JavaScript file extensions"},
+ {Name: "--global", Description: "Define global variables"},
+ {Name: "--parser", Description: "Specify the parser to be used"},
+ {Name: "--parser-options", Description: "Specify parser options"},
+ {Name: "--resolve-plugins-relative-to", Description: "A folder where plugins should be resolved from"},
+ {Name: "--rulesdir", Description: "Use additional rules from this directory"},
+ {Name: "--plugin", Description: "Specify plugins"},
+ {Name: "--rule", Description: "Specify rules"},
+ {Name: "--fix", Description: "Automatically fix problems"},
+ {Name: "--fix-dry-run", Description: "Automatically fix problems without saving the changes to the file system"},
+ {Name: "--fix-type", Description: "Specify the types of fixes to apply"},
+ {Name: "--ignore-path", Description: "Specify path of ignore file"},
+ {Name: "--no-ignore", Description: "Disable use of ignore files and patterns"},
+ {Name: "--ignore-pattern", Description: "Pattern of files to ignore (in addition to those in .eslintignore)"},
+ {Name: "--stdin", Description: "Lint code provided on "},
+ {Name: "--stdin-filename", Description: "Specify filename to process STDIN as"},
+ {Name: "--quiet", Description: "Report errors only"},
+ {Name: "--max-warnings", Description: "Number of warnings to trigger nonzero exit code"},
+ {Name: "-o", Description: "Specify file to write report to"},
+ {Name: "-f", Description: "Use a specific output format"},
+ {Name: "--color", Description: "Force enabling of color"},
+ {Name: "--no-color", Description: "Force disabling of color"},
+ {Name: "--no-inline-config", Description: "Prevent comments from changing config or rules"},
+ {Name: "--cache", Description: "Only check changed files"},
+ {Name: "--cache-location", Description: "Path to the cache file or directory"},
+ {Name: "--cache-strategy", Description: "Strategy to use for detecting changed files"},
+ {Name: "--init", Description: "Run config initialization wizard"},
+ {Name: "--env-info", Description: "Output execution environment information"},
+ {Name: "--debug", Description: "Output debugging information"},
+ {Name: "-h", Description: "Show help"},
+ {Name: "-v", Description: "Output the version number"},
+ {Name: "--print-config", Description: "Print the configuration for the give file"},
+ },
+ })
+}
diff --git a/commands/js/expo.go b/commands/js/expo.go
new file mode 100644
index 0000000..930696a
--- /dev/null
+++ b/commands/js/expo.go
@@ -0,0 +1,54 @@
+package js
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "expo",
+ Description: "Tools for creating, running, and deploying Universal Expo and React Native apps",
+ Options: []core.Option{
+ {Name: "-h", Description: "Output usage information"},
+ {Name: "-V", Description: "Output the version number"},
+ {Name: "-u", Description: "Username"},
+ {Name: "-p", Description: "Password"},
+ {Name: "--otp", Description: "One-time password from your 2FA device"},
+ {Name: "-c", Description: "Clear all credentials stored on Expo servers"},
+ {Name: "--clear-dist-cert", Description: "Remove Distribution Certificate stored on Expo servers"},
+ {Name: "--clear-push-key", Description: "Remove Push Notifications Key stored on Expo servers"},
+ {Name: "--clear-push-cert", Description: "Remove Provisioning Profile stored on Expo servers"},
+ {Name: "-r", Description: "Type of build: [archive|simulator]"},
+ {Name: "--release-channel", Description: "Pull from specified release channel"},
+ {Name: "--no-publish", Description: "Disable automatic publishing before building"},
+ {Name: "--no-wait", Description: "Exit immediately after scheduling build"},
+ {Name: "--team-id", Description: "Apple Team ID"},
+ {Name: "--dist-p12-path", Description: "Push Key ID (ex: 123AB4C56D)"},
+ {Name: "--push-p8-path", Description: "Path to your Push Key .p8 file"},
+ {Name: "--provisioning-profile-path", Description: "Path to your Provisioning Profile"},
+ {Name: "--public-url", Description: "The URL of an externally hosted manifest (for self-hosted apps)"},
+ {Name: "--skip-credentials-check", Description: "Skip checking credentials"},
+ {Name: "--skip-workflow-check", Description: "Skip warning about build service bare workflow limitations"},
+ {Name: "--config", Description: "Deprecated: Use app.config.js to switch config files instead"},
+ {Name: "--keystore-path", Description: "Path to your Keystore: *.jks"},
+ {Name: "--keystore-alias", Description: "Keystore Alias"},
+ {Name: "--generate-keystore", Description: "[deprecated] Generate Keystore if one does not exist"},
+ {Name: "-t", Description: "Type of build: [app-bundle|apk]"},
+ {Name: "--no-pwa", Description: "Turns dev flag on before bundling"},
+ {Name: "--apple-id", Description: "Deprecated: Use app.config.js to switch config files instead"},
+ {Name: "--latest", Description: "Install the latest version of Expo Go, ignoring the current project version"},
+ {Name: "-d", Description: "Device name to install the client on"},
+ {Name: "-f", Description: "Allows replacing existing files"},
+ {Name: "--offline", Description: "Allows this command to run while offline"},
+ {Name: "--no-install", Description: "Skip installing npm packages and CocoaPods"},
+ {Name: "--npm", Description: "Use npm to install dependencies. (default when Yarn is not installed)"},
+ {Name: "--clean", Description: "Delete the native folders and regenerate them before applying changes"},
+ {Name: "--template", Description: "Platforms to sync: ios, android, all. Default: all"},
+ {Name: "--skip-dependency-update", Description: "Preserves versions of listed packages in package.json (comma separated list)"},
+ {Name: "--dest", Description: "Destination directory for assets"},
+ {Name: "--platform", Description: "Detached project platform"},
+ {Name: "--skipXcodeConfig", Description: "[iOS only] if true, do not configure Xcode project"},
+ {Name: "--output-dir", Description: "The directory to export the static files to"},
+ },
+ })
+}
diff --git a/commands/js/expo_cli.go b/commands/js/expo_cli.go
new file mode 100644
index 0000000..ef2d272
--- /dev/null
+++ b/commands/js/expo_cli.go
@@ -0,0 +1,54 @@
+package js
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "expo-cli",
+ Description: "Tools for creating, running, and deploying Universal Expo and React Native apps",
+ Options: []core.Option{
+ {Name: "-h", Description: "Output usage information"},
+ {Name: "-V", Description: "Output the version number"},
+ {Name: "-u", Description: "Username"},
+ {Name: "-p", Description: "Password"},
+ {Name: "--otp", Description: "One-time password from your 2FA device"},
+ {Name: "-c", Description: "Clear all credentials stored on Expo servers"},
+ {Name: "--clear-dist-cert", Description: "Remove Distribution Certificate stored on Expo servers"},
+ {Name: "--clear-push-key", Description: "Remove Push Notifications Key stored on Expo servers"},
+ {Name: "--clear-push-cert", Description: "Remove Provisioning Profile stored on Expo servers"},
+ {Name: "-r", Description: "Type of build: [archive|simulator]"},
+ {Name: "--release-channel", Description: "Pull from specified release channel"},
+ {Name: "--no-publish", Description: "Disable automatic publishing before building"},
+ {Name: "--no-wait", Description: "Exit immediately after scheduling build"},
+ {Name: "--team-id", Description: "Apple Team ID"},
+ {Name: "--dist-p12-path", Description: "Push Key ID (ex: 123AB4C56D)"},
+ {Name: "--push-p8-path", Description: "Path to your Push Key .p8 file"},
+ {Name: "--provisioning-profile-path", Description: "Path to your Provisioning Profile"},
+ {Name: "--public-url", Description: "The URL of an externally hosted manifest (for self-hosted apps)"},
+ {Name: "--skip-credentials-check", Description: "Skip checking credentials"},
+ {Name: "--skip-workflow-check", Description: "Skip warning about build service bare workflow limitations"},
+ {Name: "--config", Description: "Deprecated: Use app.config.js to switch config files instead"},
+ {Name: "--keystore-path", Description: "Path to your Keystore: *.jks"},
+ {Name: "--keystore-alias", Description: "Keystore Alias"},
+ {Name: "--generate-keystore", Description: "[deprecated] Generate Keystore if one does not exist"},
+ {Name: "-t", Description: "Type of build: [app-bundle|apk]"},
+ {Name: "--no-pwa", Description: "Turns dev flag on before bundling"},
+ {Name: "--apple-id", Description: "Deprecated: Use app.config.js to switch config files instead"},
+ {Name: "--latest", Description: "Install the latest version of Expo Go, ignoring the current project version"},
+ {Name: "-d", Description: "Device name to install the client on"},
+ {Name: "-f", Description: "Allows replacing existing files"},
+ {Name: "--offline", Description: "Allows this command to run while offline"},
+ {Name: "--no-install", Description: "Skip installing npm packages and CocoaPods"},
+ {Name: "--npm", Description: "Use npm to install dependencies. (default when Yarn is not installed)"},
+ {Name: "--clean", Description: "Delete the native folders and regenerate them before applying changes"},
+ {Name: "--template", Description: "Platforms to sync: ios, android, all. Default: all"},
+ {Name: "--skip-dependency-update", Description: "Preserves versions of listed packages in package.json (comma separated list)"},
+ {Name: "--dest", Description: "Destination directory for assets"},
+ {Name: "--platform", Description: "Detached project platform"},
+ {Name: "--skipXcodeConfig", Description: "[iOS only] if true, do not configure Xcode project"},
+ {Name: "--output-dir", Description: "The directory to export the static files to"},
+ },
+ })
+}
diff --git a/commands/js/ganache_cli.go b/commands/js/ganache_cli.go
new file mode 100644
index 0000000..2937d50
--- /dev/null
+++ b/commands/js/ganache_cli.go
@@ -0,0 +1,34 @@
+package js
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "ganache-cli",
+ Description: "Fast Ethereum RPC client",
+ Options: []core.Option{
+ {Name: "-a", Description: "Specify the number of accounts to generate at startup"},
+ {Name: "-e", Description: "Amount of ether to assign each test account. Default is 100"},
+ {Name: "-b", Description: "Generate deterministic addresses based on a pre-defined mnemonic"},
+ {Name: "-n", Description: "Lock available accounts by default (good for third party transaction signing)"},
+ {Name: "-m", Description: "Port number to listen on. Defaults to 8545"},
+ {Name: "-h", Description: "Use arbitrary data to generate the HD wallet mnemonic to be used"},
+ {Name: "-g", Description: "The price of gas in wei (defaults to 20000000000)"},
+ {Name: "-l", Description: "The block gas limit (defaults to 0x6691b7)"},
+ {Name: "--callGasLimit", Description: "Sets the transaction gas limit for eth_call and eth_estimateGas calls"},
+ {Name: "-k", Description: "Allows users to specify which hardfork should be used"},
+ {Name: "-f", Description: "Output VM opcodes for debugging"},
+ {Name: "--mem", Description: "Output ganache-cli memory usage statistics. This replaces normal output"},
+ {Name: "-q", Description: "Run ganache-cli without any logs"},
+ {Name: "-?", Description: "Display help information"},
+ {Name: "--version", Description: "Display the version of ganache-cli"},
+ {Name: "--account_keys_path", Description: "Specifies a file to save accounts and private keys to, for testing"},
+ {Name: "--noVMErrorsOnRPCResponse", Description: "Do not transmit transaction failures as RPC errors"},
+ {Name: "--allowUnlimitedContractSize", Description: "Allows unlimited contract sizes while debugging"},
+ {Name: "--keepAliveTimeout", Description: "Sets the HTTP server's keepAliveTimeout in milliseconds"},
+ {Name: "-t", Description: "Date (ISO 8601) that the first block should start"},
+ },
+ })
+}
diff --git a/commands/js/gatsby.go b/commands/js/gatsby.go
new file mode 100644
index 0000000..d742be3
--- /dev/null
+++ b/commands/js/gatsby.go
@@ -0,0 +1,37 @@
+package js
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "gatsby",
+ Description: "Set host. Defaults to localhost",
+ Subcommands: []core.Subcommand{
+ {Name: "develop", Description: "Start the Gatsby development server"},
+ {Name: "build", Description: "Compile your application and make it ready for deployment"},
+ {Name: "serve", Description: "Serve the production build of your site for testing"},
+ {Name: "clean", Description: "Wipe out the cache (.cache folder) and public directories"},
+ {Name: "info", Description: "Get helpful environment information"},
+ {Name: "plugin", Description: "Run commands pertaining to gatsby plugins"},
+ {Name: "docs", Description: "Documentation about using and creating plugins"},
+ {Name: "repl", Description: "Gatsby will prompt you to type in commands and explore"},
+ },
+ Options: []core.Option{
+ {Name: "-H", Description: "Set host. Defaults to localhost"},
+ {Name: "-p", Description: "Set port. Defaults to env.PORT or 8000"},
+ {Name: "-o", Description: "Open the site in your (default) browser for you"},
+ {Name: "-S", Description: "Use HTTPS"},
+ {Name: "--inspect", Description: "Opens a port for debugging"},
+ {Name: "--prefix-paths", Description: "Build site with link paths prefixed (set pathPrefix in your config)"},
+ {Name: "--no-uglify", Description: "Build site without uglifying JS bundles (for debugging)"},
+ {Name: "--profile", Description: "Build site with react profiling"},
+ {Name: "--open-tracing-config-file", Description: "Use Tracer configuration file"},
+ {Name: "--graphql-tracing", Description: "Trace every graphql resolver, may have performance implications"},
+ {Name: "--no-color", Description: "Disables colored terminal output"},
+ {Name: "-C", Description: "Copy environment information to your clipboard"},
+ {Name: "-v", Description: "View your current Gatsby CLI version"},
+ },
+ })
+}
diff --git a/commands/js/hardhat.go b/commands/js/hardhat.go
new file mode 100644
index 0000000..127e41e
--- /dev/null
+++ b/commands/js/hardhat.go
@@ -0,0 +1,40 @@
+package js
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "hardhat",
+ Description: "Ethereum development environment",
+ Subcommands: []core.Subcommand{
+ {Name: "accounts", Description: "Prints the list of accounts"},
+ {Name: "check", Description: "Check whatever you need"},
+ {Name: "clean", Description: "Clears the cache and deletes all artifacts"},
+ {Name: "compile", Description: "Compiles the entire project, building all artifacts"},
+ {Name: "console", Description: "Opens a hardhat console"},
+ {Name: "flatten", Description: "Flattens and prints contracts and their dependencies"},
+ {Name: "help", Description: "Prints this message"},
+ {Name: "node", Description: "Starts a JSON-RPC server on top of Hardhat Network"},
+ {Name: "run", Description: "Runs a user-defined script after compiling the project"},
+ {Name: "test", Description: "Runs mocha tests"},
+ },
+ Options: []core.Option{
+ {Name: "--emoji", Description: "Use emoji in messages"},
+ {Name: "--max-memory", Description: "The maximum amount of memory that Hardhat can use"},
+ {Name: "--help", Description: "Shows the help text or task's help if name is provided"},
+ {Name: "--network", Description: "The network to connect to"},
+ {Name: "--verbose", Description: "Enables Hardhat verbose logging"},
+ {Name: "--version", Description: "Shows hardhat's version"},
+ {Name: "--global", Description: "Clear the global cache"},
+ {Name: "--force", Description: "Force compilation ignoring cache"},
+ {Name: "--quiet", Description: "Makes the compilation process less verbose"},
+ {Name: "--no-compile", Description: "Don't compile before running this task"},
+ {Name: "--fork", Description: "The URL of the JSON-RPC server to fork from"},
+ {Name: "--fork-block-number", Description: "The block number to fork from"},
+ {Name: "--hostname", Description: "The host to which to bind to for new connections"},
+ {Name: "--port", Description: "The port on which to listen for new connections (default: 8545)"},
+ },
+ })
+}
diff --git a/commands/js/ionic.go b/commands/js/ionic.go
new file mode 100644
index 0000000..90b576a
--- /dev/null
+++ b/commands/js/ionic.go
@@ -0,0 +1,91 @@
+package js
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "ionic",
+ Description: "Target engine (e.g. browser, cordova)",
+ Subcommands: []core.Subcommand{
+ {Name: "completion", Description: "Enables tab-completion for Ionic CLI commands"},
+ {Name: "id", Description: "The Appflow ID of the app to link (e.g. a1b2c3d4)"},
+ {Name: "email", Description: "Your email address"},
+ {Name: "password", Description: "Your password"},
+ {Name: "logout", Description: "Log out of Ionic"},
+ {Name: "signup", Description: "Create an Ionic account"},
+ {Name: "template", Description: "The starter template to use (e.g. blank, tabs; use --list to see all)"},
+ {Name: "config", Description: "Config commands for Ionic"},
+ {Name: "property", Description: "The property name you wish to get"},
+ {Name: "value", Description: "The new value of the given property"},
+ {Name: "capacitor", Description: "Capacitor commands Ionic"},
+ {Name: "platform", Description: "The platform to add (e.g. android, ios)"},
+ {Name: "configuration", Description: "Specify the configuration to use"},
+ {Name: "deploy", Description: "AppFlow deploy commands for Ionic"},
+ {Name: "manifest", Description: "Generates a manifest file for the deploy service from a built app directory"},
+ {Name: "git", Description: "Git commands for Ionic"},
+ {Name: "remote", Description: "Adds/updates the Appflow git remote to your local Ionic app"},
+ {Name: "package", Description: "Package commands for Ionic"},
+ {Name: "type", Description: "The build type (debug, release, development, ad-hoc, app-store, enterprise)"},
+ {Name: "build-id", Description: "The build id of the desired successful package build"},
+ {Name: "destination", Description: "The destination to deploy the build artifact to the app store"},
+ {Name: "ssl", Description: "SSL commands for Ionic"},
+ {Name: "ssh", Description: "SSH commands for Ionic"},
+ {Name: "pubkey-path", Description: "Location of public key file to add to Ionic"},
+ {Name: "key-id", Description: "The ID of the public key to delete"},
+ {Name: "key-path", Description: "Destination of private key file"},
+ {Name: "setup", Description: "Setup your Ionic SSH keys automatically"},
+ {Name: "doctor", Description: "Doctor commands for Ionic"},
+ {Name: "list", Description: "List all issues and their identifiers"},
+ {Name: "integrations", Description: "Integration commands for Ionic"},
+ {Name: "name", Description: "The integration to disable (e.g. capacitor, cordova, enterprise)"},
+ {Name: "enterprise", Description: "Enterprise commands for Ionic"},
+ {Name: "cordova", Description: "Cordova commands for Ionic"},
+ {Name: "action", Description: "Add, remove, or update a platform; ls, check, or save all project platforms"},
+ {Name: "plugin", Description: "The name of the plugin (corresponds to add and remove)"},
+ },
+ Options: []core.Option{
+ {Name: "--engine", Description: "Target engine (e.g. browser, cordova)"},
+ {Name: "--platform", Description: "Target platform on chosen engine (e.g. ios, android)"},
+ {Name: "--prod", Description: "Flag to use the production configuration"},
+ {Name: "--configuration", Description: "Specify the configuration to use"},
+ {Name: "--source-map", Description: "Output source maps"},
+ {Name: "--watch", Description: "Rebuild when files change"},
+ {Name: "--browser", Description: "Specifies the browser to use (safari, firefox, google chrome)"},
+ {Name: "--json", Description: "Print system/environment info in JSON format"},
+ {Name: "--type", Description: "Type of project (e.g. angular, react, vue, custom)"},
+ {Name: "--force", Description: "Initialize even if a project already exists"},
+ {Name: "--multi-app", Description: "Initialize a multi-app project"},
+ {Name: "--project-id", Description: "Specify a slug for your app"},
+ {Name: "--default", Description: "Mark the initialized app as the default project"},
+ {Name: "--cordova", Description: "Only perform the repair steps for Cordova platforms and plugins"},
+ {Name: "--external", Description: "Host dev server on all network interfaces (i.e. --host=0.0.0.0)"},
+ {Name: "--host", Description: "Use specific host for the dev server"},
+ {Name: "--port", Description: "Use specific port for the dev server"},
+ {Name: "--public-host", Description: "The host used for the browser or web view"},
+ {Name: "--no-livereload", Description: "Do not spin up dev server--just serve files"},
+ {Name: "--lab-host", Description: "Use specific host for Ionic Lab server"},
+ {Name: "--lab-port", Description: "Use specific port for Ionic Lab server"},
+ {Name: "--no-open", Description: "Do not open a browser window"},
+ {Name: "--browseroption", Description: "Specifies a path to open to (/#/tab/dash)"},
+ {Name: "--lab", Description: "Test your apps on multiple platform types in the browser"},
+ {Name: "--ssl", Description: "Use HTTPS for the dev server"},
+ {Name: "--consolelogs", Description: "Print app console logs to the terminal"},
+ {Name: "--consolelogs-port", Description: "Use specific port for console logs server"},
+ {Name: "--list", Description: "List available starter templates"},
+ {Name: "--capacitor", Description: "Include Capacitor integration"},
+ {Name: "--no-deps", Description: "Do not install npm/yarn dependencies"},
+ {Name: "--no-git", Description: "Do not initialize a git repo"},
+ {Name: "--link", Description: "Connect your new app to Ionic"},
+ {Name: "--id", Description: "Specify an Ionic App ID to link"},
+ {Name: "--package-id", Description: "Specify the bundle ID/application ID for your app (reverse-DNS notation)"},
+ {Name: "--global", Description: "Use global CLI config"},
+ {Name: "--root", Description: "Operate on root of ionic.config.json"},
+ {Name: "--no-build", Description: "Do not invoke Ionic build"},
+ {Name: "--target", Description: "Deploy to a specific device by its ID (use --list to see all)"},
+ {Name: "--open", Description: "Open native IDE instead of using capacitor run"},
+ {Name: "--livereload", Description: "Spin up dev server to live-reload www files"},
+ },
+ })
+}
diff --git a/commands/js/jest.go b/commands/js/jest.go
new file mode 100644
index 0000000..63bbc08
--- /dev/null
+++ b/commands/js/jest.go
@@ -0,0 +1,54 @@
+package js
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "jest",
+ Description: "A delightful JavaScript Testing Framework with a focus on simplicity",
+ Options: []core.Option{
+ {Name: "--bail", Description: "Whether to use the cache"},
+ {Name: "--no-cache", Description: "Whether to use the cache"},
+ {Name: "--changedFilesWithAncestor", Description: "Runs tests related to the changes since the provided branch or commit hash"},
+ {Name: "--ci", Description: "Deletes the Jest cache directory and then exits without running tests"},
+ {Name: "--collectCoverageFrom", Description: "Forces test results output highlighting even if stdout is not a TTY"},
+ {Name: "--config", Description: "The path to a Jest config file specifying how to find and execute tests"},
+ {Name: "--coverage", Description: "Enable or disable coverage, disabled by default"},
+ {Name: "--coverageProvider", Description: "Indicates which provider should be used to instrument code for coverage"},
+ {Name: "--debug", Description: "Print debugging info about your Jest config"},
+ {Name: "--detectOpenHandles", Description: "Attempt to collect and print open handles preventing Jest from exiting cleanly"},
+ {Name: "--env", Description: "The test environment used for all tests"},
+ {Name: "--errorOnDeprecated", Description: "Make calling deprecated APIs throw helpful error messages"},
+ {Name: "--expand", Description: "Use this flag to show full diffs and errors instead of a patch"},
+ {Name: "--findRelatedTests", Description: "Force Jest to exit after all tests have completed running"},
+ {Name: "--help", Description: "Show the help information"},
+ {Name: "--init", Description: "Generate a basic configuration file"},
+ {Name: "--injectGlobals", Description: "Prints the test results in JSON"},
+ {Name: "--outputFile", Description: "Write test results to a file when the --json option is also specified"},
+ {Name: "--lastCommit", Description: "Run all tests affected by file changes in the last commit made"},
+ {Name: "--listTests", Description: "Lists all tests as JSON that Jest will run given the arguments, and exits"},
+ {Name: "--logHeapUsage", Description: "Logs the heap usage after every test"},
+ {Name: "--maxConcurrency", Description: "Disables stack trace in test results output"},
+ {Name: "--notify", Description: "Activates notifications for test results"},
+ {Name: "--onlyChanged", Description: "Allows the test suite to pass when no files are found"},
+ {Name: "--projects", Description: "Run tests with specified reporters"},
+ {Name: "--roots", Description: "A list of paths to directories that Jest should use to search for files in"},
+ {Name: "--runInBand", Description: "Run only the tests of the specified projects"},
+ {Name: "--runTestsByPath", Description: "Run only the tests that were specified with their exact paths"},
+ {Name: "--silent", Description: "Prevent tests from printing messages through the console"},
+ {Name: "--testNamePattern", Description: "Run only tests with a name that matches the regex"},
+ {Name: "--testLocationInResults", Description: "Adds a location field to test results"},
+ {Name: "--testPathPattern", Description: "Lets you specify a custom test runner"},
+ {Name: "--testSequencer", Description: "Lets you specify a custom test sequencer"},
+ {Name: "--testTimeout", Description: "Default timeout of a test in milliseconds"},
+ {Name: "--updateSnapshot", Description: "Use this flag to re-record every snapshot that fails during this test run"},
+ {Name: "--useStderr", Description: "Divert all output to stderr"},
+ {Name: "--verbose", Description: "Display individual test results with the test suite hierarchy"},
+ {Name: "--version", Description: "Print the version and exit"},
+ {Name: "--watch", Description: "Watch files for changes and rerun tests related to changed files"},
+ {Name: "--watchAll", Description: "Watch files for changes and rerun all tests when something changes"},
+ },
+ })
+}
diff --git a/commands/js/lerna.go b/commands/js/lerna.go
new file mode 100644
index 0000000..68fe915
--- /dev/null
+++ b/commands/js/lerna.go
@@ -0,0 +1,66 @@
+package js
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "lerna",
+ Description: "Branch",
+ Subcommands: []core.Subcommand{
+ {Name: "*", Description: "Select all packages"},
+ {Name: "changed", Description: "Check which packages have changed since the last release"},
+ {Name: "run", Description: "Run an npm script in each package that contains that script"},
+ {Name: "script", Description: "Name of the npm script to run"},
+ {Name: "version", Description: "Bump version of packages changed since the last release"},
+ {Name: "diff", Description: "Diff all packages or a single package since the last release"},
+ {Name: "exec", Description: "Execute an arbitrary command in each package"},
+ {Name: "add", Description: "Add a dependency to matched packages"},
+ {Name: "clean", Description: "Remove the node_modules directory from all packages"},
+ {Name: "create", Description: "Create a new lerna-managed package"},
+ },
+ Options: []core.Option{
+ {Name: "--npm-client", Description: "The executable to run the script with"},
+ {Name: "--concurrency", Description: "Set a max buffer length for each underlying process call"},
+ {Name: "--no-progress", Description: "Disable progress bars. This is always the case in a CI environment"},
+ {Name: "--no-sort", Description: "Fail immediately if a cycle is found (in bootstrap, exec, publish or run)"},
+ {Name: "-h", Description: "Show help"},
+ {Name: "-v", Description: "Show version number"},
+ {Name: "--stream", Description: "Include only packages with names matching the given glob"},
+ {Name: "--ignore", Description: "Exclude packages with names matching the given glob"},
+ {Name: "--no-private", Description: "Exclude private packages. They are included by default"},
+ {Name: "--since", Description: "List local packages"},
+ {Name: "--json", Description: "Show information as a JSON array"},
+ {Name: "--ndjson", Description: "Show information as newline-delimited JSON"},
+ {Name: "-a", Description: "Show all packages (including private)"},
+ {Name: "-l", Description: "Show extended information"},
+ {Name: "-p", Description: "Show parseable output instead of columnified view"},
+ {Name: "--toposort", Description: "Show dependency graph as a JSON-formatted adjacency list"},
+ {Name: "-i", Description: "Use independent versioning mode"},
+ {Name: "--exact", Description: "Set the exact version of lerna in the package.json file"},
+ {Name: "--hoist", Description: "Skip prepublish lifecycle scripts run by default in bootstrapped packages"},
+ {Name: "--ignore-scripts", Description: "Skip any lifecycle scripts normally run (prepare, etc) in bootstrapped packages"},
+ {Name: "--registry", Description: "Forwarded npm commands will use the specified registry for your package(s)"},
+ {Name: "--use-workspaces", Description: "Enables integration with Yarn Workspaces"},
+ {Name: "--no-ci", Description: "Disable usage of `npm ci` in CI environments"},
+ {Name: "--force-local", Description: "Flatten the git history of the repository to import"},
+ {Name: "--dest", Description: "Specify the destination directory by the directory listed in lerna.json"},
+ {Name: "--preserve-commit", Description: "Preserve the original committer and commit date"},
+ {Name: "--npm-tag", Description: "Publish to npm with the given npm dist-tag (Defaults to latest)"},
+ {Name: "--canary", Description: "Create a canary release"},
+ {Name: "--skip-git", Description: "Don't run any git commands"},
+ {Name: "--force-publish", Description: "Force publish for the specified packages (comma-separated)"},
+ {Name: "--allow-branch", Description: "An allowlist of globs that match git branches where lerna version is enabled"},
+ {Name: "--amend", Description: "Perform all changes on the current commit, instead of adding a new one"},
+ {Name: "--changelog-preset", Description: "Change the changelog preset type"},
+ {Name: "--conventional-commits", Description: "Graduate the specified packages (comma-separated) or all packages using *"},
+ {Name: "--conventional-prerelease", Description: "Create an official release based on the changes packages"},
+ {Name: "--git-remote", Description: "Push the git changes to the specified remote instead of origin"},
+ {Name: "--ignore-changes", Description: "Ignore changes in files matched by glob(s) when detecting changed packages"},
+ {Name: "--include-merged-tags", Description: "Include tags from merged branches when detecting changed packages"},
+ {Name: "-m", Description: "Use the provided message when committing the version updates for publication"},
+ {Name: "--no-changelog", Description: "When using conventional-commits, do not generate any CHANGELOG.md files"},
+ },
+ })
+}
diff --git a/commands/js/meteor.go b/commands/js/meteor.go
new file mode 100644
index 0000000..0654b17
--- /dev/null
+++ b/commands/js/meteor.go
@@ -0,0 +1,78 @@
+package js
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "meteor",
+ Description: "Run the meteor command-line tool",
+ Subcommands: []core.Subcommand{
+ {Name: "help", Description: "Get help on meteor command line usage"},
+ {Name: "command", Description: "Built-in command"},
+ {Name: "list", Description: "Lists the packages that you have explicitly added to your project"},
+ {Name: "remove-platform", Description: "Removes a platform previously added to your Meteor project"},
+ {Name: "list-platforms", Description: "Lists all of the platforms added to your project"},
+ {Name: "ensure-cordova-dependencies", Description: "Check if the dependencies are installed, otherwise install them"},
+ {Name: "lint", Description: "Run through the whole build process for the app and run all linters the app uses"},
+ {Name: "reset", Description: "Reset the current project to a fresh state. Removes all local data"},
+ {Name: "deploy", Description: "Deploys the project in your current directory to Meteor's servers"},
+ {Name: "milliseconds", Description: "Milliseconds to wait"},
+ {Name: "authorized", Description: "Manage authorized users and organizations"},
+ {Name: "logout", Description: "Log out of your Meteor developer account"},
+ {Name: "whoami", Description: "Prints the username of the currently logged-in Meteor developer"},
+ {Name: "package", Description: "Package name"},
+ {Name: "test", Description: "Runs tests against the application"},
+ {Name: "admin", Description: "Rarely used commands for administering official Meteor services"},
+ {Name: "maintainers", Description: "Manage users and organizations that are maintainers for a particular package"},
+ {Name: "recommend-release", Description: "Recommend a version of a meteor release"},
+ {Name: "change-homepage", Description: "Change the homepage containing package information"},
+ {Name: "list-organizations", Description: "List the organizations of which you are a member"},
+ {Name: "members", Description: "Manage members of an organization"},
+ {Name: "publish-for-arch", Description: "Publish a package for the same architecture that you are currently on"},
+ },
+ Options: []core.Option{
+ {Name: "--port", Description: "Port to listen on (instead of the default 3000)"},
+ {Name: "--inspect", Description: "Simulate production mode. Minify and bundle CSS and JS files"},
+ {Name: "--raw-logs", Description: "Run without parsing logs from stdout and stderr"},
+ {Name: "--settings", Description: "Set optional data for Meteor.settings on the server"},
+ {Name: "--release", Description: "Specify the release of Meteor to use"},
+ {Name: "--verbose", Description: "Print all output from builds logs"},
+ {Name: "--no-lint", Description: "Don't run linters used by the app on every rebuild"},
+ {Name: "--no-release-check", Description: "Don't run the release updater to check for new releases"},
+ {Name: "--allow-incompatible-update", Description: "Specify the release of Meteor to use"},
+ {Name: "--package", Description: "Create a new meteor package instead of an app"},
+ {Name: "--example", Description: "Example template to use"},
+ {Name: "--list", Description: "Show list of available examples"},
+ {Name: "--bare", Description: "Create an empty app"},
+ {Name: "--minimal", Description: "Create an app with as few Meteor packages as possible"},
+ {Name: "--full", Description: "Create a fully scaffolded app"},
+ {Name: "--react", Description: "Create a basic react-based app, same as default"},
+ {Name: "--vue", Description: "Create a basic vue-based app"},
+ {Name: "--apollo", Description: "Create a basic apollo-based app"},
+ {Name: "--svelte", Description: "Create a basic svelte-based app"},
+ {Name: "--typescript", Description: "Create a basic Typescript React-based app"},
+ {Name: "--blaze", Description: "Create a basic blaze-based app"},
+ {Name: "--tailwind", Description: "Create a basic react-based app, with tailwind configured"},
+ {Name: "--packages-only", Description: "Update the package versions only. Do not update the release"},
+ {Name: "--patch", Description: "Update the release to a patch release only"},
+ {Name: "--tree", Description: "Outputs a tree showing how packages are referenced"},
+ {Name: "--json", Description: "Outputs the tree in JSON format"},
+ {Name: "--weak", Description: "Show weakly referenced dependencies in the tree"},
+ {Name: "--details", Description: "Adds more package details to the JSON output"},
+ {Name: "--debug", Description: "Build in debug mode (don't minify, etc)"},
+ {Name: "--directory", Description: "Skip building mobile apps even if mobile platforms have been added"},
+ {Name: "--mobile-settings", Description: "Builds only the specified platforms (when available)"},
+ {Name: "--packageType", Description: "Choose between apk/bundle for android builds"},
+ {Name: "--delete", Description: "Permanently delete this deployment"},
+ {Name: "--no-wait", Description: "Reuses the build already created if the git commit hash is the same"},
+ {Name: "--free", Description: "Change your app's container size using the deploy command"},
+ {Name: "--add", Description: "Add an authorized user or organization"},
+ {Name: "--remove", Description: "Remove an authorized user or organization"},
+ {Name: "--transfer", Description: "Transfer the (Galaxy) app to a new user or organization"},
+ {Name: "--email", Description: "Add an authorized user or organization"},
+ {Name: "--ios", Description: "Print all output from builds logs"},
+ },
+ })
+}
diff --git a/commands/js/ncu.go b/commands/js/ncu.go
new file mode 100644
index 0000000..a4901a1
--- /dev/null
+++ b/commands/js/ncu.go
@@ -0,0 +1,39 @@
+package js
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "ncu",
+ Description: "Clear the default cache, or the cache file specified by --cacheFile",
+ Options: []core.Option{
+ {Name: "--cache", Description: "Clear the default cache, or the cache file specified by --cacheFile"},
+ {Name: "--cacheExpiration", Description: "Cache expiration in minutes. Only works with --cache. (default: 10)"},
+ {Name: "--cacheFile", Description: "Force color in terminal"},
+ {Name: "--concurrency", Description: "Max number of concurrent HTTP requests to registry. (default: 8)"},
+ {Name: "--configFileName", Description: "Config file name. (default: .ncurc.{json,yml,js,cjs})"},
+ {Name: "--configFilePath", Description: "Directory of .ncurc config file. (default: directory of packageFile)"},
+ {Name: "--cwd", Description: "Working directory in which npm will be executed"},
+ {Name: "--deep", Description: "Include deprecated packages"},
+ {Name: "--doctor", Description: "Specifies the install script to use in doctor mode. (default: npm install/yarn)"},
+ {Name: "--doctorTest", Description: "Specifies the test script to use in doctor mode. (default: npm test)"},
+ {Name: "--enginesNode", Description: "Include only packages that satisfy engines.node as specified in the package file"},
+ {Name: "--errorLevel", Description: "Check global packages instead of in the current project"},
+ {Name: "--groupFunction", Description: "Show help"},
+ {Name: "--interactive", Description: "Output new package file instead of human-readable message"},
+ {Name: "--jsonDeps", Description: "Output upgraded dependencies in json"},
+ {Name: "--loglevel", Description: "Package file data (you can also use stdin)"},
+ {Name: "--packageFile", Description: "Package file(s) location. (default: ./package.json)"},
+ {Name: "--packageManager", Description: "Current working directory of npm"},
+ {Name: "--registry", Description: "Remove version ranges from the final package version"},
+ {Name: "--retry", Description: "Number of times to retry failed requests for package info. (default: 3)"},
+ {Name: "--root", Description: "Don't output anything. Alias for --loglevel silent"},
+ {Name: "--stdin", Description: "Read package.json from stdin"},
+ {Name: "--target", Description: "Log additional information for debugging. Alias for --loglevel verbose"},
+ {Name: "--version", Description: "Output the version number of npm-check-updates"},
+ {Name: "--workspace", Description: "Run on all workspaces. Add --root to also upgrade the root project"},
+ },
+ })
+}
diff --git a/commands/js/nest.go b/commands/js/nest.go
new file mode 100644
index 0000000..5686668
--- /dev/null
+++ b/commands/js/nest.go
@@ -0,0 +1,50 @@
+package js
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "nest",
+ Description: "Report actions that would be taken without writing out results",
+ Subcommands: []core.Subcommand{
+ {Name: "new", Description: "Creates a new nest project"},
+ {Name: "project", Description: "The name of the project"},
+ {Name: "generate", Description: "Generate and/or modifies files based on a schematic"},
+ {Name: "application", Description: "Generate a new application workspace"},
+ {Name: "class", Description: "Generate a new class"},
+ {Name: "configuration", Description: "Generate a CLI configuration file"},
+ {Name: "controller", Description: "Generate a controller declaration"},
+ {Name: "decorator", Description: "Generate a custom decorator"},
+ {Name: "filter", Description: "Generate a filter declaration"},
+ {Name: "gateway", Description: "Generate a gateway declaration"},
+ {Name: "guard", Description: "Generate a guard declaration"},
+ {Name: "interceptor", Description: "Generate an interceptor declaration"},
+ {Name: "interface", Description: "Generate an interface"},
+ {Name: "middleware", Description: "Generate a middleware declaration"},
+ {Name: "module", Description: "Generate a module declaration"},
+ {Name: "pipe", Description: "Generate a pipe declaration"},
+ {Name: "provider", Description: "Generate a provider declaration"},
+ {Name: "resolver", Description: "Generate a GraphQL resolver declaration"},
+ {Name: "service", Description: "Generate a service declaration"},
+ {Name: "library", Description: "Generate a new library within a monorepo"},
+ {Name: "sub-app", Description: "Generate a new application within a monorepo"},
+ {Name: "resource", Description: "Generate a new CRUD resource"},
+ {Name: "build", Description: "Builds Nest application"},
+ {Name: "app", Description: "The name of the app"},
+ {Name: "start", Description: "Run Nest application"},
+ {Name: "info", Description: "Display Nest project details"},
+ {Name: "update", Description: "Update Nest dependencies"},
+ },
+ Options: []core.Option{
+ {Name: "-d", Description: "Report actions that would be taken without writing out results"},
+ {Name: "-p", Description: "Project in which to generate files"},
+ {Name: "--flat", Description: "Enforce flat structure of generated element"},
+ {Name: "--spec", Description: "Enforce spec files generation (default: true)"},
+ {Name: "--no-spec", Description: "Disable spec files generation"},
+ {Name: "-c", Description: "Schematics collection to use"},
+ {Name: "--help", Description: "Show help for nest"},
+ },
+ })
+}
diff --git a/commands/js/next.go b/commands/js/next.go
new file mode 100644
index 0000000..6a3dd2a
--- /dev/null
+++ b/commands/js/next.go
@@ -0,0 +1,31 @@
+package js
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "next",
+ Description: "A port number on which to start the application",
+ Subcommands: []core.Subcommand{
+ {Name: "build", Description: "Create an optimized production build of your application"},
+ {Name: "dev", Description: "Start the application in development mode"},
+ {Name: "start", Description: "Start the application in production mode"},
+ {Name: "export", Description: "Exports the application for production deployment"},
+ {Name: "telemetry", Description: "Allows you to control Next.js' telemetry collection"},
+ {Name: "status", Description: "Turn Next.js' telemetry collection on or off"},
+ {Name: "enable", Description: "Enable Next.js' telemetry collection"},
+ {Name: "disable", Description: "Disable Next.js' telemetry collection"},
+ },
+ Options: []core.Option{
+ {Name: "-p", Description: "A port number on which to start the application"},
+ {Name: "-H", Description: "Hostname on which to start the application"},
+ {Name: "-h", Description: "Output usage information"},
+ {Name: "-v", Description: "Output the version number"},
+ {Name: "--profile", Description: "Enable production profiling"},
+ {Name: "--debug", Description: "Enable more verbose build output"},
+ {Name: "-s", Description: "Do not print any messages to console"},
+ },
+ })
+}
diff --git a/commands/js/ng.go b/commands/js/ng.go
new file mode 100644
index 0000000..f9b76f2
--- /dev/null
+++ b/commands/js/ng.go
@@ -0,0 +1,31 @@
+package js
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "ng",
+ Description: "Project name",
+ Subcommands: []core.Subcommand{
+ {Name: "new", Description: "Create a new Angular app"},
+ {Name: "generate", Description: "Generate new files"},
+ {Name: "application", Description: "Generates a new application"},
+ {Name: "name", Description: "Name of the new app"},
+ {Name: "component", Description: "Generate a new component"},
+ {Name: "library", Description: "Generates a new library"},
+ {Name: "class", Description: "Generates a class"},
+ {Name: "version", Description: "View your Angular CLI version (update for Angular 14+)"},
+ },
+ Options: []core.Option{
+ {Name: "--project", Description: "Project name"},
+ {Name: "--create-application", Description: "Create a default application?"},
+ {Name: "--style", Description: "Generate a new component"},
+ {Name: "--change-detection", Description: "The change detection strategy to use"},
+ {Name: "--display-block", Description: "Add :host block to styles"},
+ {Name: "--flat", Description: "Create at the top level"},
+ {Name: "--version", Description: "View your Angular CLI version"},
+ },
+ })
+}
diff --git a/commands/js/node.go b/commands/js/node.go
new file mode 100644
index 0000000..152c7bb
--- /dev/null
+++ b/commands/js/node.go
@@ -0,0 +1,45 @@
+package js
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "node",
+ Description: "Run the node interpreter",
+ Options: []core.Option{
+ {Name: "-e", Description: "Evaluate script"},
+ {Name: "--watch", Description: "Watch input files"},
+ {Name: "--watch-path", Description: "Specify a watch directory or file"},
+ {Name: "--watch-preserve-output", Description: "Disable the clearing of the console when watch mode restarts the process"},
+ {Name: "--env-file", Description: "Specify a file containing environment variables"},
+ {Name: "-p", Description: "Evaluate script and print result"},
+ {Name: "-c", Description: "Syntax check script without executing"},
+ {Name: "-v", Description: "Print Node.js version"},
+ {Name: "-i", Description: "Always enter the REPL even if stdin does not appear to be a terminal"},
+ {Name: "-h", Description: "Print node command line options (currently set)"},
+ {Name: "--inspect", Description: "Activate inspector on host:port (default: 127.0.0.1:9229)"},
+ {Name: "--preserve-symlinks", Description: "Run AdonisJS command-line"},
+ {Name: "-prod", Description: "Build for production"},
+ {Name: "--assets", Description: "Build frontend assets when webpack encore is installed"},
+ {Name: "--no-assets", Description: "Disable building assets"},
+ {Name: "--ignore-ts-errors", Description: "Ignore typescript errors and complete the build process"},
+ {Name: "--tsconfig", Description: "Path to the TypeScript project configuration file"},
+ {Name: "--encore-args", Description: "CLI options to pass to the encore command line"},
+ {Name: "--client", Description: "Select the package manager to decide which lock file to copy to the build folder"},
+ {Name: "-w", Description: "Watch for file changes and re-start the HTTP server on change"},
+ {Name: "--node-args", Description: "CLI options to pass to the node command line"},
+ {Name: "-f", Description: "Define a custom set of seeders files names to run"},
+ {Name: "-r", Description: "Add resourceful methods to the controller class"},
+ {Name: "--connection", Description: "The connection flag is used to lookup the directory for the migration file"},
+ {Name: "--folder", Description: "Pre-select a migration directory"},
+ {Name: "--create", Description: "Define the table name for creating a new table"},
+ {Name: "--table", Description: "Define the table name for altering an existing table"},
+ {Name: "-m", Description: "Generate the migration for the model"},
+ {Name: "--force", Description: "Explicitly force to run migrations in production"},
+ {Name: "--dry-run", Description: "Print SQL queries, instead of running the migrations"},
+ {Name: "--batch", Description: "Use 0 to rollback to initial state"},
+ },
+ })
+}
diff --git a/commands/js/npx.go b/commands/js/npx.go
new file mode 100644
index 0000000..958bb7b
--- /dev/null
+++ b/commands/js/npx.go
@@ -0,0 +1,22 @@
+package js
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "npx",
+ Description: "Execute binaries from npm packages",
+ Options: []core.Option{
+ {Name: "--package", Description: "Package to be installed"},
+ {Name: "--cache", Description: "Location of the npm cache"},
+ {Name: "--always-spawn", Description: "Always spawn a child process to execute the command"},
+ {Name: "-y", Description: "Execute npx command without prompting for confirmation"},
+ {Name: "--call", Description: "Execute string as if inside `npm run-script`"},
+ {Name: "--shell", Description: "Shell to execute the command with, if any"},
+ {Name: "--ignore-existing", Description: "Suppress output from npx itself. Subcommands will not be affected"},
+ {Name: "--npm", Description: "Npm binary to use for internal operations"},
+ },
+ })
+}
diff --git a/commands/js/nuxi.go b/commands/js/nuxi.go
new file mode 100644
index 0000000..07be83d
--- /dev/null
+++ b/commands/js/nuxi.go
@@ -0,0 +1,33 @@
+package js
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "nuxi",
+ Description: "The directory of the target application",
+ Options: []core.Option{
+ {Name: "--help", Description: "Show help"},
+ {Name: "--verbose", Description: "Log information about the installation process"},
+ {Name: "--template", Description: "Specify a Git repository to use as a template"},
+ {Name: "--force", Description: "Force clone to any existing directory"},
+ {Name: "--prefer-offline", Description: "Try local cache first to download templates"},
+ {Name: "--shell", Description: "Open shell in cloned directory (experimental)"},
+ {Name: "--cwd", Description: "The current working directory of the target application"},
+ {Name: "--dotenv", Description: "Point to another .env file to load, relative to the root directory"},
+ {Name: "--prerender", Description: "Point to another .env file to load, relative to the root directory"},
+ {Name: "--clipboard", Description: "Copy URL to clipboard"},
+ {Name: "--open", Description: "Open URL in browser"},
+ {Name: "--no-clear", Description: "Does not clear the console after startup"},
+ {Name: "--port", Description: "Port to listen"},
+ {Name: "--host", Description: "Hostname of the server"},
+ {Name: "--https", Description: "Listen with https protocol with a self-signed certificate by default"},
+ {Name: "--ssl-cert", Description: "Specify a certificate for https"},
+ {Name: "--ssl-key", Description: "Specify the key for the https certificate"},
+ {Name: "--dev", Description: "Run tests in development mode"},
+ {Name: "--watch", Description: "Actively watch for changes and rerun tests"},
+ },
+ })
+}
diff --git a/commands/js/nuxt.go b/commands/js/nuxt.go
new file mode 100644
index 0000000..2f6e3d2
--- /dev/null
+++ b/commands/js/nuxt.go
@@ -0,0 +1,22 @@
+package js
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "nuxt",
+ Description: "Launch the development server",
+ Subcommands: []core.Subcommand{
+ {Name: "dev", Description: "Launch the development server"},
+ {Name: "build", Description: "Build and optimize your application with webpack for production"},
+ {Name: "webpack", Description: "Inspect the webpack config"},
+ },
+ Options: []core.Option{
+ {Name: "--name", Description: "Bundle name to inspect. (client, server, modern)"},
+ {Name: "--dev", Description: "Inspect webpack config for dev mode"},
+ {Name: "--depth", Description: "Inspection depth. Defaults to 2 to prevent verbose output"},
+ },
+ })
+}
diff --git a/commands/js/nx.go b/commands/js/nx.go
new file mode 100644
index 0000000..9e4bede
--- /dev/null
+++ b/commands/js/nx.go
@@ -0,0 +1,74 @@
+package js
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "nx",
+ Description: "All projects",
+ Subcommands: []core.Subcommand{
+ {Name: "init", Description: "Adds nx.json file and installs nx if not installed already"},
+ {Name: "daemon", Description: "Prints information about the Nx Daemon process or starts a daemon process"},
+ {Name: "graph", Description: "Graph dependencies within workspace"},
+ {Name: "run-many", Description: "Run target for multiple listed projects"},
+ {Name: "affected", Description: "Run target for affected projects"},
+ {Name: "affected:graph", Description: "Graph dependencies affected by changes"},
+ {Name: "print-affected", Description: "Prints information about the projects and targets affected by changes"},
+ {Name: "format:check", Description: "Check for un-formatted files"},
+ {Name: "format:write", Description: "Overwrite un-formatted files"},
+ {Name: "migrate", Description: "Creates a migrations file or runs migrations from the migrations file"},
+ {Name: "packageAndVersion", Description: "The target package and version (e.g, @nrwl/workspace@13.0.0)"},
+ {Name: "report", Description: "Reports useful version numbers to copy into the Nx issue template"},
+ {Name: "plugin", Description: "The name of an installed plugin to query"},
+ {Name: "workspace-generator", Description: "Runs a workspace generator from the tools/generators directory"},
+ {Name: "name", Description: "The name of your generator"},
+ {Name: "connect", Description: "Connect workspace to Nx Cloud"},
+ {Name: "repair", Description: "Repair any configuration that is no longer supported by Nx"},
+ {Name: "exec", Description: "Executes any command as if it was a target on the project"},
+ {Name: "watch", Description: "Watch for changes within projects, and execute commands"},
+ {Name: "show", Description: "Show information about the workspace (e.g., list of projects)"},
+ {Name: "object", Description: "What to show (e.g., projects)"},
+ },
+ Options: []core.Option{
+ {Name: "--all", Description: "All projects"},
+ {Name: "--base", Description: "Base of the current branch (usually main)"},
+ {Name: "--commitPrefix", Description: "Automatically create a git commit after each migration runs"},
+ {Name: "--defaults", Description: "When true, disables interactive input prompts for options with a default"},
+ {Name: "--dryRun", Description: "When true, preview the changes without updating files"},
+ {Name: "--exclude", Description: "Exclude certain projects from being processed"},
+ {Name: "--excludeAppliedMigrations", Description: "Output file (e.g. --file=output.json or --file=dep-graph.html)"},
+ {Name: "--files", Description: "When true, forces overwriting of existing files"},
+ {Name: "--from", Description: "Show the task graph of the command"},
+ {Name: "--groupByFolder", Description: "Group projects by folder in the project graph"},
+ {Name: "--head", Description: "Latest commit of the current branch (usually HEAD)"},
+ {Name: "--help", Description: "Show help"},
+ {Name: "--host", Description: "Bind the project graph server to a specific ip address"},
+ {Name: "--ifExists", Description: "Run migrations only if the migrations file exists, if not continues successfully"},
+ {Name: "--includeDependentProjects", Description: "When watching selected projects, include dependent projects as well"},
+ {Name: "--interactive", Description: "Enable/disable prompts"},
+ {Name: "--libs-and-apps", Description: "Format only libraries and applications files"},
+ {Name: "--list-generators", Description: "List the available workspace-generators"},
+ {Name: "--nx-bail", Description: "Stop command execution after the first failed task"},
+ {Name: "--nx-ignore-cycles", Description: "Ignore cycles in the task graph"},
+ {Name: "--open", Description: "Open the project graph in the browser"},
+ {Name: "--output-style", Description: "Defines how Nx emits outputs tasks logs"},
+ {Name: "--parallel", Description: "Max number of parallel processes [default is 3]"},
+ {Name: "--port", Description: "Bind the project graph server to a specific port"},
+ {Name: "--project", Description: "Target project"},
+ {Name: "--projects", Description: "Projects (comma/space delimited)"},
+ {Name: "--runMigrations", Description: "This is the name of the tasks runner configured in nx.json"},
+ {Name: "--select", Description: "Select the subset of the returned json document (e.g., --select=projects)"},
+ {Name: "--skip-nx-cache", Description: "Rerun the tasks even when the results are available in the cache"},
+ {Name: "--start", Description: "Targets (comma/space delimited)"},
+ {Name: "--to", Description: "Select the type of projects to be returned (e.g., --type=app)"},
+ {Name: "--uncommitted", Description: "Uncommitted changes"},
+ {Name: "--untracked", Description: "Untracked changes"},
+ {Name: "--verbose", Description: "Prints additional information about the commands (e.g., stack traces)"},
+ {Name: "--version", Description: "Show version number"},
+ {Name: "--view", Description: "Choose whether to view the projects or task graph"},
+ {Name: "--watch", Description: "Watch for changes to project graph and update in-browser"},
+ },
+ })
+}
diff --git a/commands/js/oxlint.go b/commands/js/oxlint.go
new file mode 100644
index 0000000..943a174
--- /dev/null
+++ b/commands/js/oxlint.go
@@ -0,0 +1,30 @@
+package js
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "oxlint",
+ Description: "All lints (except nursery)",
+ Options: []core.Option{
+ {Name: "-c", Description: "Path to Oxlint JSON configuration file"},
+ {Name: "--tsconfig", Description: "Specify the file to use as your .eslintignore"},
+ {Name: "--ignore-pattern", Description: "Specify file patterns to ignore (in addition to those in .eslintignore)"},
+ {Name: "--no-ignore", Description: "Follow symlinks when linting, which are ignored by default"},
+ {Name: "-D", Description: "Deny a lint rule or category (enable a lint as an error)"},
+ {Name: "-W", Description: "Warn about a lint rule or category (enable a lint as a warning)"},
+ {Name: "-A", Description: "Allow a lint rule or category (suppress a lint)"},
+ {Name: "--fix", Description: "Fix as many issues as possible. Only unfixed issues are reported in the output"},
+ {Name: "--silent", Description: "Do not display any diagnostics"},
+ {Name: "--deny-warnings", Description: "Exit with a non-zero code if there are any warnings"},
+ {Name: "--max-warnings", Description: "Exit with a non-zero code if there are more than `max` warnings"},
+ {Name: "-f", Description: "Use a specific output format"},
+ {Name: "--threads", Description: "Number of threads to use. Set to 1 to use only 1 CPU core"},
+ {Name: "--rules", Description: "List all available rules"},
+ {Name: "-h", Description: "Show help"},
+ {Name: "-V", Description: "Show version"},
+ },
+ })
+}
diff --git a/commands/js/playwright.go b/commands/js/playwright.go
new file mode 100644
index 0000000..e0fb6be
--- /dev/null
+++ b/commands/js/playwright.go
@@ -0,0 +1,25 @@
+package js
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "playwright",
+ Description: "Display help for command",
+ Subcommands: []core.Subcommand{
+ {Name: "test", Description: "Run tests with Playwright Test"},
+ {Name: "tests", Description: "Test files to run"},
+ {Name: "install", Description: "Running without arguments will install default browsers"},
+ {Name: "browsers", Description: "Browser to install"},
+ },
+ Options: []core.Option{
+ {Name: "--help", Description: "Display help for command"},
+ {Name: "-g", Description: "Run the test with the title"},
+ {Name: "--headed", Description: "Run tests in headed browsers"},
+ {Name: "--with-deps", Description: "Install system dependencies for browsers"},
+ {Name: "--version", Description: "Output the version number"},
+ },
+ })
+}
diff --git a/commands/js/pnpx.go b/commands/js/pnpx.go
new file mode 100644
index 0000000..c626735
--- /dev/null
+++ b/commands/js/pnpx.go
@@ -0,0 +1,21 @@
+package js
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "pnpx",
+ Description: "Execute binaries from npm packages",
+ Options: []core.Option{
+ {Name: "--package", Description: "Package to be executed"},
+ {Name: "--cache", Description: "Location of the npm cache"},
+ {Name: "--always-spawn", Description: "Always spawn a child process to execute the command"},
+ {Name: "--call", Description: "Execute string as if inside `npm run-script`"},
+ {Name: "--shell", Description: "Shell to execute the command with, if any"},
+ {Name: "--ignore-existing", Description: "Suppress output from pnpx itself. Subcommands will not be affected"},
+ {Name: "--npm", Description: "Npm binary to use for internal operations"},
+ },
+ })
+}
diff --git a/commands/js/prettier.go b/commands/js/prettier.go
new file mode 100644
index 0000000..33995be
--- /dev/null
+++ b/commands/js/prettier.go
@@ -0,0 +1,53 @@
+package js
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "prettier",
+ Description: "Run Prettier from the command line",
+ Options: []core.Option{
+ {Name: "-c", Description: "Check if your files are formatted"},
+ {Name: "-l", Description: "Print the names of files that are different from Prettier's formatting"},
+ {Name: "-w", Description: "Edit files in-place"},
+ {Name: "--arrow-parens", Description: "Include parentheses around a sole arrow function parameter"},
+ {Name: "--no-bracket-spacing", Description: "Do not print spaces between brackets"},
+ {Name: "--end-of-line", Description: "Which end of line characters to apply"},
+ {Name: "--html-whitespace-sensitivity", Description: "How to handle whitespaces in HTML"},
+ {Name: "--jsx-bracket-same-line", Description: "Put > on the last line instead of at a new line"},
+ {Name: "--jsx-single-quote", Description: "Use single quotes in JSX"},
+ {Name: "--parser", Description: "Which parser to use"},
+ {Name: "--print-width", Description: "The line length where Prettier will try wrap"},
+ {Name: "--prose-wrap", Description: "How to wrap prose"},
+ {Name: "--quote-props", Description: "Change when properties in objects are quoted"},
+ {Name: "--no-semi", Description: "Do not print semicolons, except at the beginning of lines which may need them"},
+ {Name: "--single-quote", Description: "Use single quotes instead of double quotes"},
+ {Name: "--tab-width", Description: "Number of spaces per indentation level"},
+ {Name: "--trailing-comma", Description: "Print trailing commas wherever possible when multi-line"},
+ {Name: "--use-tabs", Description: "Indent with tabs instead of spaces"},
+ {Name: "--vue-indent-script-and-style", Description: "Indent script and style tags in Vue files"},
+ {Name: "--config", Description: "Do not look for a configuration file"},
+ {Name: "--config-precedence", Description: "Define in which order config files and CLI options should be evaluated"},
+ {Name: "--no-editorconfig", Description: "Don't take .editorconfig into account when parsing configuration"},
+ {Name: "--find-config-path", Description: "Finds a path to the configuration file for the given input file"},
+ {Name: "--ignore-path", Description: "Path to a file with patterns describing files to ignore"},
+ {Name: "--plugin", Description: "Add a plugin"},
+ {Name: "--plugin-search-dir", Description: "Custom directory that contains prettier plugins in node_modules subdirectory"},
+ {Name: "--with-node-modules", Description: "Process files inside 'node_modules' directory"},
+ {Name: "--cursor-offset", Description: "Format code ending at a given character offset (exclusive)"},
+ {Name: "--range-start", Description: "Format code starting at a given character offset"},
+ {Name: "--no-color", Description: "Do not colorize error messages"},
+ {Name: "--file-info", Description: "Extract the following info (as JSON) for a given file path"},
+ {Name: "-h", Description: "Show CLI usage, or details about the given flag"},
+ {Name: "-u", Description: "Ignore unknown files"},
+ {Name: "--insert-pragma", Description: "Insert @format pragma into file's first docblock comment"},
+ {Name: "--loglevel", Description: "What level of logs to report"},
+ {Name: "--require-pragma", Description: "Path to the file to pretend that stdin comes from"},
+ {Name: "--support-info", Description: "Print support information as JSON"},
+ {Name: "-v", Description: "Print Prettier version"},
+ {Name: "--debug-check", Description: "Prevent errors when pattern is unmatched"},
+ },
+ })
+}
diff --git a/commands/js/quasar.go b/commands/js/quasar.go
new file mode 100644
index 0000000..dbd6112
--- /dev/null
+++ b/commands/js/quasar.go
@@ -0,0 +1,44 @@
+package js
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "quasar",
+ Description: "Quasar Framework CLI",
+ Subcommands: []core.Subcommand{
+ {Name: "create", Description: "Create a new Quasar project"},
+ {Name: "project-name", Description: "Name of the project"},
+ {Name: "info", Description: "Gather environment information for issue reporting"},
+ {Name: "upgrade", Description: "Upgrade Quasar Framework packages"},
+ {Name: "serve", Description: "Start development server"},
+ },
+ Options: []core.Option{
+ {Name: "-h", Description: "Output usage information"},
+ {Name: "--kit", Description: "Use specific starter kit"},
+ {Name: "--branch", Description: "Use specific branch of the starter kit"},
+ {Name: "--clone", Description: "Use git clone"},
+ {Name: "--offline", Description: "Use a cached starter kit"},
+ {Name: "--install", Description: "Also perform package upgrades"},
+ {Name: "--prerelease", Description: "Allow pre-release versions (alpha/beta)"},
+ {Name: "--major", Description: "Allow newer major versions (breaking changes)"},
+ {Name: "--port", Description: "Port to use"},
+ {Name: "--hostname", Description: "Address to use"},
+ {Name: "--gzip", Description: "Compress content"},
+ {Name: "--silent", Description: "Suppress log message"},
+ {Name: "--colors", Description: "Log messages with colors"},
+ {Name: "--open", Description: "Open browser window after starting"},
+ {Name: "--cache", Description: "Cache time (max-age) in seconds"},
+ {Name: "--micro", Description: "Use micro-cache"},
+ {Name: "--history", Description: "Use history api fallback"},
+ {Name: "--index", Description: "History mode (only!) index url path"},
+ {Name: "--https", Description: "Enable HTTPS"},
+ {Name: "--cert", Description: "Path to SSL cert file (Optional)"},
+ {Name: "--key", Description: "Path to SSL key file (Optional)"},
+ {Name: "--proxy", Description: "Proxy specific requests defined in file"},
+ {Name: "--cors", Description: "Enable CORS for all requests"},
+ },
+ })
+}
diff --git a/commands/js/react_native.go b/commands/js/react_native.go
new file mode 100644
index 0000000..5179e41
--- /dev/null
+++ b/commands/js/react_native.go
@@ -0,0 +1,54 @@
+package js
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "react-native",
+ Description: "Attempt to fix all diagnosed issues",
+ Options: []core.Option{
+ {Name: "--fix", Description: "Attempt to fix all diagnosed issues"},
+ {Name: "--contributor", Description: "Output usage information"},
+ {Name: "--entry-file", Description: "Path to the root JS file, either absolute or relative to JS root"},
+ {Name: "--platform", Description: "Specify a custom transformer to be used"},
+ {Name: "--dev", Description: "If false, warnings are disabled and the bundle is minified (default: true)"},
+ {Name: "--minify", Description: "File name where to store the resulting bundle, ex. /tmp/groups.bundle"},
+ {Name: "--bundle-encoding", Description: "Path to make sourcemap's sources entries relative to, ex. /root/dir"},
+ {Name: "--sourcemap-use-absolute-path", Description: "Report SourceMapURL using its full path"},
+ {Name: "--assets-dest", Description: "Directory name where to store assets referenced in the bundle"},
+ {Name: "--unstable-transform-profile", Description: "Removes cached files"},
+ {Name: "--read-global-cache", Description: "Try to fetch transformed JS code from the global cache, if configured"},
+ {Name: "--config", Description: "Path to the CLI configuration file"},
+ {Name: "-h", Description: "Output usage information"},
+ {Name: "--version", Description: "Shortcut for `--template react-native@version`"},
+ {Name: "--template", Description: "Forces using npm for initialization"},
+ {Name: "--directory", Description: "Uses a custom directory instead of ``"},
+ {Name: "--title", Description: "Uses a custom app title name for application"},
+ {Name: "--skip-install", Description: "Skips dependencies installation step"},
+ {Name: "--port", Description: "Port on which to listen to"},
+ {Name: "--host", Description: "Change the default host"},
+ {Name: "--projectRoot", Description: "Path to a custom project root"},
+ {Name: "--watchFolders", Description: "Specify any additional folders to be added to the watch list"},
+ {Name: "--assetPlugins", Description: "Specify any additional asset plugins to be used by the packager by full filepath"},
+ {Name: "--sourceExts", Description: "Specify any additional source extensions to be used by the packager"},
+ {Name: "--max-workers", Description: "Specify a custom transformer to be used"},
+ {Name: "--reset-cache", Description: "Removes cached files"},
+ {Name: "--custom-log-reporter-path", Description: "Enables logging"},
+ {Name: "--https", Description: "Enables https connections to the server"},
+ {Name: "--key", Description: "Path to custom SSL key"},
+ {Name: "--cert", Description: "Path to custom SSL cert"},
+ {Name: "--no-interactive", Description: "Disables interactive mode"},
+ {Name: "--indexed-ram-bundle", Description: "Output usage information"},
+ {Name: "--platforms", Description: "Scope linking to specified platforms"},
+ {Name: "--all", Description: "Link all native modules and assets"},
+ {Name: "--filename", Description: "Pulls the original Hermes tracing profile without any transformation"},
+ {Name: "--sourcemap-path", Description: "The local path to your source map file, eg. /tmp/sourcemap.json"},
+ {Name: "--generate-sourcemap", Description: "Generates the JS bundle and source map"},
+ {Name: "--root", Description: "Do not launch packager while building"},
+ {Name: "--terminal", Description: "Output usage information"},
+ {Name: "--simulator", Description: "Explicitly set Xcode scheme to use"},
+ },
+ })
+}
diff --git a/commands/js/redwood.go b/commands/js/redwood.go
new file mode 100644
index 0000000..8de258d
--- /dev/null
+++ b/commands/js/redwood.go
@@ -0,0 +1,75 @@
+package js
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "redwood",
+ Description: "Script",
+ Subcommands: []core.Subcommand{
+ {Name: "side", Description: "Which side(s) to build"},
+ {Name: "api", Description: "Build the api server"},
+ {Name: "web", Description: "Build the web server"},
+ {Name: "options", Description: "Options to pass to Webpack Dev Server"},
+ {Name: "aws", Description: "Deploy to AWS using the selected provider"},
+ {Name: "provider", Description: "AWS Deploy provider to configure"},
+ {Name: "netlify", Description: "Build command for Netlify deploy"},
+ {Name: "render", Description: "Build (web) and Start (api) command for Render deploy"},
+ {Name: "vercel", Description: "Build command for Vercel deploy"},
+ {Name: "cell", Description: "Destroy a cell component"},
+ {Name: "name", Description: "Name of the cell component"},
+ {Name: "component", Description: "Destroy a component"},
+ {Name: "function", Description: "Destroy a Function"},
+ {Name: "layout", Description: "Destroy a layout component"},
+ {Name: "page", Description: "Destroy a page and route component"},
+ {Name: "path", Description: "URL path to the page. Defaults to name"},
+ {Name: "scaffold", Description: "Destroy pages, SDL, and Services files based on a given DB schema Model"},
+ {Name: "sdl", Description: "Destroy a GraphQL schema and service component based on a given DB schema Model"},
+ {Name: "service", Description: "Destroy a service component"},
+ {Name: "dataMigration", Description: "Generate a data migration component"},
+ {Name: "directive", Description: "Generate a directive"},
+ {Name: "model", Description: "Model to generate the sdl for"},
+ {Name: "types", Description: "Generate types and supplementary code"},
+ {Name: "script", Description: "Name of the script to execute"},
+ {Name: "tag", Description: "Tag to use for upgrade"},
+ {Name: "canary", Description: "Upgrade to the latest canary release"},
+ {Name: "rc", Description: "Upgrade to the latest RC release"},
+ {Name: "port", Description: "Port to run the server on"},
+ {Name: "socket", Description: "Socket to run the server on"},
+ {Name: "apiRootPath", Description: "Root path for the api"},
+ {Name: "apiHost", Description: "Host to forward requests to"},
+ {Name: "auth", Description: "Setup auth configuration for a provider"},
+ {Name: "tsconfig", Description: "Setup tsconfig.json on both web and api sides"},
+ {Name: "deploy", Description: "Setup auth configuration for a provider"},
+ {Name: "up", Description: "Executes outstanding data migrations"},
+ },
+ Options: []core.Option{
+ {Name: "--forward", Description: "String of one or more Webpack Dev Server config options"},
+ {Name: "--side", Description: "Show help for command"},
+ {Name: "--build", Description: "Build (web) and Start (api) command for Render deploy"},
+ {Name: "--serve", Description: "Build command for Vercel deploy"},
+ {Name: "--force", Description: "Overwrite existing files"},
+ {Name: "--typescript", Description: "Generate test files [default: true]"},
+ {Name: "--stories", Description: "Generate Storybook files [default: true]"},
+ {Name: "--skipLink", Description: "Generate a layout with a skip link [default: false]"},
+ {Name: "--stats", Description: "Print more information while building"},
+ {Name: "--dry-run", Description: "Check for outdated packages without upgrading"},
+ {Name: "--tag", Description: "Tag to use for upgrade"},
+ {Name: "--pr", Description: "Installs packages for the given PR"},
+ {Name: "--port", Description: "What port should the server run on [default: 8911]"},
+ {Name: "--socket", Description: "The socket the server should run. This takes precedence over port"},
+ {Name: "--apiRootPath", Description: "The root path where your api functions are served"},
+ {Name: "--apiHost", Description: "Host to forward requests to"},
+ {Name: "--help", Description: "Show help"},
+ {Name: "--version", Description: "Show version number"},
+ {Name: "--watch", Description: "Run all tests"},
+ {Name: "--collectCoverage", Description: "Delete the Jest cache directory and exit without running tests"},
+ {Name: "--db-push", Description: "Starts Storybook locally"},
+ {Name: "--open", Description: "Open Storybook in your browser on start"},
+ {Name: "--fix", Description: "Try to fix linting errors"},
+ {Name: "--database", Description: "Overwrite existing files"},
+ },
+ })
+}
diff --git a/commands/js/remix.go b/commands/js/remix.go
new file mode 100644
index 0000000..cd80037
--- /dev/null
+++ b/commands/js/remix.go
@@ -0,0 +1,24 @@
+package js
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "remix",
+ Description: "Represent the directory of the Remix application",
+ Subcommands: []core.Subcommand{
+ {Name: "build", Description: "Create an optimized production build of your application"},
+ {Name: "dev", Description: "Start the application in development mode"},
+ {Name: "setup", Description: "Prepare node_modules/remix folder (after installation of packages)"},
+ {Name: "routes", Description: "Generate the route config of the application"},
+ },
+ Options: []core.Option{
+ {Name: "--help", Description: "Output usage information"},
+ {Name: "-v", Description: "Output the version number"},
+ {Name: "--sourcemap", Description: "Enables production sourcemap"},
+ {Name: "--json", Description: "Print the route config as JSON"},
+ },
+ })
+}
diff --git a/commands/js/remotion.go b/commands/js/remotion.go
new file mode 100644
index 0000000..7198b59
--- /dev/null
+++ b/commands/js/remotion.go
@@ -0,0 +1,96 @@
+package js
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "remotion",
+ Description: "Create videos programmatically in React",
+ Subcommands: []core.Subcommand{
+ {Name: "versions", Description: "Prints and validates versions of all Remotion packages"},
+ {Name: "gpu", Description: "Prints information about how Chrome uses the GPU"},
+ {Name: "compositions", Description: "Prints the list of available compositions"},
+ {Name: "entry", Description: "The entry point of your Remotion app"},
+ {Name: "lambda", Description: "Access functionality of @remotion/lambda"},
+ {Name: "policies", Description: "Manage AWS policies"},
+ {Name: "role", Description: "Print policy to be added to the AWS role"},
+ {Name: "user", Description: "Print policy to be added to the AWS user"},
+ {Name: "validate", Description: "Validate the user policy was configured correctly"},
+ {Name: "quotas", Description: "Show current AWS quota"},
+ {Name: "us-east-1", Description: "North Virginia"},
+ {Name: "us-east-2", Description: "Ohio"},
+ {Name: "eu-central-1", Description: "Frankfurt"},
+ {Name: "eu-west-1", Description: "Ireland"},
+ {Name: "eu-west-2", Description: "London"},
+ {Name: "us-west-2", Description: "Oregon"},
+ {Name: "ap-south-1", Description: "Mumbai"},
+ {Name: "ap-southeast-1", Description: "Singapore"},
+ {Name: "ap-southeast-2", Description: "Sydney"},
+ {Name: "ap-northeast-1", Description: "Tokyo"},
+ {Name: "increase", Description: "Send a request to AWS to increase concurrency quotas"},
+ {Name: "regions", Description: "Prints list of supported regions"},
+ {Name: "render", Description: "Render media on Lambda"},
+ {Name: "serve-url", Description: "URL or name of the site"},
+ {Name: "composition-id", Description: "Name of the composition"},
+ {Name: "out-name", Description: "Where the output should be downloaded. No download it omitted"},
+ {Name: "still", Description: "Render a still on Lambda"},
+ {Name: "functions", Description: "Manage functions on AWS Lambda"},
+ {Name: "ls", Description: "List deployed functions"},
+ {Name: "deploy", Description: "Deploy a function if one with the same parameters doesn't exist"},
+ {Name: "rmall", Description: "Remove all functions in a region"},
+ {Name: "rm", Description: "Remove a function"},
+ {Name: "function-name", Description: "ID of your function"},
+ {Name: "site-name", Description: "ID of your site"},
+ {Name: "create", Description: "Create or update a site"},
+ {Name: "comp-id", Description: "The composition ID"},
+ {Name: "polling-interval", Description: "Polling interval in milliseconds"},
+ {Name: "upgrade", Description: "Upgrade all Remotion-related dependencies to the newest version"},
+ {Name: "benchmark", Description: "Try different render configurations and compare them"},
+ {Name: "install", Description: "Ensure Remotion dependencies"},
+ },
+ Options: []core.Option{
+ {Name: "--props", Description: "Pass input props as filename or as JSON"},
+ {Name: "--env-file", Description: "Specify a location for a dotenv file"},
+ {Name: "--disable-headless", Description: "Run Chrome in normal mode rather than headless"},
+ {Name: "--gl", Description: "Which OpenGL renderer to use"},
+ {Name: "--user-agent", Description: "User agent to use for Chrome during rendering"},
+ {Name: "--ignore-certificate-errors", Description: "Ignore SSL errors"},
+ {Name: "--disable-web-security", Description: "Disable CORS and other web security features"},
+ {Name: "--quiet", Description: "Print less output"},
+ {Name: "-q", Description: "Print less output"},
+ {Name: "--log", Description: "Custom location for a Remotion config file"},
+ {Name: "--yes", Description: "Skip confirmation"},
+ {Name: "--force", Description: "Skip confirmation"},
+ {Name: "-y", Description: "Skip confirmation"},
+ {Name: "-f", Description: "Skip confirmation"},
+ {Name: "--region", Description: "The AWS region specifier"},
+ {Name: "--default-only", Description: "Only print the regions enabled by default in a new AWS account"},
+ {Name: "--max-retries", Description: "How many times a chunk can be retried before the render times out"},
+ {Name: "--privacy", Description: "How many frames should be rendered per chunk"},
+ {Name: "--concurrency-per-lambda", Description: "Concurrency with which each Lambda function should render"},
+ {Name: "--overwrite", Description: "Overwrite a video if it already exists in the S3 bucket"},
+ {Name: "--function-name", Description: "Name of the function that should be invoked"},
+ {Name: "--renderer-function-name", Description: "The time in millisecond that a delayRender() may take before it times out"},
+ {Name: "--quality", Description: "Quality for rendered frames, JPEG only, 0-100"},
+ {Name: "--scale", Description: "Upscale or downscale or the dimensions of the video"},
+ {Name: "--codec", Description: "Video or audio codec"},
+ {Name: "--audio-codec", Description: "Codec to be used for the audio"},
+ {Name: "--every-nth-frame", Description: "Render only every nth frame (only for GIFs)"},
+ {Name: "--number-of-gif-loops", Description: "How many times a GIF should loop. 0 = No loop"},
+ {Name: "--audio-bitrate", Description: "Customize the output audio bitrate"},
+ {Name: "--video-bitrate", Description: "Customize the output video bitrate. Mutually exclusive with --crf"},
+ {Name: "--crf", Description: "FFMPEG CRF value, controls quality, see docs for info"},
+ {Name: "--frames", Description: "Render a portion or a still of a video, 0-9, 50"},
+ {Name: "--prores-profile", Description: "ProRes profile, need --codec=prores to be set"},
+ {Name: "--x264-preset", Description: "Custom pixel format, see docs for available values"},
+ {Name: "--muted", Description: "Outputs no audio"},
+ {Name: "--height", Description: "Override the composition height"},
+ {Name: "--width", Description: "Override the composition width"},
+ {Name: "--frame", Description: "Which frame to render (default 0)"},
+ {Name: "--memory", Description: "Amount of memory in MB to allocate"},
+ {Name: "--disk", Description: "Amount of disk space in MB to allocate"},
+ },
+ })
+}
diff --git a/commands/js/rollup.go b/commands/js/rollup.go
new file mode 100644
index 0000000..c59a9c8
--- /dev/null
+++ b/commands/js/rollup.go
@@ -0,0 +1,54 @@
+package js
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "rollup",
+ Description: "Next-generation ES module bundler",
+ Options: []core.Option{
+ {Name: "-c", Description: "Directory for chunks (if absent, prints to stdout)"},
+ {Name: "-e", Description: "Comma-separate list of module IDs to exclude"},
+ {Name: "-f", Description: "Type of output (amd, cjs, es, iife, umd, system)"},
+ {Name: "-g", Description: "Comma-separate list of `moduleID:Global` pairs"},
+ {Name: "-h", Description: "Show help message"},
+ {Name: "-i", Description: "Input (alternative to )"},
+ {Name: "-m", Description: "Generate sourcemap (`-m inline` for inline map)"},
+ {Name: "-n", Description: "Name for UMD export"},
+ {Name: "-o", Description: "Single output file (if absent, prints to stdout)"},
+ {Name: "-p", Description: "Use the plugin specified (may be repeated)"},
+ {Name: "-v", Description: "Show version number"},
+ {Name: "-w", Description: "Watch files in bundle and rebuild on changes"},
+ {Name: "--assetFileNames", Description: "Name pattern for emitted assets"},
+ {Name: "--banner", Description: "Code to insert at top of bundle (outside wrapper)"},
+ {Name: "--chunkFileNames", Description: "Name pattern for emitted secondary chunks"},
+ {Name: "--compact", Description: "Minify wrapper code"},
+ {Name: "--context", Description: "Specify top-level 'this' value"},
+ {Name: "--entryFileNames", Description: "Name pattern for emitted entry chunks"},
+ {Name: "--environment", Description: "Settings passed to config file"},
+ {Name: "--no-esModule", Description: "Do not add __esmodule property"},
+ {Name: "--exports", Description: "Specify export mode (auto, default, named, none)"},
+ {Name: "--extend", Description: "Extend global variable defined by --name"},
+ {Name: "--no-externalLiveBindings", Description: "Do not generate code to support live bindings"},
+ {Name: "--failAfterWarnings", Description: "Exit with an error if the build produced warnings"},
+ {Name: "--footer", Description: "Code to insert at end of bundle (outside wrapper)"},
+ {Name: "--no-freeze", Description: "Do not freeze namespace objects"},
+ {Name: "--no-hoistTransistiveImports", Description: "Do not hoist transistive imports into entry chunks"},
+ {Name: "--no-indent", Description: "Don't indent result"},
+ {Name: "--no-interop", Description: "Do not include interop block"},
+ {Name: "--inlineDynamicImports", Description: "Create a single bundle when using dynamic imports"},
+ {Name: "--intro", Description: "Code to insert at top of bundle (inside wrapper)"},
+ {Name: "--minifyInternalImports", Description: "Force or disable minification of internal imports"},
+ {Name: "--namespaceToStringTag", Description: "Create proper '.toString' methods for namespaces"},
+ {Name: "--noConflict", Description: "Generate a noConflict method for UMD globals"},
+ {Name: "--outro", Description: "Code to insert at end of bundle (inside wrapper)"},
+ {Name: "--preferConst", Description: "Use 'const' instead of 'var' for exports"},
+ {Name: "--no-preserveEntrySignatures", Description: "Avoid facade chunks for entry points"},
+ {Name: "--preserveModules", Description: "Preserve module structure"},
+ {Name: "--preserveModulesRoot", Description: "Put preserved modules under this path at root level"},
+ {Name: "--preserveSymlinks", Description: "Do not follow symlinks when resolving files"},
+ },
+ })
+}
diff --git a/commands/js/rome.go b/commands/js/rome.go
new file mode 100644
index 0000000..405e712
--- /dev/null
+++ b/commands/js/rome.go
@@ -0,0 +1,48 @@
+package js
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "rome",
+ Description: "Rome CLI",
+ Subcommands: []core.Subcommand{
+ {Name: "check", Description: "Run the linter on a set of files"},
+ {Name: "ci", Description: "Run the linter and formatter check on a set of files"},
+ {Name: "format", Description: "Run the formatter on a set of files"},
+ {Name: "init", Description: "Bootstraps a new rome project"},
+ {Name: "start", Description: "Start the Rome daemon server process"},
+ {Name: "stop", Description: "Stop the Rome daemon server process"},
+ {Name: "lsp-proxy", Description: "Acts as a server for the Language Server Protocol over stdin/stdout"},
+ {Name: "rage", Description: "Prints information for debugging"},
+ {Name: "version", Description: "Shows the Rome version information and quit"},
+ {Name: "help", Description: "Prints help message"},
+ },
+ Options: []core.Option{
+ {Name: "--colors", Description: "Set the formatting mode for markup"},
+ {Name: "--use-server", Description: "Connect to a running instance of the Rome daemon server"},
+ {Name: "--version", Description: "Show the Rome version information and quit"},
+ {Name: "--files-max-size", Description: "The maximum allowed size for source code files in bytes"},
+ {Name: "--apply", Description: "Apply safe fixes"},
+ {Name: "--apply-unsafe", Description: "Apply safe and unsafe fixes"},
+ {Name: "--max-diagnostics", Description: "Cap the amount of diagnostics displayed"},
+ {Name: "--config-path", Description: "Set the filesystem path to the config dir of the rome.json file"},
+ {Name: "--verbose", Description: "Print additional verbose advice on diagnostics"},
+ {Name: "--formatter-enabled", Description: "Allow to enable or disable the formatter check"},
+ {Name: "--linter-enabled", Description: "Allow to enable or disable the linter check"},
+ {Name: "--organize-imports-enabled", Description: "Allow to enable or disable the organize imports"},
+ {Name: "--indent-style", Description: "Change the indention character"},
+ {Name: "--indent-size", Description: "How many spaces should be used for indentation"},
+ {Name: "--line-width", Description: "How many characters the formatter is allowed to print in a single line"},
+ {Name: "--quote-style", Description: "Changes the quotation character for strings"},
+ {Name: "--quote-properties", Description: "Changes when properties in object should be quoted"},
+ {Name: "--trailing-comma", Description: "Changes trailing commas in multi-line comma-separated syntactic structures"},
+ {Name: "--semicolons", Description: "Changes when to print semicolons for statements"},
+ {Name: "--write", Description: "Edit the files in place (beware!) instead of printing the diff to the console"},
+ {Name: "--skip-errors", Description: "Skip over files containing syntax errors instead of emitting an error diagnostic"},
+ {Name: "--stdin-file-path", Description: "A file name with its extension to pass when reading from standard in"},
+ },
+ })
+}
diff --git a/commands/js/rush.go b/commands/js/rush.go
new file mode 100644
index 0000000..7335df2
--- /dev/null
+++ b/commands/js/rush.go
@@ -0,0 +1,53 @@
+package js
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "rush",
+ Description: "Projects",
+ Subcommands: []core.Subcommand{
+ {Name: "add", Description: "Adds one or more dependencies to the package.json and runs rush update"},
+ {Name: "init", Description: "Initializes a new repository to be managed by Rush"},
+ {Name: "init-autoinstaller", Description: "Initializes a new autoinstaller"},
+ {Name: "link", Description: "Create node_modules symlinks for all projects"},
+ {Name: "list", Description: "List package information for all projects in the repo"},
+ {Name: "unlink", Description: "Delete node_modules symlinks for all projects in the repo"},
+ {Name: "update-autoinstaller", Description: "Updates autoinstaller package dependencies"},
+ {Name: "update-cloud-credentials", Description: "(EXPERIMENTAL) Update the credentials used by the build cache provider"},
+ {Name: "version", Description: "Manage package versions in the repo"},
+ {Name: "rebuild", Description: "Clean and rebuild the entire set of projects"},
+ {Name: "tab-complete", Description: "Provides tab completion"},
+ },
+ Options: []core.Option{
+ {Name: "-t", Description: "Multi-Project Build Tool"},
+ {Name: "-p", Description: "Specify package to the dependencies of the current project"},
+ {Name: "--exact", Description: "If specified, the dependency will be added to all projects"},
+ {Name: "-v", Description: "Verify the change file has been generated and that it is a valid JSON file"},
+ {Name: "--no-fetch", Description: "The message to apply to all changed projects if the --bulk flag is provided"},
+ {Name: "--bump-type", Description: "The bump type to apply to all changed projects if the --bulk flag is provided"},
+ {Name: "--variant", Description: "If this flag is specified, output will be in JSON format"},
+ {Name: "--overwrite-existing", Description: "Initializes a new autoinstaller"},
+ {Name: "--name", Description: "Overrides the default maximum number of install attempts. The default value is 3"},
+ {Name: "--ignore-hooks", Description: "Only check the validity of the shrinkwrap file without performing an install"},
+ {Name: "-f", Description: "List package information for all projects in the repo"},
+ {Name: "-a", Description: "If this flag is specified, applied changes will be published to the NPM registry"},
+ {Name: "--add-commit-details", Description: "Adds commit author and hash to the changelog.json files for each change"},
+ {Name: "--regenerate-changelogs", Description: "Regenerates all changelog files based on the current JSON content"},
+ {Name: "-r", Description: "Append a suffix to all changed versions. Cannot be used with --prerelease-name"},
+ {Name: "--force", Description: "Skips execution of all git hooks. Make sure you know what you are skipping"},
+ {Name: "--unsafe", Description: "If this flag is specified, output will be in JSON format"},
+ {Name: "--all", Description: "If this flag is specified, output will list all detected dependencies"},
+ {Name: "-i", Description: "A static credential, to be cached"},
+ {Name: "-d", Description: "If specified, delete stored credentials"},
+ {Name: "-b", Description: "Updates package versions if needed to satisfy version policies"},
+ {Name: "--override-version", Description: "Bumps package version based on version policies"},
+ {Name: "--bypass-policy", Description: "The name of the version policy"},
+ {Name: "--override-bump", Description: "Skips execution of all git hooks. Make sure you know what you are skipping"},
+ {Name: "--word", Description: "The position in the word to be completed. The default value is 0"},
+ {Name: "-h", Description: "Show this help message and exit"},
+ },
+ })
+}
diff --git a/commands/js/sequelize.go b/commands/js/sequelize.go
new file mode 100644
index 0000000..418a286
--- /dev/null
+++ b/commands/js/sequelize.go
@@ -0,0 +1,36 @@
+package js
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "sequelize",
+ Description: "The environment to run the command in",
+ Options: []core.Option{
+ {Name: "--env", Description: "The environment to run the command in"},
+ {Name: "--config", Description: "The path to the config file"},
+ {Name: "--options-path", Description: "The path to a JSON file with additional options"},
+ {Name: "--migrations-path", Description: "The path to the migrations folder"},
+ {Name: "--seeders-path", Description: "The path to the seeders folder"},
+ {Name: "--models-path", Description: "The path to the models folder"},
+ {Name: "--url", Description: "The database connection string to use"},
+ {Name: "--debug", Description: "When available show various debug information"},
+ {Name: "--help", Description: "Show help"},
+ {Name: "--version", Description: "Show version number"},
+ {Name: "--charset", Description: "Pass charset option to dialect, MYSQL only"},
+ {Name: "--collate", Description: "Pass collate option to dialect"},
+ {Name: "--encoding", Description: "Pass encoding option to dialect, PostgreSQL only"},
+ {Name: "--ctype", Description: "Pass ctype option to dialect, PostgreSQL only"},
+ {Name: "--template", Description: "Pass template option to dialect, PostgreSQL only"},
+ {Name: "--force", Description: "Will drop the existing config folder and re-create it"},
+ {Name: "--to", Description: "Migration name to run migrations until"},
+ {Name: "--from", Description: "Migration name to start migrations from (excluding)"},
+ {Name: "--seed", Description: "List of seed files"},
+ {Name: "--name", Description: "Name of the migration to undo"},
+ {Name: "--attributes", Description: "A list of attributes"},
+ {Name: "--underscored", Description: "Use snake case for the timestamp's attribute names"},
+ },
+ })
+}
diff --git a/commands/js/serve.go b/commands/js/serve.go
new file mode 100644
index 0000000..93e7c8f
--- /dev/null
+++ b/commands/js/serve.go
@@ -0,0 +1,30 @@
+package js
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "serve",
+ Description: "Static file serving and directory listing",
+ Options: []core.Option{
+ {Name: "-h", Description: "Shows help message"},
+ {Name: "-v", Description: "Displays the current version of serve"},
+ {Name: "-l", Description: "E.g. serve --listen 1234"},
+ {Name: "-p", Description: "Specify custom port"},
+ {Name: "-d", Description: "Show debugging information"},
+ {Name: "-s", Description: "Rewrite all not-found requests to `index.html`"},
+ {Name: "-c", Description: "Specify custom path to `serve.json`"},
+ {Name: "-C", Description: "Enable CORS, sets `Access-Control-Allow-Origin` to `*`"},
+ {Name: "-n", Description: "Do not copy the local address to the clipboard"},
+ {Name: "-u", Description: "Do not compress files"},
+ {Name: "--no-etag", Description: "Send `Last-Modified` header instead of `ETag`"},
+ {Name: "-S", Description: "Resolve symlinks instead of showing 404 errors"},
+ {Name: "--ssl-cert", Description: "Optional path to an SSL/TLS certificate to serve with HTTPS"},
+ {Name: "--ssl-key", Description: "Optional path to the SSL/TLS certificate's private key"},
+ {Name: "--ssl-pass", Description: "Optional path to the SSL/TLS certificate's passphrase"},
+ {Name: "--no-port-switching", Description: "Do not open a port other than the one specified when it's taken"},
+ },
+ })
+}
diff --git a/commands/js/shadcn_ui.go b/commands/js/shadcn_ui.go
new file mode 100644
index 0000000..4580172
--- /dev/null
+++ b/commands/js/shadcn_ui.go
@@ -0,0 +1,25 @@
+package js
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "shadcn-ui",
+ Description: "Shadcn UI CLI",
+ Subcommands: []core.Subcommand{
+ {Name: "add", Description: "Add a component to your project"},
+ {Name: "components", Description: "The components to add"},
+ {Name: "diff", Description: "Check for updates against the registry"},
+ {Name: "component", Description: "The component name"},
+ {Name: "init", Description: "Initialize your project and install dependencies"},
+ },
+ Options: []core.Option{
+ {Name: "-y", Description: "Skip confirmation prompt"},
+ {Name: "-o", Description: "Overwrite existing files"},
+ {Name: "-c", Description: "The working directory. defaults to the current directory"},
+ {Name: "-p", Description: "The path to add the component to"},
+ },
+ })
+}
diff --git a/commands/js/start_storybook.go b/commands/js/start_storybook.go
new file mode 100644
index 0000000..c04d1f8
--- /dev/null
+++ b/commands/js/start_storybook.go
@@ -0,0 +1,30 @@
+package js
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "start-storybook",
+ Description: "Display usage information",
+ Options: []core.Option{
+ {Name: "--help", Description: "Display usage information"},
+ {Name: "-V", Description: "Display the version number"},
+ {Name: "-s", Description: "Directory where to load static files from, comma-separated list"},
+ {Name: "-c", Description: "Directory where to load Storybook configurations from"},
+ {Name: "--https", Description: "Provide an SSL certificate. (Required with --https)"},
+ {Name: "--ssl-key", Description: "Provide an SSL key. (Required with --https)"},
+ {Name: "--smoke-test", Description: "Exit after successful start"},
+ {Name: "--ci", Description: "CI mode (skip interactive prompts, don't open browser)"},
+ {Name: "--quiet", Description: "Suppress verbose build output"},
+ {Name: "--no-dll", Description: "Do not use dll reference (no-op)"},
+ {Name: "--debug-webpack", Description: "Display final webpack configurations for debugging purposes"},
+ {Name: "--webpack-stats-json", Description: "Write Webpack Stats JSON to disk"},
+ {Name: "--docs", Description: "Starts Storybook in documentation mode"},
+ {Name: "--no-manager-cache", Description: "Storybook start CLI tools"},
+ {Name: "-p", Description: "Port to run Storybook"},
+ {Name: "-h", Description: "Host to run Storybook"},
+ },
+ })
+}
diff --git a/commands/js/stencil.go b/commands/js/stencil.go
new file mode 100644
index 0000000..8c36ea2
--- /dev/null
+++ b/commands/js/stencil.go
@@ -0,0 +1,45 @@
+package js
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "stencil",
+ Description: "CLI to build Stencil projects and generate components",
+ Subcommands: []core.Subcommand{
+ {Name: "build", Description: "Build components for development or production"},
+ {Name: "workers", Description: "Number of workers"},
+ {Name: "test", Description: "Run unit and end-to-end tests"},
+ {Name: "generate", Description: "Bootstrap components"},
+ {Name: "telemetry", Description: "Opt in or out of telemetry"},
+ {Name: "off", Description: "Disable sharing anonymous usage data"},
+ {Name: "on", Description: "Enable sharing anonymous usage data"},
+ },
+ Options: []core.Option{
+ {Name: "--ci", Description: "Set stencil config file"},
+ {Name: "--debug", Description: "Set the log level to debug"},
+ {Name: "--dev", Description: "Development build"},
+ {Name: "--docs-readme", Description: "Generate component readme.md docs"},
+ {Name: "--es5", Description: "Creates an ES5 compatible build"},
+ {Name: "--log", Description: "Write stencil-build.log file"},
+ {Name: "--prerender", Description: "Prerender the application"},
+ {Name: "--prod", Description: "Runs a production build"},
+ {Name: "--max-workers", Description: "Max number of workers the compiler should use"},
+ {Name: "--next", Description: "Opt-in to test the 'next' Stencil compiler features"},
+ {Name: "--no-cache", Description: "Disables using the cache"},
+ {Name: "--no-open", Description: "Do not automatically open the browser window"},
+ {Name: "--port", Description: "Port for the Integrated Dev Server"},
+ {Name: "--serve", Description: "Start the dev-server"},
+ {Name: "--stats", Description: "Write stencil-stats.json file"},
+ {Name: "--verbose", Description: "Logs additional information about each step of the build"},
+ {Name: "--watch", Description: "Rebuild when files update"},
+ {Name: "--spec", Description: "Run unit tests with Jest"},
+ {Name: "--e2e", Description: "Run e2e tests with Puppeteer"},
+ {Name: "--no-build", Description: "Skips build process before running the tests"},
+ {Name: "--help", Description: "Display the help output explaining the different flags"},
+ {Name: "--version", Description: "Prints the current Stencil version"},
+ },
+ })
+}
diff --git a/commands/js/swagger_typescript_api.go b/commands/js/swagger_typescript_api.go
new file mode 100644
index 0000000..3fe2bcc
--- /dev/null
+++ b/commands/js/swagger_typescript_api.go
@@ -0,0 +1,47 @@
+package js
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "swagger-typescript-api",
+ Description: "Generate api via swagger scheme",
+ Options: []core.Option{
+ {Name: "--output", Description: "Output path of generated templates"},
+ {Name: "--modular", Description: "Http client type"},
+ {Name: "--clean-output", Description: "Clean output folder before generate template"},
+ {Name: "--rewrite", Description: "Rewrite content in existing templates"},
+ {Name: "--version", Description: "Output the current version"},
+ {Name: "--path", Description: "Path/url to swagger scheme"},
+ {Name: "--default-as-success", Description: "Generate additional information about request responses"},
+ {Name: "--union-enums", Description: "Generate readonly properties"},
+ {Name: "--route-types", Description: "Generate type definitions for API routes"},
+ {Name: "--no-client", Description: "Do not generate an API class"},
+ {Name: "--enum-names-as-values", Description: "Use values in 'x-enumNames' as enum values (not only as keys)"},
+ {Name: "--extract-request-params", Description: "Extract request params to data contract"},
+ {Name: "--extract-request-body", Description: "Extract request body type to data contract"},
+ {Name: "--extract-response-body", Description: "Extract response body type to data contract"},
+ {Name: "--extract-response-error", Description: "Extract response error type to data contract"},
+ {Name: "--js", Description: "Generate js api module with declaration file"},
+ {Name: "--module-name-index", Description: "Determines which path index should be used for routes separation"},
+ {Name: "--module-name-first-tag", Description: "Splits routes based on the first tag"},
+ {Name: "--disableStrictSSL", Description: "Disabled strict SSL"},
+ {Name: "--disableProxy", Description: "Disabled proxy"},
+ {Name: "--axios", Description: "Generate axios http client"},
+ {Name: "--unwrap-response-data", Description: "Unwrap the data item from the response"},
+ {Name: "--disable-throw-on-error", Description: "Do not throw an error when response.ok is not true (default: false)"},
+ {Name: "--single-http-client", Description: "Ability to send HttpClient instance to Api constructor (default: false)"},
+ {Name: "--silent", Description: "Output only errors to console"},
+ {Name: "--default-response", Description: "Default type for empty response schema"},
+ {Name: "--type-prefix", Description: "Data contract name prefix"},
+ {Name: "--type-suffix", Description: "Data contract name suffix"},
+ {Name: "--patch", Description: "Fix up small errors in the swagger source definition (default: false)"},
+ {Name: "--debug", Description: "Additional information about processes inside this tool (default: false)"},
+ {Name: "--another-array-type", Description: "Generate array types as Array (by default Type[]) (default: false)"},
+ {Name: "--sort-types", Description: "Sort fields and types (default: false)"},
+ {Name: "--extract-enums", Description: "Show help for swagger-typescript-api"},
+ },
+ })
+}
diff --git a/commands/js/swc.go b/commands/js/swc.go
new file mode 100644
index 0000000..3bc14d3
--- /dev/null
+++ b/commands/js/swc.go
@@ -0,0 +1,33 @@
+package js
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "swc",
+ Description: "Path to the file",
+ Options: []core.Option{
+ {Name: "--filename", Description: "Path to the file"},
+ {Name: "--config-file", Description: "Path to a .swcrc file to use"},
+ {Name: "--env-name", Description: "Whether or not to look up .swcrc files"},
+ {Name: "--ignore", Description: "List of glob paths to not compile"},
+ {Name: "--only", Description: "List of glob paths to only compile"},
+ {Name: "--watch", Description: "Watch for changes and recompile"},
+ {Name: "--quiet", Description: "Suppress compilation output"},
+ {Name: "--source-maps", Description: "Generate source maps"},
+ {Name: "--source-map-target", Description: "Define the file for the source map"},
+ {Name: "--source-file-name", Description: "Set sources[0] on returned source map"},
+ {Name: "--source-root", Description: "The root from which all sources are relative"},
+ {Name: "--out-file", Description: "Compile all input files into a single file"},
+ {Name: "--out-dir", Description: "Compile an input directory of modules into an output directory"},
+ {Name: "--copy-files", Description: "When compiling a directory, copy over non-compilable files"},
+ {Name: "--include-dotfiles", Description: "Include dotfiles when compiling and copying non-compilable files"},
+ {Name: "--config", Description: "Override a config from .swcrc file"},
+ {Name: "--sync", Description: "Invoke swc synchronously. Useful for debugging"},
+ {Name: "--log-watch-compilation", Description: "Log a message when a watched file is successfully compiled"},
+ {Name: "--extensions", Description: "Log a message when a watched file is successfully compiled"},
+ },
+ })
+}
diff --git a/commands/js/truffle.go b/commands/js/truffle.go
new file mode 100644
index 0000000..3b0322e
--- /dev/null
+++ b/commands/js/truffle.go
@@ -0,0 +1,76 @@
+package js
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "truffle",
+ Description: "Execute build pipeline (if configuration present)",
+ Subcommands: []core.Subcommand{
+ {Name: "build", Description: "Execute build pipeline (if configuration present)"},
+ {Name: "compile", Description: "Compile contract source files"},
+ {Name: "config", Description: "Set user-level configuration options"},
+ {Name: "get", Description: "Get a Truffle configuration option value"},
+ {Name: "set", Description: "Set a Truffle configuration option value"},
+ {Name: "console", Description: "Run a console with contract abstractions and commands available"},
+ {Name: "name", Description: "Network name must exist in the configuration"},
+ {Name: "create", Description: "Helper to create new contracts, migrations and tests"},
+ {Name: "ArtifactName", Description: "Name of new artifact. (required)"},
+ {Name: "debug", Description: "Interactively debug any transaction on the blockchain"},
+ {Name: "deploy", Description: "Alias for migrate. See migrate for details"},
+ {Name: "develop", Description: "Open a console with a development blockchaine"},
+ {Name: "exec", Description: "Execute a JS module within the Truffle environment"},
+ {Name: "help", Description: "Display a list of all commands or information about a specific command"},
+ {Name: "command", Description: "Display usage information about the specified command"},
+ {Name: "init", Description: "Initialize new and empty Ethereum project"},
+ {Name: "install", Description: "Install a package from the Ethereum Package Registry"},
+ {Name: "package_name", Description: "Name of the package as listed in the Ethereum Package Registry. (required)"},
+ {Name: "networks", Description: "Show addresses for deployed contracts on each network"},
+ {Name: "obtain", Description: "Fetch and cache a specified compiler"},
+ {Name: "opcode", Description: "Print the compiled opcodes for a given contract"},
+ {Name: "publish", Description: "Publish a package to the Ethereum Package Registry"},
+ {Name: "run", Description: "Run a third-party plugin command"},
+ {Name: "version", Description: "Show version number and exit"},
+ {Name: "watch", Description: "Watch filesystem for changes and rebuild the project automatically"},
+ {Name: "preserve", Description: "Save data to decentralized storage platforms like IPFS and Filecoin"},
+ {Name: "migrate", Description: "Run migrations to deploy contracts"},
+ {Name: "number", Description: "The number refers to the prefix of the migration file"},
+ {Name: "unbox", Description: "Download a Truffle Box, a pre-built Truffle project"},
+ {Name: "box_name", Description: "Name of the Truffle Box. (required)"},
+ {Name: "test", Description: "Run JavaScript and Solidity tests"},
+ },
+ Options: []core.Option{
+ {Name: "--list", Description: "Compile all contracts instead of only the contracts changed since last compile"},
+ {Name: "--quiet", Description: "Suppress all compilation output"},
+ {Name: "--enable-analytics", Description: "Enable Truffle to send usage data to Google Analytics"},
+ {Name: "--disable-analytics", Description: "Disable Truffle's ability to send usage data to Google Analytics"},
+ {Name: "--network", Description: "Specify the network to use"},
+ {Name: "--verbose-rpc", Description: "Log communication between Truffle and the Ethereum client"},
+ {Name: "--require", Description: "Preload console environment from required JavaScript file"},
+ {Name: "--require-none", Description: "Helper to create new contracts, migrations and tests"},
+ {Name: "--fetch-external", Description: "Allows the debugger to compile Solidity test contracts. Implies --compile-all"},
+ {Name: "--compile-all", Description: "Alias for migrate. See migrate for details"},
+ {Name: "--log", Description: "Preload console environment from required JavaScript file"},
+ {Name: "--compile", Description: "Compile contracts before executing the script"},
+ {Name: "--force", Description: "Install a package from the Ethereum Package Registry"},
+ {Name: "--clean", Description: "Remove all network artifacts that aren't associated with a named network"},
+ {Name: "--solc", Description: "Download and cache a version of the solc compiler. (required)"},
+ {Name: "--environment", Description: "Environment name, as defined in truffle-config `environments` object"},
+ {Name: "--ipfs", Description: "Preserve to IPFS"},
+ {Name: "--filecoin", Description: "Preserve to Filecoin"},
+ {Name: "--buckets", Description: "Preserve to Textile Buckets"},
+ {Name: "--reset", Description: "Run contracts from a specific migration"},
+ {Name: "--to", Description: "Run contracts to a specific migration"},
+ {Name: "--dry-run", Description: "Fork the network specified and only perform a test migration"},
+ {Name: "--skip-dry-run", Description: "Skip the test migration performed before the real migration"},
+ {Name: "--interactive", Description: "Prompt to confirm that the user wants to proceed after the dry run"},
+ {Name: "--describe-json", Description: "Prints additional status messages"},
+ {Name: "--show-events", Description: "Log all contract events"},
+ {Name: "--debug", Description: "Allows one to rename the debug() function to something else"},
+ {Name: "--bail", Description: "Bail after the first test failure. May be abbreviated -b"},
+ {Name: "--stacktrace", Description: "Shortcut for --stacktrace --compile-all-debug"},
+ },
+ })
+}
diff --git a/commands/js/ts_node.go b/commands/js/ts_node.go
new file mode 100644
index 0000000..2cbe672
--- /dev/null
+++ b/commands/js/ts_node.go
@@ -0,0 +1,40 @@
+package js
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "ts-node",
+ Description: "Run the TypeScript interpreter for Node.JS",
+ Options: []core.Option{
+ {Name: "--help", Description: "Show help for ts-node"},
+ {Name: "-v", Description: "Print version information of the ts-node module"},
+ {Name: "-e", Description: "Evaluate script"},
+ {Name: "-p", Description: "Evaluate script and print result"},
+ {Name: "-r", Description: "Require module before executing"},
+ {Name: "-i", Description: "Always open interactive REPL"},
+ {Name: "--show-config", Description: "Print resolved Typescript config to the terminal"},
+ {Name: "--cwd-mode", Description: "Resolve Typescript config based on the current working directory"},
+ {Name: "-T", Description: "Use the Typescript transpile module mode"},
+ {Name: "-H", Description: "Use the Typescript compiler host API"},
+ {Name: "-I", Description: "Ignore patterns from Typescript compilation"},
+ {Name: "-P", Description: "Specify TypeScript project location"},
+ {Name: "-C", Description: "Use a custom compiler"},
+ {Name: "--transpiler", Description: "Use a custom transpiler"},
+ {Name: "-D", Description: "Specify Typescript diagnostic code to ignore"},
+ {Name: "-O", Description: "JSON object that will be merged with the compiler options"},
+ {Name: "--cwd", Description: "Specify working directory"},
+ {Name: "--files", Description: "Load files, include and exclude from Typescript config on startup"},
+ {Name: "--pretty", Description: "Use the pretty formatter for diagnostic errors"},
+ {Name: "--skip-project", Description: "Skip reading Typescript config"},
+ {Name: "--scope", Description: "Scope compilation to scope directory specified"},
+ {Name: "--scope-dir", Description: "Directory for scope parameter"},
+ {Name: "--skip-ignore", Description: "Skip --ignore checks"},
+ {Name: "--prefer-ts-exts", Description: "Prefer Typescript files over JavaScript files when importing files"},
+ {Name: "--log-error", Description: "Pipe Typescript errors to stderr instead of throwing exceptions"},
+ {Name: "--no-experimental-repl-await", Description: "Disable the top-level await function in REPL"},
+ },
+ })
+}
diff --git a/commands/js/tsc.go b/commands/js/tsc.go
new file mode 100644
index 0000000..faf34e8
--- /dev/null
+++ b/commands/js/tsc.go
@@ -0,0 +1,54 @@
+package js
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "tsc",
+ Description: "CLI tool for TypeScript compiler",
+ Options: []core.Option{
+ {Name: "--all", Description: "Show all compiler options"},
+ {Name: "--generateTrace", Description: "Generates an event trace and a list of types"},
+ {Name: "--help", Description: "Gives local information for help on the CLI"},
+ {Name: "--init", Description: "Initializes a TypeScript project and creates a tsconfig.json file"},
+ {Name: "--listFilesOnly", Description: "Print names of files that are part of the compilation and then stop processing"},
+ {Name: "--locale", Description: "Set the language of the messaging from TypeScript. This does not affect emit"},
+ {Name: "--project", Description: "Print the final configuration instead of building"},
+ {Name: "--version", Description: "Print the compiler's version"},
+ {Name: "--build", Description: "Build one or more projects and their dependencies, if out of date"},
+ {Name: "--clean", Description: "Delete the outputs of all projects"},
+ {Name: "--dry", Description: "Show what would be built (or deleted, if specified with '--clean')"},
+ {Name: "--force", Description: "Build all projects, including those that appear to be up to date"},
+ {Name: "--verbose", Description: "Enable verbose logging"},
+ {Name: "--excludeDirectories", Description: "Remove a list of directories from the watch process"},
+ {Name: "--excludeFiles", Description: "Remove a list of files from the watch mode's processing"},
+ {Name: "--fallbackPolling", Description: "Watch input files"},
+ {Name: "--watchDirectory", Description: "Specify how the TypeScript watch mode works"},
+ {Name: "--allowJs", Description: "Allow 'import x from y' when a module doesn't have a default export"},
+ {Name: "--allowUmdGlobalAccess", Description: "Allow accessing UMD globals from modules"},
+ {Name: "--allowUnreachableCode", Description: "Disable error reporting for unreachable code"},
+ {Name: "--allowUnusedLabels", Description: "Disable error reporting for unused label"},
+ {Name: "--alwaysStrict", Description: "Ensure 'use strict' is always emitted"},
+ {Name: "--checkJs", Description: "Enable error reporting in type-checked JavaScript files"},
+ {Name: "--composite", Description: "Generate .d.ts files from TypeScript and JavaScript files in your project"},
+ {Name: "--declarationDir", Description: "Specify the output directory for generated declaration files"},
+ {Name: "--declarationMap", Description: "Create sourcemaps for d.ts files"},
+ {Name: "--diagnostics", Description: "Output compiler performance information after building"},
+ {Name: "--disableSizeLimit", Description: "Opt a project out of multi-project reference checking when editing"},
+ {Name: "--emitBOM", Description: "Emit a UTF-8 Byte Order Mark (BOM) in the beginning of output files"},
+ {Name: "--emitDeclarationOnly", Description: "Only output d.ts files and not JavaScript files"},
+ {Name: "--emitDecoratorMetadata", Description: "Emit design-type metadata for decorated declarations in source files"},
+ {Name: "--esModuleInterop", Description: "Differentiate between undefined and not present when type checking"},
+ {Name: "--experimentalDecorators", Description: "Enable experimental support for TC39 stage 2 draft decorators"},
+ {Name: "--explainFiles", Description: "Print files read during the compilation including why it was included"},
+ {Name: "--extendedDiagnostics", Description: "Output more detailed compiler performance information after building"},
+ {Name: "--generateCpuProfile", Description: "Emit a v8 CPU profile of the compiler run for debugging"},
+ {Name: "--importHelpers", Description: "Specify emit/checking behavior for imports that are only used for types"},
+ {Name: "--incremental", Description: "Save .tsbuildinfo files to allow for incremental compilation of projects"},
+ {Name: "--inlineSourceMap", Description: "Include sourcemap files inside the emitted JavaScript"},
+ {Name: "--inlineSources", Description: "Include source code in the sourcemaps inside the emitted JavaScript"},
+ },
+ })
+}
diff --git a/commands/js/tsx.go b/commands/js/tsx.go
new file mode 100644
index 0000000..17e3d08
--- /dev/null
+++ b/commands/js/tsx.go
@@ -0,0 +1,22 @@
+package js
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "tsx",
+ Description: "Run TypeScript file using tsx",
+ Subcommands: []core.Subcommand{
+ {Name: "watch", Description: "Run the script and watch for changes"},
+ },
+ Options: []core.Option{
+ {Name: "--help", Description: "Show help for tsx"},
+ {Name: "--no-cache", Description: "Disable caching"},
+ {Name: "--clear-screen", Description: "Disable clearing the screen on rerun"},
+ {Name: "-v", Description: "Show version"},
+ {Name: "--tsconfig", Description: "Custom tsconfig.json path"},
+ },
+ })
+}
diff --git a/commands/js/turbo.go b/commands/js/turbo.go
new file mode 100644
index 0000000..93c2b10
--- /dev/null
+++ b/commands/js/turbo.go
@@ -0,0 +1,48 @@
+package js
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "turbo",
+ Description: "Print the version",
+ Subcommands: []core.Subcommand{
+ {Name: "bin", Description: "Get the path to the turbo binary"},
+ {Name: "link", Description: "Link your local directory to a Vercel organization and enable remote caching"},
+ {Name: "login", Description: "Login to your Vercel account"},
+ {Name: "logout", Description: "Logout of your Vercel account"},
+ {Name: "prune", Description: "Prepare a subset of your monorepo"},
+ {Name: "run", Description: "Run tasks in your monorepo"},
+ {Name: "new-only", Description: "Only new output with hashes for cached tasks"},
+ {Name: "hash-only", Description: "Only turbo-computed task hashes"},
+ {Name: "full", Description: "Show all output"},
+ {Name: "none", Description: "Hide process output"},
+ },
+ Options: []core.Option{
+ {Name: "--version", Description: "Print the version"},
+ {Name: "--help", Description: "Print a help message"},
+ {Name: "--no-gitignore", Description: "Do not create or modify .gitignore"},
+ {Name: "--sso-team", Description: "Attempt to authenticate to the specified team using SSO"},
+ {Name: "--scope", Description: "Specify package to act as entry point for pruned monorepo"},
+ {Name: "--docker", Description: "Run tasks in your monorepo"},
+ {Name: "--cache-dir", Description: "Specify local filesystem cache directory"},
+ {Name: "--concurrency", Description: "Limit the concurrency of task execution (use `1` for serial)"},
+ {Name: "--continue", Description: "Continue execution even if a task exits with an error"},
+ {Name: "--force", Description: "Ignore the existing cache"},
+ {Name: "--graph", Description: "Generate a Dot graph of the task execution"},
+ {Name: "--global-deps", Description: "Limit/set scope to changed packages since a mergebase"},
+ {Name: "--team", Description: "The slug of a turborepo.com team"},
+ {Name: "--token", Description: "A turborepo.com access token"},
+ {Name: "--ignore", Description: "Files to ignore when calculating changed files (supports globs)"},
+ {Name: "--profile", Description: "File to write turbo's performance profile into"},
+ {Name: "--parallel", Description: "Execute all tasks in parallel"},
+ {Name: "--include-dependencies", Description: "Include the dependencies of tasks in execution"},
+ {Name: "--no-deps", Description: "Exclude dependent task consumers from execution"},
+ {Name: "--no-cache", Description: "Avoid saving task results to the cache (useful for development/watch tasks)"},
+ {Name: "--output-logs", Description: "Only new output with hashes for cached tasks"},
+ {Name: "--dry", Description: "List the packages in scope and the tasks that would be run"},
+ },
+ })
+}
diff --git a/commands/js/typeorm.go b/commands/js/typeorm.go
new file mode 100644
index 0000000..fba548c
--- /dev/null
+++ b/commands/js/typeorm.go
@@ -0,0 +1,45 @@
+package js
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "typeorm",
+ Description: "Show help for command",
+ Subcommands: []core.Subcommand{
+ {Name: "schema:sync", Description: "Synchronizes your entities with database schema"},
+ {Name: "schema:log", Description: "Shows sql to be executed by schema:sync command"},
+ {Name: "schema:drop", Description: "Drops all tables in the database on your default connection"},
+ {Name: "query", Description: "Executes given SQL query on a default connection"},
+ {Name: "entity:create", Description: "Generates a new entity"},
+ {Name: "subscriber:create", Description: "Generates a new subscriber"},
+ {Name: "migration:create", Description: "Creates a new migration file"},
+ {Name: "migration:generate", Description: "Generates a new migration file with sql needs to be executed to update schema"},
+ {Name: "migration:run", Description: "Runs all pending migrations"},
+ {Name: "migration:show", Description: "Show all migrations and whether they have been run or not"},
+ {Name: "migration:revert", Description: "Reverts last executed migration"},
+ {Name: "version", Description: "Prints TypeORM version this project uses"},
+ {Name: "cache:clear", Description: "Clears all data stored in query runner cache"},
+ {Name: "init", Description: "Generates initial TypeORM project structure"},
+ },
+ Options: []core.Option{
+ {Name: "--help", Description: "Show help for command"},
+ {Name: "-v", Description: "Show the version"},
+ {Name: "-c", Description: "Name of the connection on which to run a query"},
+ {Name: "-f", Description: "Name of the file with connection configuration"},
+ {Name: "-n", Description: "Name of the entity class"},
+ {Name: "-d", Description: "Directory where entity should be created"},
+ {Name: "-o", Description: "Generate a migration file on Javascript instead of Typescript"},
+ {Name: "-p", Description: "Pretty-print generated SQL"},
+ {Name: "--dr", Description: "Prints out the contents of the migration instead of writing it to a file"},
+ {Name: "--ch", Description: "Runs all pending migrations"},
+ {Name: "-t", Description: "Indicates if transaction should be used or not for migration run"},
+ {Name: "--db", Description: "Database type you'll use in your project"},
+ {Name: "--express", Description: "Indicates if express should be included in the project"},
+ {Name: "--docker", Description: "Set to true if docker-compose must be generated as well"},
+ {Name: "--pm", Description: "Install packages"},
+ },
+ })
+}
diff --git a/commands/js/vite.go b/commands/js/vite.go
new file mode 100644
index 0000000..a24dbca
--- /dev/null
+++ b/commands/js/vite.go
@@ -0,0 +1,41 @@
+package js
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "vite",
+ Description: "Native ESM-powered web dev build tool",
+ Options: []core.Option{
+ {Name: "-h", Description: "Show help message"},
+ {Name: "--host", Description: "Specify the hostname"},
+ {Name: "--port", Description: "Specify the port"},
+ {Name: "--https", Description: "Use TLS + HTTP/2"},
+ {Name: "--open", Description: "Open browser on startup"},
+ {Name: "--cors", Description: "Enable CORS"},
+ {Name: "--strictPort", Description: "Exit if the port is already in use"},
+ {Name: "--force", Description: "For the optimizer to re-bundle"},
+ {Name: "-c", Description: "Use the specified config file"},
+ {Name: "--base", Description: "Public base path"},
+ {Name: "-l", Description: "Set the log level"},
+ {Name: "--clearScreen", Description: "Enable screen clearing when logging"},
+ {Name: "-d", Description: "Show debug logs"},
+ {Name: "-f", Description: "Filter debug logs"},
+ {Name: "-m", Description: "Set env mode"},
+ {Name: "-v", Description: "Display version number"},
+ {Name: "--target", Description: "Transpile target (must be a valid esbuild target)"},
+ {Name: "--outDir", Description: "Output directory"},
+ {Name: "--assetsDir", Description: "Directory under outDir to place assets in"},
+ {Name: "--assetsInlineLimit", Description: "Static asset base64 inline threshold in bytes"},
+ {Name: "--ssr", Description: "Build specified entry for server-side rendering"},
+ {Name: "--sourcemap", Description: "Output sourcemaps for build"},
+ {Name: "--minify", Description: "Enable minification"},
+ {Name: "--manifest", Description: "Emit build manifest json"},
+ {Name: "--ssrManifest", Description: "Emit ssr manifest json"},
+ {Name: "--emptyOutDir", Description: "Force empty outDir when it's outside of root"},
+ {Name: "-w", Description: "Rebuilds when modules have changed on disk"},
+ },
+ })
+}
diff --git a/commands/js/vr.go b/commands/js/vr.go
new file mode 100644
index 0000000..c9bddf6
--- /dev/null
+++ b/commands/js/vr.go
@@ -0,0 +1,22 @@
+package js
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "vr",
+ Description: "The npm-style script runner for Deno",
+ Subcommands: []core.Subcommand{
+ {Name: "run", Description: "Run a script"},
+ {Name: "export", Description: "Export one or more scripts as standalone executable files"},
+ {Name: "upgrade", Description: "Upgrade Velociraptor to the latest version or to a specific one"},
+ },
+ Options: []core.Option{
+ {Name: "-o", Description: "The folder where the scripts will be exported"},
+ {Name: "--help", Description: "Show help for Velociraptor"},
+ {Name: "-V", Description: "Show the version number for Velociraptor"},
+ },
+ })
+}
diff --git a/commands/js/vsce.go b/commands/js/vsce.go
new file mode 100644
index 0000000..7aec0d2
--- /dev/null
+++ b/commands/js/vsce.go
@@ -0,0 +1,50 @@
+package js
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "vsce",
+ Description: "The Visual Studio Code Extension Manager",
+ Subcommands: []core.Subcommand{
+ {Name: "ls", Description: "Lists all the files that will be published"},
+ {Name: "package", Description: "Packages an extension"},
+ {Name: "publish", Description: "Publishes an extension"},
+ {Name: "unpublish", Description: "Unpublishes an extension. Example extension id: microsoft.csharp"},
+ {Name: "ls-publishers", Description: "List all known publishers"},
+ {Name: "delete-publisher", Description: "Deletes a publisher"},
+ {Name: "login", Description: "Add a publisher to the known publishers list"},
+ {Name: "logout", Description: "Remove a publisher from the known publishers list"},
+ {Name: "verify-pat", Description: "Verify if the Personal Access Token has publish rights for the publisher"},
+ {Name: "show", Description: "Show extension metadata"},
+ {Name: "search", Description: "Search extension gallery"},
+ {Name: "help", Description: "Display help for command"},
+ },
+ Options: []core.Option{
+ {Name: "--yarn", Description: "Use yarn instead of npm (default inferred from presence of yarn.lock or .yarnrc)"},
+ {Name: "--no-yarn", Description: "Use npm instead of yarn (default inferred from lack of yarn.lock or .yarnrc)"},
+ {Name: "--packagedDependencies", Description: "Select packages that should be published only (includes dependencies)"},
+ {Name: "--ignoreFile", Description: "Indicate alternative .vscodeignore"},
+ {Name: "--no-dependencies", Description: "Disable dependency detection via npm or yarn"},
+ {Name: "-o", Description: "Target architecture"},
+ {Name: "-m", Description: "Commit message used when calling `npm version`"},
+ {Name: "--no-git-tag-version", Description: "Do not update `package.json`. Valid only when [version] is provided"},
+ {Name: "--githubBranch", Description: "Skip rewriting relative links"},
+ {Name: "--baseContentUrl", Description: "Prepend all relative links in README.md with this url"},
+ {Name: "--baseImagesUrl", Description: "Prepend all relative image links in README.md with this url"},
+ {Name: "--no-gitHubIssueLinking", Description: "Disable automatic expansion of GitHub-style issue syntax into links"},
+ {Name: "--no-gitLabIssueLinking", Description: "Disable automatic expansion of GitLab-style issue syntax into links"},
+ {Name: "--pre-release", Description: "Mark this package as a pre-release"},
+ {Name: "-p", Description: "Personal Access Token (defaults to VSCE_PAT environment variable)"},
+ {Name: "-t", Description: "Target architecture"},
+ {Name: "-i", Description: "Publish the provided VSIX packages"},
+ {Name: "--noVerify", Description: "Indicate alternative .vscodeignore"},
+ {Name: "-f", Description: "Forces Unpublished Extension"},
+ {Name: "--json", Description: "Output data in json format (default: false)"},
+ {Name: "-h", Description: "Display help for command"},
+ {Name: "-V", Description: "Output the version number"},
+ },
+ })
+}
diff --git a/commands/js/vue.go b/commands/js/vue.go
new file mode 100644
index 0000000..cec1ec3
--- /dev/null
+++ b/commands/js/vue.go
@@ -0,0 +1,62 @@
+package js
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "vue",
+ Description: "Vue cli tools",
+ Subcommands: []core.Subcommand{
+ {Name: "create", Description: "Create a new project powered by vue-cli-service"},
+ {Name: "add", Description: "Install a plugin and invoke its generator in an already created project"},
+ {Name: "invoke", Description: "Invoke the generator of a plugin in an already created project"},
+ {Name: "inspect", Description: "Inspect the webpack config in a project with vue-cli-service"},
+ {Name: "serve", Description: "Serve a .js or .vue file in development mode with zero config"},
+ {Name: "build", Description: "Build a .js or .vue file in production mode with zero config"},
+ {Name: "ui", Description: "Start and open the vue-cli ui"},
+ {Name: "init", Description: "Generate a project from a remote template (legacy API, requires @vue/cli-init)"},
+ {Name: "config", Description: "Inspect and modify the config"},
+ {Name: "outdated", Description: "(experimental) check for outdated vue cli service / plugins"},
+ {Name: "upgrade", Description: "(experimental) upgrade vue cli service / plugins"},
+ {Name: "migrate", Description: "(experimental) run migrator for an already-installed cli plugin"},
+ {Name: "info", Description: "Print debugging information about your environment"},
+ },
+ Options: []core.Option{
+ {Name: "-p", Description: "Skip prompts and use saved or remote preset"},
+ {Name: "-d", Description: "Skip prompts and use default preset"},
+ {Name: "-i", Description: "Skip prompts and use inline JSON string as preset"},
+ {Name: "-m", Description: "Use specified npm client when installing dependencies"},
+ {Name: "-r", Description: "Use specified npm registry when installing dependencies (only for npm)"},
+ {Name: "-g", Description: "Force git initialization with initial commit message"},
+ {Name: "-n", Description: "Skip git initialization"},
+ {Name: "-f", Description: "Overwrite target directory if it exists"},
+ {Name: "--merge", Description: "Merge target directory if it exists"},
+ {Name: "-c", Description: "Use git clone when fetching remote preset"},
+ {Name: "-X", Description: "Use specified proxy when creating project"},
+ {Name: "-b", Description: "Scaffold project without beginner instructions"},
+ {Name: "--skipGetStarted", Description: "Output usage information"},
+ {Name: "--registry", Description: "Use specified npm registry when installing dependencies (only for npm)"},
+ {Name: "-h", Description: "Output usage information"},
+ {Name: "--mode", Description: "Inspect a specific module rule"},
+ {Name: "--plugin", Description: "Inspect a specific plugin"},
+ {Name: "--rules", Description: "List all module rule names"},
+ {Name: "--plugins", Description: "List all plugin names"},
+ {Name: "-v", Description: "Show full function definitions in output"},
+ {Name: "-o", Description: "Open browser"},
+ {Name: "-t", Description: "Build target (app | lib | wc | wc-async, default: app)"},
+ {Name: "-H", Description: "Host used for the UI server (default: localhost)"},
+ {Name: "-D", Description: "Run in dev mode"},
+ {Name: "--quiet", Description: "Don't output starting messages"},
+ {Name: "--headless", Description: "Don't open browser on start and output port"},
+ {Name: "--offline", Description: "Use cached template"},
+ {Name: "-s", Description: "Set option value"},
+ {Name: "-e", Description: "Open config with default editor"},
+ {Name: "--json", Description: "Outputs JSON result only"},
+ {Name: "--next", Description: "Also check for alpha / beta / rc versions when upgrading"},
+ {Name: "--all", Description: "Upgrade all plugins"},
+ {Name: "-V", Description: "Output the version number"},
+ },
+ })
+}
diff --git a/commands/js/watchman.go b/commands/js/watchman.go
new file mode 100644
index 0000000..4a4bb28
--- /dev/null
+++ b/commands/js/watchman.go
@@ -0,0 +1,58 @@
+package js
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "watchman",
+ Description: "A file watching service",
+ Subcommands: []core.Subcommand{
+ {Name: "clock", Description: "Returns the current clock value for a watched root"},
+ {Name: "path", Description: "The path to directory"},
+ {Name: "find", Description: "Finds all files that match the optional list of patterns under the specified dir"},
+ {Name: "get-config", Description: "Returns the .watchmanconfig for the root"},
+ {Name: "get-sockname", Description: "Get socket path"},
+ {Name: "list-capabilities", Description: "Returns the full list of supported capabilities offered by the watchman server"},
+ {Name: "log", Description: "Generates a log line in the watchman log"},
+ {Name: "level", Description: "The log level"},
+ {Name: "log-level", Description: "Changes the log level of your connection to the watchman service"},
+ {Name: "query", Description: "Executes a query against the specified root"},
+ {Name: "shutdown-server", Description: "This causes your watchman service to exit with a normal status code"},
+ {Name: "state-enter", Description: "This causes a watch to be marked as being in a particular named state"},
+ {Name: "state-leave", Description: "This causes a watch to no longer be marked as being in a particular named state"},
+ {Name: "trigger", Description: "This will create or replace a trigger"},
+ {Name: "trigger-del", Description: "Deletes a named trigger from the list of registered triggers"},
+ {Name: "trigger-list", Description: "Returns the set of registered triggers associated with a root directory"},
+ {Name: "unsubscribe", Description: "Cancels a named subscription against the specified root"},
+ {Name: "version", Description: "The version and build information for the currently running watchman service"},
+ {Name: "watch-del", Description: "Removes a watch and any associated triggers"},
+ {Name: "watch-del-all", Description: "Removes all watches and associated triggers"},
+ {Name: "watch-list", Description: "Returns a list of watched dirs"},
+ {Name: "watch-project", Description: "Requests that the project containing the requested dir is watched for changes"},
+ },
+ Options: []core.Option{
+ {Name: "--help", Description: "Show help for watchman"},
+ {Name: "--inetd", Description: "Spawning from an inetd style supervisor"},
+ {Name: "-S", Description: "Don't use the site or system spawner"},
+ {Name: "-v", Description: "Show version number for watchman"},
+ {Name: "--named-pipe-path", Description: "Specify alternate named pipe path"},
+ {Name: "-u", Description: "Specify alternate unix domain socket path"},
+ {Name: "--unix-listener-path", Description: "Specify alternate unix domain socket path"},
+ {Name: "-o", Description: "Specify the path to logfile"},
+ {Name: "--logfile", Description: "Specify the path to logfile"},
+ {Name: "--log-level", Description: "Set the log level"},
+ {Name: "--pidfile", Description: "Specify path to pidfile"},
+ {Name: "-p", Description: "Persist and wait for further responses"},
+ {Name: "-n", Description: "Don't save state between invocations"},
+ {Name: "--statefile", Description: "Specify path to file to hold watch and trigger state"},
+ {Name: "-j", Description: "Instead of parsing CLI arguments, take a single json object from stdin"},
+ {Name: "--output-encoding", Description: "CLI output encoding"},
+ {Name: "--server-encoding", Description: "CLI<->server encoding"},
+ {Name: "-f", Description: "Run the service in the foreground"},
+ {Name: "--no-pretty", Description: "Don't pretty print JSON"},
+ {Name: "--no-spawn", Description: "Don't try to start the service if it is not available"},
+ },
+ })
+}
diff --git a/commands/js/webpack.go b/commands/js/webpack.go
new file mode 100644
index 0000000..9a5cdbf
--- /dev/null
+++ b/commands/js/webpack.go
@@ -0,0 +1,66 @@
+package js
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "webpack",
+ Description: "Run webpack (default command, can be omitted)",
+ Subcommands: []core.Subcommand{
+ {Name: "build", Description: "Run webpack (default command, can be omitted)"},
+ {Name: "configtest", Description: "Validate a webpack configuration"},
+ {Name: "config-path", Description: "Path to the webpack configuration file"},
+ {Name: "help", Description: "Display help for command and options"},
+ {Name: "info", Description: "Display information about your system"},
+ {Name: "init", Description: "Initialize a new webpack project"},
+ {Name: "loader", Description: "Scaffold a webpack loader"},
+ {Name: "plugin", Description: "Scaffold a webpack plugin"},
+ {Name: "serve", Description: "Run the webpack development server"},
+ {Name: "watch", Description: "Run webpack and watch for file changes"},
+ },
+ Options: []core.Option{
+ {Name: "--config", Description: "Provide path to a webpack configuration file e.g. ./webpack.config.js"},
+ {Name: "--config-name", Description: "Name of the configuration to use"},
+ {Name: "--merge", Description: "Merge two or more configurations using 'webpack-merge'"},
+ {Name: "--env", Description: "Environment passed to the configuration when it is a function"},
+ {Name: "--node-env", Description: "Sets process.env.NODE_ENV to the specified value"},
+ {Name: "--hot", Description: "Enables Hot Module Replacement"},
+ {Name: "--no-hot", Description: "Disables Hot Module Replacement"},
+ {Name: "--analyze", Description: "It invokes webpack-bundle-analyzer plugin to get bundle information"},
+ {Name: "--progress", Description: "Print compilation progress during build"},
+ {Name: "--prefetch", Description: "Prefetch this request"},
+ {Name: "--json", Description: "Prints result as JSON or store it in a file"},
+ {Name: "--no-amd", Description: "Negative 'amd' option"},
+ {Name: "--bail", Description: "Report the first error as a hard error instead of tolerating it"},
+ {Name: "--no-bail", Description: "Negative 'bail' option"},
+ {Name: "--cache", Description: "Enable in memory caching. Disable caching"},
+ {Name: "--no-cache", Description: "Negative 'cache' option"},
+ {Name: "--cache-cache-unaffected", Description: "Negative 'cache-cache-unaffected' option"},
+ {Name: "--cache-max-generations", Description: "In memory caching. Filesystem caching"},
+ {Name: "--cache-cache-directory", Description: "Base directory for the cache (defaults to node_modules/.cache/webpack)"},
+ {Name: "--cache-cache-location", Description: "Locations for the cache (defaults to cacheDirectory / name)"},
+ {Name: "--cache-compression", Description: "Compression type used for the cache files"},
+ {Name: "--no-cache-compression", Description: "Negative 'cache-compression' option"},
+ {Name: "--cache-hash-algorithm", Description: "Algorithm used for generation the hash (see node.js crypto package)"},
+ {Name: "--cache-idle-timeout", Description: "Time in ms after which idle period the cache storing should happen"},
+ {Name: "--cache-immutable-paths", Description: "Negative 'cache-memory-cache-unaffected' option"},
+ {Name: "--cache-name", Description: "Name for the cache. Different names will lead to different coexisting caches"},
+ {Name: "--cache-profile", Description: "Track and log detailed timing information for individual cache items"},
+ {Name: "--no-cache-profile", Description: "Negative 'cache-profile' option"},
+ {Name: "--cache-store", Description: "References to another configuration to depend on"},
+ {Name: "--dependencies-reset", Description: "Determine source maps to use"},
+ {Name: "--no-devtool", Description: "Do not generate source maps"},
+ {Name: "--entry", Description: "The entry point(s) of your application e.g. ./src/main.js"},
+ {Name: "--entry-reset", Description: "Support WebAssembly as asynchronous EcmaScript Module"},
+ {Name: "--experiments-back-compat", Description: "Enable backward-compat layer with deprecation warnings for many webpack 4 APIs"},
+ {Name: "--no-experiments-back-compat", Description: "Negative 'experiments-back-compat' option"},
+ {Name: "--experiments-css", Description: "Enable css support"},
+ {Name: "--no-experiments-css", Description: "Negative 'experiments-css' option"},
+ {Name: "--experiments-future-defaults", Description: "Apply defaults of next major version"},
+ {Name: "--experiments-layers", Description: "Enable module layers"},
+ {Name: "--no-experiments-layers", Description: "Negative 'experiments-layers' option"},
+ },
+ })
+}
diff --git a/commands/js/yalc.go b/commands/js/yalc.go
new file mode 100644
index 0000000..e3394d0
--- /dev/null
+++ b/commands/js/yalc.go
@@ -0,0 +1,42 @@
+package js
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "yalc",
+ Description: "Work with yarn/npm packages locally like a boss",
+ Subcommands: []core.Subcommand{
+ {Name: "publish", Description: "Copy all the files that should be published in remote NPM registry"},
+ {Name: "add", Description: "Copy the current version from the store to your project"},
+ {Name: "package", Description: "The package you want to add"},
+ {Name: "link", Description: "Alternative to 'add', instead using local '.yalc' as symlink source"},
+ {Name: "update", Description: "Update package(s)"},
+ {Name: "remove", Description: "Remove package info from 'package.json' & 'yalc.lock'"},
+ {Name: "clean", Description: "Unpublish a package published with yalc publish"},
+ {Name: "show", Description: "Show all packages to which chosen package has been added"},
+ {Name: "dir", Description: "Show yalc system directory"},
+ {Name: "check", Description: "Check 'package.json' for yalc packages"},
+ {Name: "restore", Description: "Restore retreated packages"},
+ {Name: "retreat", Description: "Remove packages from project, but leave in lock file (to be restored later)"},
+ },
+ Options: []core.Option{
+ {Name: "--push", Description: "Publish without running scripts"},
+ {Name: "--no-sig", Description: "Disable adding hash signature of all files when copying package content"},
+ {Name: "--content", Description: "Show included files in the published package"},
+ {Name: "--no-workspace-resolve", Description: "Do not resolve 'workspace:' protocol in dependencies"},
+ {Name: "--private", Description: "Force publishing of private package"},
+ {Name: "--link", Description: "Add a 'link:' dependency instead of 'file:'"},
+ {Name: "--dev", Description: "Add yalc package to dev dependencies"},
+ {Name: "--pure", Description: "Do not touch 'package.json' or 'node_modules'"},
+ {Name: "--workspace", Description: "Add dependency with 'workspace:' protocol"},
+ {Name: "--update", Description: "Run package manager's update command for packages"},
+ {Name: "--all", Description: "Remove all packages from project"},
+ {Name: "--help", Description: "Show help for yalc"},
+ {Name: "--no-colors", Description: "Disable colors"},
+ {Name: "--quiet", Description: "Fully disable output (except errors)"},
+ },
+ })
+}
diff --git a/commands/jvm/clojure.go b/commands/jvm/clojure.go
new file mode 100644
index 0000000..255025b
--- /dev/null
+++ b/commands/jvm/clojure.go
@@ -0,0 +1,37 @@
+package jvm
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "clojure",
+ Description: "An alias to refer to its function or a qualified function",
+ Options: []core.Option{
+ {Name: "-A", Description: "Use concatenated aliases to modify classpath"},
+ {Name: "-X", Description: "Invoke tool by name or via aliases ala -X"},
+ {Name: "-M", Description: "Use concatenated aliases to modify classpath or supply main opts"},
+ {Name: "-P", Description: "Prepare deps - download libs, cache classpath, but don't exec"},
+ {Name: "-J", Description: "Pass opt through in java_opts"},
+ {Name: "-Sdeps", Description: "Pass the deps data on the command line"},
+ {Name: "-Spath", Description: "Compute classpath and echo to stdout only"},
+ {Name: "-Scp", Description: "Use specified classpath instead of cached or computed one"},
+ {Name: "-Sdescribe", Description: "Print environment and command parsing information as data"},
+ {Name: "-Sforce", Description: "Ignore classpath cache and force recomputation"},
+ {Name: "-Spom", Description: "Generate (or update) pom.xml with deps and paths"},
+ {Name: "-Srepro", Description: "Ignore the ~/.clojure/deps.edn config file"},
+ {Name: "-Sthreads", Description: "Set the number of threads to use when downloading dependencies"},
+ {Name: "-Strace", Description: "Write a trace.edn file that traces deps expansion"},
+ {Name: "-Stree", Description: "Print dependency tree"},
+ {Name: "-Sverbose", Description: "Print all path locations"},
+ {Name: "-version", Description: "Print the Clojure CLI version"},
+ {Name: "-i", Description: "Load a file or resource"},
+ {Name: "-e", Description: "Evaluate expressions in string; print non-nil values"},
+ {Name: "--report", Description: "Report uncaught exceptions"},
+ {Name: "-m", Description: "Call the -main function from a namespace with args"},
+ {Name: "-r", Description: "Run a REPL"},
+ {Name: "-h", Description: "Show help for clojure"},
+ },
+ })
+}
diff --git a/commands/jvm/dart.go b/commands/jvm/dart.go
new file mode 100644
index 0000000..3051e1f
--- /dev/null
+++ b/commands/jvm/dart.go
@@ -0,0 +1,106 @@
+package jvm
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "dart",
+ Description: "The Dart file containing the main function",
+ Subcommands: []core.Subcommand{
+ {Name: "analyze", Description: "Analyze Dart code in a directory"},
+ {Name: "directory", Description: "Dart project directory to analyze"},
+ {Name: "compile", Description: "Compile Dart to various formats"},
+ {Name: "aot-snapshot", Description: "Compile Dart to an AOT snapshot"},
+ {Name: "exe", Description: "Compile Dart to a self-contained executable"},
+ {Name: "jit-snapshot", Description: "Compile Dart to a JIT snapshot"},
+ {Name: "js", Description: "Compile Dart to JavaScript"},
+ {Name: "kernel", Description: "Compile Dart to a kernel snapshot"},
+ {Name: "create", Description: "Create a new Dart project"},
+ {Name: "console", Description: "A simple command-line application"},
+ {Name: "package", Description: "A starting point for Dart libraries or applications"},
+ {Name: "server-shelf", Description: "A web server built using package:shelf"},
+ {Name: "web", Description: "A web app that uses only core Dart libraries"},
+ {Name: "fix", Description: "Apply automated fixes to Dart source code"},
+ {Name: "format", Description: "Idiomatically format Dart source code"},
+ {Name: "json", Description: "Print code and selection as JSON"},
+ {Name: "none", Description: "Discard output"},
+ {Name: "show", Description: "Print code to terminal"},
+ {Name: "write", Description: "Overwrite formatted files on disk"},
+ {Name: "all", Description: "All visited files and directories"},
+ {Name: "changed", Description: "Only the names of files whose formatting is changed"},
+ {Name: "line", Description: "Single-line summary"},
+ {Name: "profile", Description: "How long it took to format each file"},
+ {Name: "line-length", Description: "Line length to wrap"},
+ {Name: "files-or-directory", Description: "The files or directories to format"},
+ {Name: "migrate", Description: "Perform null safety migration on a project"},
+ {Name: "pub", Description: "Work with packages"},
+ {Name: "add", Description: "Add a dependency to pubspec.yaml"},
+ {Name: "cache", Description: "Work with the Pub system cache"},
+ {Name: "repair", Description: "Reinstall a cached package"},
+ {Name: "deps", Description: "Print package dependencies"},
+ {Name: "downgrade", Description: "Downgrade packages in a Flutter project"},
+ {Name: "get", Description: "Get packages in a Flutter project"},
+ {Name: "global", Description: "Work with Pub global packages"},
+ {Name: "activate", Description: "Make a package's executables globally available"},
+ {Name: "deactivate", Description: "Remove a previously activated package"},
+ {Name: "list", Description: "List globally activated packages"},
+ {Name: "run", Description: "Run an executable from a globally activated package"},
+ {Name: "login", Description: "Log into pub.dev"},
+ {Name: "logout", Description: "Log out of pub.dev"},
+ {Name: "outdated", Description: "Analyze dependencies to find which ones can be upgraded"},
+ {Name: "publish", Description: "Publish the current package to pub.dartlang.org"},
+ {Name: "remove", Description: "Removes a dependency from the current package"},
+ {Name: "upgrade", Description: "Upgrade the current package's dependencies to latest versions"},
+ {Name: "uploader", Description: "Manage uploaders for a package on pub.dev"},
+ {Name: "const-functions", Description: "Allow more of the Dart language to be executed in const expressions"},
+ {Name: "extension-methods", Description: "Extension methods (no-op - enabled by default)"},
+ {Name: "extension-types", Description: "Extension types"},
+ {Name: "non-nullable", Description: "Non-nullable by default. (no-op - on by default)"},
+ {Name: "triple-shift", Description: "Triple-shift operator"},
+ },
+ Options: []core.Option{
+ {Name: "--offline", Description: "Use cached packages instead of accessing the network"},
+ {Name: "--no-offline", Description: "Do not use cached packages instead of accessing the network"},
+ {Name: "-n", Description: "Report what dependencies would change but don't change any"},
+ {Name: "--precompile", Description: "Precompile executables in immediate dependencies"},
+ {Name: "--no-precompile", Description: "Do not precompile executables in immediate dependencies"},
+ {Name: "--enable-asserts", Description: "Enable assert statements"},
+ {Name: "--no-enable-asserts", Description: "Do not enable assert statements"},
+ {Name: "-D", Description: "Key-value pairs to define in Dart script"},
+ {Name: "--verbosity", Description: "Sets the verbosity level of the compilation"},
+ {Name: "-h", Description: "Print this usage information"},
+ {Name: "-o", Description: "Write the output to "},
+ {Name: "-p", Description: "The path to draw packages from"},
+ {Name: "--no-sound-null-safety", Description: "Respect the nullability of types at runtime"},
+ {Name: "-S", Description: "The path to write debugging info to"},
+ {Name: "-v", Description: "Print verbose output"},
+ {Name: "--version", Description: "Current Dart version"},
+ {Name: "--enable-analytics", Description: "Enables analytics"},
+ {Name: "--disable-analytics", Description: "Disables analytics"},
+ {Name: "--fatal-infos", Description: "Treat info level issues as fatal"},
+ {Name: "--fatal-warnings", Description: "Treat warning level issues as fatal (defaults to on)"},
+ {Name: "--no-fatal-warnings", Description: "Do not treat warning level issues as fatal (defaults to on)"},
+ {Name: "-m", Description: "Generate minified output"},
+ {Name: "-t", Description: "The project template to use"},
+ {Name: "--pub", Description: "Run 'pub get' after the project has been created. Default to on"},
+ {Name: "--no-pub", Description: "Do not run 'pub get' after the project has been created. Default to on"},
+ {Name: "--force", Description: "Force project generation, even if the target directory already exists"},
+ {Name: "--apply", Description: "Apply the proposed changes"},
+ {Name: "--show", Description: "Set which filenames to print"},
+ {Name: "--summary", Description: "Show the specified summary after formatting"},
+ {Name: "--set-exit-if-changed", Description: "Return exist code 1 if there are any formatting changes"},
+ {Name: "--fix", Description: "Apply all style fixes"},
+ {Name: "--fix-doc-comments", Description: "Use triple slash for documentation comments"},
+ {Name: "--fix-function-typedefs", Description: "Use new syntax for function type typedefs"},
+ {Name: "--fix-named-default-separator", Description: "Use '=' as the separator before named parameter default values"},
+ {Name: "--fix-optional-const", Description: "Remove 'const' keyword inside constant context"},
+ {Name: "--fix-optional-new", Description: "Remove 'new' keyword"},
+ {Name: "-l", Description: "Wrap lines longer than this. Defaults to 80"},
+ {Name: "-i", Description: "Add this many spaces of leading indentation"},
+ {Name: "--follow-links", Description: "Follow links to files and directories. If unset, links will be ignored"},
+ {Name: "--selection", Description: "Track selection (given as 'start:length') through formatting"},
+ },
+ })
+}
diff --git a/commands/jvm/flutter.go b/commands/jvm/flutter.go
new file mode 100644
index 0000000..0f26fd0
--- /dev/null
+++ b/commands/jvm/flutter.go
@@ -0,0 +1,101 @@
+package jvm
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "flutter",
+ Description: "Available emulators",
+ Subcommands: []core.Subcommand{
+ {Name: "analyze", Description: "Analyze the project's Dart code"},
+ {Name: "assemble", Description: "Assemble and build Flutter resources"},
+ {Name: "attach", Description: "Attach to a running app"},
+ {Name: "bash-completion", Description: "Output command line shell completion setup scripts"},
+ {Name: "build", Description: "Build an executable app or install bundle"},
+ {Name: "aar", Description: "Build a repository containing an AAR and a POM file"},
+ {Name: "apk", Description: "Build an Android APK file from your app"},
+ {Name: "appbundle", Description: "Build an Android App Bundle file from your app"},
+ {Name: "bundle", Description: "Build the Flutter assets directory from your app"},
+ {Name: "ios", Description: "Build an iOS application bundle (Mac OS X host only)"},
+ {Name: "ipa", Description: "Build an iOS archive bundle (Mac OS X host only)"},
+ {Name: "web", Description: "Build a web application bundle"},
+ {Name: "channel", Description: "List or switch Flutter channels"},
+ {Name: "channel-name", Description: "Switch to . Leave this blank to see available channels"},
+ {Name: "clean", Description: "Delete the build/ and .dart_tool/ directories"},
+ {Name: "config", Description: "Configure Flutter settings"},
+ {Name: "create", Description: "Create a new Flutter project"},
+ {Name: "devices", Description: "List all connected devices"},
+ {Name: "doctor", Description: "Show information about the installed tooling"},
+ {Name: "downgrade", Description: "Downgrade Flutter to the last active version for the current channel"},
+ {Name: "drive", Description: "Run integration tests for the project on an attached device or emulator"},
+ {Name: "emulators", Description: "List, launch and create emulators"},
+ {Name: "format", Description: "Format one or more Dart files"},
+ {Name: "gen-l10n", Description: "Generate localizations for the current project"},
+ {Name: "install", Description: "Install a Flutter app on an attached device"},
+ {Name: "logs", Description: "Show log output for running Flutter apps"},
+ {Name: "pub", Description: "Commands for managing Flutter packages"},
+ {Name: "add", Description: "Add a dependency to pubspec.yaml"},
+ {Name: "cache", Description: "Work with the Pub system cache"},
+ {Name: "deps", Description: "Print package dependencies"},
+ {Name: "get", Description: "Get packages in a Flutter project"},
+ {Name: "global", Description: "Work with Pub global packages"},
+ {Name: "login", Description: "Log into pub.dev"},
+ {Name: "logout", Description: "Log out of pub.dev"},
+ {Name: "outdated", Description: "Analyze dependencies to find which ones can be upgraded"},
+ {Name: "publish", Description: "Publish the current package to pub.dartlang.org"},
+ {Name: "remove", Description: "Removes a dependency from the current package"},
+ {Name: "run", Description: "Run an executable from a package"},
+ {Name: "upgrade", Description: "Upgrade the current package's dependencies to latest versions"},
+ {Name: "uploader", Description: "Manage uploaders for a package on pub.dev"},
+ {Name: "version", Description: "Print Pub version"},
+ {Name: "screenshot", Description: "Take a screenshot from a connected device"},
+ {Name: "symbolize", Description: "Symbolize a stack trace from an AOT-compiled Flutter app"},
+ {Name: "file path", Description: "A file path for a symbolized stack trace to be written to"},
+ {Name: "test", Description: "Run Flutter unit tests for the current project"},
+ },
+ Options: []core.Option{
+ {Name: "-h", Description: "Print this usage information"},
+ {Name: "-v", Description: "Target device id or name (prefixes allowed)"},
+ {Name: "--version", Description: "Reports the version of this tool"},
+ {Name: "--suppress-analytics", Description: "Suppress analytics reporting when this command runs"},
+ {Name: "--pub", Description: "Run 'flutter pub get' before executing this command"},
+ {Name: "--no-pub", Description: "Don't run 'flutter pub get' before executing this command"},
+ {Name: "--current-package", Description: "Analyze the current project, if applicable"},
+ {Name: "--no-current-package", Description: "Don't analyze the current project, if applicable"},
+ {Name: "--congratulate", Description: "Treat info level issues as fatal"},
+ {Name: "--no-fatal-infos", Description: "Don't treat info level issues as fatal"},
+ {Name: "--fatal-warnings", Description: "Treat warning level issues as fatal"},
+ {Name: "--no-fatal-warnings", Description: "Don't treat warning level issues as fatal"},
+ {Name: "--null-assertions", Description: "Exclude the assets bundle for build testing"},
+ {Name: "--uninstall-only", Description: "Uninstall the app if already on the device. Skip install"},
+ {Name: "--no-uninstall-only", Description: "Don't generate the Dart localization file with locales imported as deferred"},
+ {Name: "--synthetic-package", Description: "Start in a paused mode and wait for a debugger to connect"},
+ {Name: "--no-start-paused", Description: "When performing operations, overwrite existing files"},
+ {Name: "--no-overwrite", Description: "Enable reporting anonymously tool usage statistics and crash reports"},
+ {Name: "--no-analytics", Description: "Disable reporting anonymously tool usage statistics and crash reports"},
+ {Name: "--enable-web", Description: "Enable Flutter for Fuchsia. This setting will take effect on the master channel"},
+ {Name: "--no-enable-fuchsia", Description: "Disable Flutter for Fuchsia. This setting will take effect on the master channel"},
+ {Name: "--profile", Description: "Build a version of your app specialized for performance profiling"},
+ {Name: "-t", Description: "Build a release version of your app"},
+ {Name: "--flavor", Description: "Trace application startup, then exit, saving the trace to a file"},
+ {Name: "--verbose-system-logs", Description: "Include verbose logging from the flutter engine"},
+ {Name: "--cache-sksl", Description: "Only cache the shader in SkSL instead of binary or GLSL"},
+ {Name: "--vmservice-out-file", Description: "Run flutter command"},
+ {Name: "--watch", Description: "Run analysis continuously, watching the filesystem for changes"},
+ {Name: "--write", Description: "Assemble and build Flutter resources"},
+ {Name: "-d", Description: "Allows passing configuration to a target with --define=target=key=value"},
+ {Name: "-i", Description: "Treat warning level issues as fatal"},
+ {Name: "--depfile", Description: "The maximum number of concurrent tasks the build system will run"},
+ {Name: "--debug-uri", Description: "The URI at which the observatory is listening"},
+ {Name: "--app-id", Description: "Output command line shell completion setup scripts"},
+ {Name: "--clear-ios-signing-cert", Description: "The Android SDK directory"},
+ {Name: "--android-studio-dir", Description: "The Android Studio install directory"},
+ {Name: "--build-dir", Description: "The relative path to override a projects build directory"},
+ {Name: "--clear-features", Description: "Remove all configured features and restore them to the default values"},
+ {Name: "--description", Description: "[objc, swift (default)]"},
+ {Name: "-a", Description: "[java, kotlin (default)]"},
+ },
+ })
+}
diff --git a/commands/jvm/fvm.go b/commands/jvm/fvm.go
new file mode 100644
index 0000000..b803ead
--- /dev/null
+++ b/commands/jvm/fvm.go
@@ -0,0 +1,44 @@
+package jvm
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "fvm",
+ Description: "Print this usage information",
+ Subcommands: []core.Subcommand{
+ {Name: "config", Description: "Set configuration for FVM"},
+ {Name: "path", Description: "Path to the Flutter versions cache"},
+ {Name: "dart", Description: "Proxies Dart commands"},
+ {Name: "doctor", Description: "Shows information about environment, and project configuration"},
+ {Name: "flavor", Description: "Switches between different project flavors"},
+ {Name: "flavor-name", Description: "The flavor to switch to"},
+ {Name: "flutter", Description: "Proxies Flutter commands"},
+ {Name: "global", Description: "Sets Flutter SDK version as global"},
+ {Name: "version", Description: "Flutter SDK to set for global flutter command"},
+ {Name: "install", Description: "Installs Flutter SDK version"},
+ {Name: "stable", Description: "Latest stable release of Flutter"},
+ {Name: "beta", Description: "Latest beta release of Flutter"},
+ {Name: "dev", Description: "Latest dev release of Flutter (master)"},
+ {Name: "list", Description: "Lists installed Flutter SDK versions"},
+ {Name: "releases", Description: "View all Flutter SDK releases available for install"},
+ {Name: "remove", Description: "Removes Flutter SDK version"},
+ {Name: "spawn", Description: "Spawn a Flutter SDK version command"},
+ {Name: "use", Description: "Sets a Flutter SDK version to be used in a project"},
+ },
+ Options: []core.Option{
+ {Name: "-h", Description: "Print this usage information"},
+ {Name: "--verbose", Description: "Print verbose output"},
+ {Name: "--version", Description: "Current FVM version"},
+ {Name: "-c", Description: "Set the path which FVM will cache the version. Priority over FVM_HOME"},
+ {Name: "-s", Description: "Skip setup after a version install"},
+ {Name: "-g", Description: "ADVANCED: Will cache a local version of Flutter repo for faster version install"},
+ {Name: "--force", Description: "Skips version global check"},
+ {Name: "-f", Description: "Skips command guards that does Flutter project checks"},
+ {Name: "-p", Description: "If version provided is a channel. Will pin the latest release of the channel"},
+ {Name: "--flavor", Description: "Sets version for a project flavor"},
+ },
+ })
+}
diff --git a/commands/jvm/gradle.go b/commands/jvm/gradle.go
new file mode 100644
index 0000000..bceef4e
--- /dev/null
+++ b/commands/jvm/gradle.go
@@ -0,0 +1,58 @@
+package jvm
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "gradle",
+ Description: "Log all warnings",
+ Subcommands: []core.Subcommand{
+ {Name: "build", Description: "Compute all outputs"},
+ {Name: "run", Description: "Run applications"},
+ {Name: "check", Description: "Run all checks"},
+ {Name: "clean", Description: "Clear the contents of the build directory"},
+ {Name: "projects", Description: "List of all sub-projects"},
+ {Name: "tasks", Description: "List of main tasks of the selected project"},
+ {Name: "help", Description: "Display task usage information"},
+ {Name: "buildEnvironment", Description: "Visualises the buildscript dependencies of the selected project"},
+ {Name: "properties", Description: "Gives you a list of the properties of the selected project"},
+ {Name: "init", Description: "Create new Gradle builds, with new or existing projects"},
+ {Name: "test", Description: "Run a test task"},
+ },
+ Options: []core.Option{
+ {Name: "-?", Description: "Shows a help message with all available CLI options"},
+ {Name: "-v", Description: "Prints Gradle, Groovy, Ant, JVM, and operating system version information"},
+ {Name: "-S", Description: "Print out the full (very verbose) stacktrace for any exceptions"},
+ {Name: "-s", Description: "Print out the stacktrace also for user exceptions (e.g. compile error)"},
+ {Name: "--scan", Description: "Debug Gradle Daemon process"},
+ {Name: "--build-cache", Description: "Disables --parallel"},
+ {Name: "--priority", Description: "Generate a build scan with detailed performance diagnostics"},
+ {Name: "--watch-fs", Description: "Disables --daemon"},
+ {Name: "--foreground", Description: "Starts the Gradle Daemon in a foreground process"},
+ {Name: "-q", Description: "Log errors only"},
+ {Name: "-w", Description: "Set log level to warn"},
+ {Name: "-i", Description: "Set log level to info"},
+ {Name: "-d", Description: "Log in debug mode (includes normal stacktrace)"},
+ {Name: "--console", Description: "Specifies which type of console output to generate"},
+ {Name: "--warning-mode", Description: "Specifies how to log warning"},
+ {Name: "--include-build", Description: "Run the build as a composite, including the specified build"},
+ {Name: "--offline", Description: "Specifies that the build should operate without accessing network resources"},
+ {Name: "--refresh-dependencies", Description: "Refresh the state of dependencies"},
+ {Name: "--dry-run", Description: "Specifies the build file. For example: gradle --build-file=foo.gradle"},
+ {Name: "-c", Description: "Specifies the start directory for Gradle"},
+ {Name: "--project-cache-dir", Description: "Sets a system property of the JVM, for example -Dmyprop=myvalue"},
+ {Name: "-I", Description: "Specifies an initialization script"},
+ {Name: "-P", Description: "Sets a project property of the root project, for example -Pmyprop=myvalue"},
+ {Name: "--all", Description: "Display task usage information"},
+ {Name: "--task", Description: "Visualises the buildscript dependencies of the selected project"},
+ {Name: "--status", Description: "(Standalone command) Stop all Gradle Daemons of the same version"},
+ {Name: "--type", Description: "Specify project type"},
+ {Name: "--gradle-version", Description: "The Gradle version used for downloading and executing the Wrapper"},
+ {Name: "--distribution-type", Description: "The Gradle distribution type used for the Wrapper"},
+ {Name: "--gradle-distribution-url", Description: "The full URL pointing to Gradle distribution ZIP file"},
+ {Name: "--continuous", Description: "This will force test and all task dependencies of test to execute"},
+ },
+ })
+}
diff --git a/commands/jvm/jenv.go b/commands/jvm/jenv.go
new file mode 100644
index 0000000..286e244
--- /dev/null
+++ b/commands/jvm/jenv.go
@@ -0,0 +1,52 @@
+package jvm
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "jenv",
+ Description: "Executable file",
+ Subcommands: []core.Subcommand{
+ {Name: "commands", Description: "List all available JEnv commands"},
+ {Name: "help", Description: "Parses and displays help contents from a command's source file"},
+ {Name: "info", Description: "Show information about which command will be executed"},
+ {Name: "enable-plugin", Description: "Activate a jEnv plugin"},
+ {Name: "pluginName", Description: "Plugin Name"},
+ {Name: "disable-plugin", Description: "Deactivate a jEnv plugin"},
+ {Name: "doctor", Description: "Run jEnv diagnostics"},
+ {Name: "global", Description: "Sets the global Java version"},
+ {Name: "global-options", Description: "Sets the global Java options"},
+ {Name: "local-options", Description: "Sets the local application-specific Java options"},
+ {Name: "shell", Description: "Sets a shell-specific Java version by setting the `JENV_VERSION'"},
+ {Name: "shell-options", Description: "Sets the shell-specific Java options"},
+ {Name: "hooks", Description: "List hook scripts for a given jenv command"},
+ {Name: "init", Description: "Configure the shell environment for jenv"},
+ {Name: "javahome", Description: "Display path to selected JAVA_HOME"},
+ {Name: "options", Description: "Show the current Java options"},
+ {Name: "options-file", Description: "Detect the file that sets the current jenv jvm options"},
+ {Name: "options-file-read", Description: "Read options from file"},
+ {Name: "options-file-write", Description: "Write options to a file"},
+ {Name: "prefix", Description: "Displays the directory where a Java version is installed"},
+ {Name: "refresh-plugins", Description: "Refresh plugins links"},
+ {Name: "refresh-versions", Description: "Refresh alias names"},
+ {Name: "rehash", Description: "Rehash jenv shims (run this after installing executables)"},
+ {Name: "remove", Description: "Remove JDK installations"},
+ {Name: "root", Description: "Display the root directory where versions and shims are kept"},
+ {Name: "shims", Description: "List existing jenv shims"},
+ {Name: "version", Description: "Shows the currently selected Java version and how it was selected"},
+ {Name: "versions", Description: "Lists all Java versions found in `$JENV_ROOT/versions/*'"},
+ {Name: "whence", Description: "List all Java versions that contain the given executable"},
+ },
+ Options: []core.Option{
+ {Name: "--usage", Description: "Show information about which command will be executed"},
+ {Name: "--unset", Description: "Remove local jEnv settings"},
+ {Name: "--short", Description: "Show only files without path"},
+ {Name: "--bare", Description: "Display only version"},
+ {Name: "--verbose", Description: "Display verbose output"},
+ {Name: "--path", Description: "Show help for jEnv"},
+ {Name: "--version", Description: "Show version for jEnv"},
+ },
+ })
+}
diff --git a/commands/jvm/jmeter.go b/commands/jvm/jmeter.go
new file mode 100644
index 0000000..3aa438e
--- /dev/null
+++ b/commands/jvm/jmeter.go
@@ -0,0 +1,41 @@
+package jvm
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "jmeter",
+ Description: "Apache JMeter - 100% Java Load Testing Tool",
+ Options: []core.Option{
+ {Name: "-v", Description: "Print the JMeter version information and exit"},
+ {Name: "-h", Description: "Print usage information and exit"},
+ {Name: "-p", Description: "The jmeter property file to use"},
+ {Name: "-q", Description: "Additional JMeter property file(s)"},
+ {Name: "-t", Description: "The file to log samples to"},
+ {Name: "-i", Description: "JMeter logging configuration file"},
+ {Name: "-j", Description: "JMeter run log file"},
+ {Name: "-n", Description: "Run JMeter in nongui mode"},
+ {Name: "-s", Description: "Run the JMeter server"},
+ {Name: "-E", Description: "Set a proxy scheme to use for the proxy server"},
+ {Name: "-H", Description: "Set a proxy server for JMeter to use"},
+ {Name: "-P", Description: "Set proxy server port for JMeter to use"},
+ {Name: "-N", Description: "Set nonproxy host list (e.g. *.apache.org|localhost)"},
+ {Name: "-u", Description: "Set username for proxy server that JMeter is to use"},
+ {Name: "-a", Description: "Set password for proxy server that JMeter is to use"},
+ {Name: "-J", Description: "Define additional JMeter properties ="},
+ {Name: "-G", Description: "Define additional system properties ="},
+ {Name: "-S", Description: "Additional system property file(s)"},
+ {Name: "-f", Description: "Force delete existing results files and web report folder"},
+ {Name: "-L", Description: "[category=]level e.g. jorphan=INFO, jmeter.util=DEBUG or com.example.foo=WARN"},
+ {Name: "-r", Description: "Start remote servers (as defined in remote_hosts)"},
+ {Name: "-R", Description: "Start these remote servers (overrides remote_hosts)"},
+ {Name: "-d", Description: "The JMeter home directory to use"},
+ {Name: "-X", Description: "Exit the remote servers at end of test (non-GUI)"},
+ {Name: "-g", Description: "Generate report dashboard only, from a test results file"},
+ {Name: "-e", Description: "Generate report dashboard after load test"},
+ {Name: "-o", Description: "Output folder for report dashboard"},
+ },
+ })
+}
diff --git a/commands/jvm/kdoctor.go b/commands/jvm/kdoctor.go
new file mode 100644
index 0000000..e304b40
--- /dev/null
+++ b/commands/jvm/kdoctor.go
@@ -0,0 +1,19 @@
+package jvm
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "kdoctor",
+ Description: "Report a version of KDoctor",
+ Options: []core.Option{
+ {Name: "--version", Description: "Report a version of KDoctor"},
+ {Name: "--verbose", Description: "Report an extended information"},
+ {Name: "--all", Description: "Run extra diagnostics"},
+ {Name: "--team-ids", Description: "Report all available Apple dev team ids"},
+ {Name: "--help", Description: "Usage info"},
+ },
+ })
+}
diff --git a/commands/jvm/keytool.go b/commands/jvm/keytool.go
new file mode 100644
index 0000000..9717098
--- /dev/null
+++ b/commands/jvm/keytool.go
@@ -0,0 +1,54 @@
+package jvm
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "keytool",
+ Description: "Show help message",
+ Options: []core.Option{
+ {Name: "-h", Description: "Show help message"},
+ {Name: "-v", Description: "Verbose output"},
+ {Name: "-alias", Description: "Alias name of the entry to process"},
+ {Name: "-keystore", Description: "Keystore name"},
+ {Name: "-storepass", Description: "Keystore password"},
+ {Name: "-storetype", Description: "Keystore type"},
+ {Name: "-providername", Description: "Provider name"},
+ {Name: "-addprovider", Description: "Add security provider by name (e.g. SunPKCS11)"},
+ {Name: "-providerclass", Description: "Add security provider by fully-qualified class name"},
+ {Name: "-providerarg", Description: "Configure argument for -addprovider or -providerclass"},
+ {Name: "-providerpath", Description: "Provider classpath"},
+ {Name: "-protected", Description: "Password through protected mechanism"},
+ {Name: "-conf", Description: "Specify pre-configured options file"},
+ {Name: "-certreq", Description: "Generates a certificate request"},
+ {Name: "-sigalg", Description: "Signature algorithm name"},
+ {Name: "-file", Description: "Output file name"},
+ {Name: "-keypass", Description: "Key password"},
+ {Name: "-dname", Description: "Distinguished name"},
+ {Name: "-ext", Description: "X.509 extension"},
+ {Name: "-changealias", Description: "Changes an entry's alias"},
+ {Name: "-destalias", Description: "Destination alias"},
+ {Name: "-cacerts", Description: "Access the cacerts keystore"},
+ {Name: "-delete", Description: "Deletes an entry"},
+ {Name: "-exportcert", Description: "Exports certificate"},
+ {Name: "-rfc", Description: "Output in RFC style"},
+ {Name: "-genkeypair", Description: "Generate a key pair"},
+ {Name: "-keyalg", Description: "Key algorithm name"},
+ {Name: "-keysize", Description: "Key bit size"},
+ {Name: "-groupname", Description: "Group name. For example, an Elliptic Curve name"},
+ {Name: "-startdate", Description: "Certificate validity start date/time"},
+ {Name: "-validity", Description: "Validity number of days"},
+ {Name: "-genseckey", Description: "Generates a secret key"},
+ {Name: "-gencert", Description: "Generates certificate from a certificate request"},
+ {Name: "-infile", Description: "Input file name"},
+ {Name: "-outfile", Description: "Output file name"},
+ {Name: "-importcert", Description: "Imports a certificate or a certificate chain"},
+ {Name: "-noprompt", Description: "Do not prompt"},
+ {Name: "-trustcacerts", Description: "Trust certificates from cacerts"},
+ {Name: "-importpass", Description: "Imports a password"},
+ {Name: "-importkeystore", Description: "Imports one or all entries from another keystore"},
+ },
+ })
+}
diff --git a/commands/jvm/mvn.go b/commands/jvm/mvn.go
new file mode 100644
index 0000000..a810350
--- /dev/null
+++ b/commands/jvm/mvn.go
@@ -0,0 +1,53 @@
+package jvm
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "mvn",
+ Description: "Maven - a Java based project management and comprehension tool",
+ Options: []core.Option{
+ {Name: "--also-make", Description: "Also build projects required by project list"},
+ {Name: "--also-make-dependents", Description: "Also build projects that depend on projects in the project list"},
+ {Name: "--batch-mode", Description: "Run in non-interactive (batch)"},
+ {Name: "--builder", Description: "Specify the build strategy to use"},
+ {Name: "--strict-checksums", Description: "Fail if checksums do not match"},
+ {Name: "--lax-checksums", Description: "Warn if checksums do not match"},
+ {Name: "--color", Description: "Specify the color mode of the output"},
+ {Name: "--check-plugin-updates", Description: "Ineffective. Only kept for backward compatibility"},
+ {Name: "--define", Description: "Define a system property"},
+ {Name: "--errors", Description: "Produce execution error messages"},
+ {Name: "--encrypt-master-password", Description: "Encrypt the master security password"},
+ {Name: "--encrypt-password", Description: "Encrypt the server password"},
+ {Name: "--file", Description: "Force the use of an alternate POM file (or directory with pom.xml)"},
+ {Name: "--fail-at-end", Description: "Only fail the build afterwards; allow all non-impacted builds to continue"},
+ {Name: "--fail-fast", Description: "Stop at first failure in reactorized builds"},
+ {Name: "--fail-never", Description: "Never fail the build, regardless of project result"},
+ {Name: "--global-settings", Description: "Specify the global settings file to use"},
+ {Name: "--global-toolchains", Description: "Specify the global toolchains file to use"},
+ {Name: "--help", Description: "Display help information"},
+ {Name: "--log-file", Description: "Specify the file to log to"},
+ {Name: "--legacy-local-repository", Description: "Use the Maven2 legacy local repository behaviour"},
+ {Name: "--non-recursive", Description: "Do not recurse into sub-projects"},
+ {Name: "--no-plugin-registry", Description: "Ineffective. Only kept for backward compatibility"},
+ {Name: "--no-plugin-updates", Description: "Ineffective. Only kept for backward compatibility"},
+ {Name: "--no-snapshot-updates", Description: "Suppress SNAPSHOT updates"},
+ {Name: "--no-transfer-progress", Description: "Do not display transfer progress when downloading or uploading"},
+ {Name: "--offline", Description: "Work offline"},
+ {Name: "--activate-profiles", Description: "Activate the specified profiles (comma delimited)"},
+ {Name: "--projects", Description: "Specify the projects to build"},
+ {Name: "--quiet", Description: "Quiet output - only shows errors"},
+ {Name: "--resume-from", Description: "Resume from the specified project"},
+ {Name: "--settings", Description: "Specify the user settings file to use"},
+ {Name: "--toolchains", Description: "Specify the toolchains file to use"},
+ {Name: "--threads", Description: "Specify the number of threads to use"},
+ {Name: "--update-snapshots", Description: "Forces a check for missing releases and updated snapshots on remote repositories"},
+ {Name: "--update-plugins", Description: "Ineffective. Only kept for backward compatibility"},
+ {Name: "--version", Description: "Display version information"},
+ {Name: "--show-version", Description: "Display version information"},
+ {Name: "--debug", Description: "Produce execution debug output"},
+ },
+ })
+}
diff --git a/commands/jvm/spring.go b/commands/jvm/spring.go
new file mode 100644
index 0000000..53a832b
--- /dev/null
+++ b/commands/jvm/spring.go
@@ -0,0 +1,44 @@
+package jvm
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "spring",
+ Description: "Initialize a new project using Spring Initializr",
+ Subcommands: []core.Subcommand{
+ {Name: "init", Description: "Initialize a new project using Spring Initializr"},
+ {Name: "gradle-build", Description: "Generate a Gradle build file"},
+ {Name: "gradle-project", Description: "Generate a Gradle based project archive using the Groovy DSL"},
+ {Name: "gradle-project-kotlin", Description: "Generate a Gradle based project archive using the Kotlin DSL"},
+ {Name: "maven-build", Description: "Generate a Maven pom.xml"},
+ {Name: "maven-project", Description: "Generate a Maven based project archive"},
+ {Name: "encodepassword", Description: "Encode a password for use with Spring Security"},
+ {Name: "shell", Description: "Start a nested shell"},
+ {Name: "help", Description: "Show help for other commands"},
+ },
+ Options: []core.Option{
+ {Name: "-a", Description: "Project coordinates"},
+ {Name: "-b", Description: "Spring Boot version"},
+ {Name: "--build", Description: "Build system to use"},
+ {Name: "-d", Description: "Project description"},
+ {Name: "-f", Description: "Force overwrite of existing files"},
+ {Name: "--format", Description: "Format of the generated content"},
+ {Name: "-g", Description: "Project coordinates"},
+ {Name: "-j", Description: "Language level"},
+ {Name: "--list", Description: "List the capabilities of the service"},
+ {Name: "-n", Description: "Project name"},
+ {Name: "-p", Description: "Project packaging"},
+ {Name: "--package-name", Description: "Package name"},
+ {Name: "-t", Description: "Project type"},
+ {Name: "--target", Description: "URL of the service to use"},
+ {Name: "-v", Description: "Project version"},
+ {Name: "-x", Description: "Encode a password for use with Spring Security"},
+ {Name: "--help", Description: "Show help for spring"},
+ {Name: "--version", Description: "Get spring CLI version"},
+ {Name: "--debug", Description: "Print additional status information for the command you are running"},
+ },
+ })
+}
diff --git a/commands/ops/amplify.go b/commands/ops/amplify.go
new file mode 100644
index 0000000..1ade30d
--- /dev/null
+++ b/commands/ops/amplify.go
@@ -0,0 +1,42 @@
+package ops
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "amplify",
+ Description: "Environment",
+ Subcommands: []core.Subcommand{
+ {Name: "push", Description: "Provisions cloud resources with the latest local developments"},
+ {Name: "delete", Description: "Deletes all of the resources tied to the project from the cloud"},
+ {Name: "add", Description: "Adds a resource for an Amplify category in your local backend"},
+ {Name: "update", Description: "Update resource for an Amplify category in your local backend"},
+ {Name: "remove", Description: "Removes a resource for an Amplify category in your local backend"},
+ {Name: "upgrade", Description: "Download and install the latest version of the Amplify CLI"},
+ {Name: "migrate", Description: "Migrates GraphQL schemas to the latest GraphQL transformer version"},
+ {Name: "override", Description: "Generates overrides file to apply custom modifications to CloudFormation"},
+ {Name: "mock", Description: "Run mock server for testing categories locally"},
+ {Name: "console", Description: "Opens the web console for the selected cloud resource"},
+ {Name: "logout", Description: "If using temporary cloud provider credentials, this logs out of the account"},
+ {Name: "env", Description: "Display all commands available for new Amplify project"},
+ {Name: "pull", Description: "Pulls the current env from the cloud"},
+ {Name: "checkout", Description: "Switches to selected environment"},
+ {Name: "env-name", Description: "Env name"},
+ {Name: "list", Description: "Displays a list of all the environments"},
+ {Name: "get", Description: "Displays the environment details"},
+ {Name: "import", Description: "Imports an environment"},
+ },
+ Options: []core.Option{
+ {Name: "-y", Description: "Answer all question as 'Yes'"},
+ {Name: "-v", Description: "Deletes all of the resources tied to the project from the cloud"},
+ {Name: "--restore", Description: "Overwrite your local changes"},
+ {Name: "--details", Description: "See more details"},
+ {Name: "--json", Description: "Format the output"},
+ {Name: "--name", Description: "Mandatory flag"},
+ {Name: "--config", Description: "Specify provider configs"},
+ {Name: "--awsInfo", Description: "Specify AWS configs"},
+ },
+ })
+}
diff --git a/commands/ops/ampx.go b/commands/ops/ampx.go
new file mode 100644
index 0000000..5e7a106
--- /dev/null
+++ b/commands/ops/ampx.go
@@ -0,0 +1,56 @@
+package ops
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "ampx",
+ Description: "CLI for Amplify Gen 2",
+ Subcommands: []core.Subcommand{
+ {Name: "sandbox", Description: "Deploy to your personal cloud sandbox"},
+ {Name: "delete", Description: "Delete your personal cloud sandbox"},
+ {Name: "secret", Description: "Manage backend secrets for your personal cloud sandbox"},
+ {Name: "set", Description: "Set a secret"},
+ {Name: "remove", Description: "Remove a secret"},
+ {Name: "list", Description: "List all available secrets"},
+ {Name: "get", Description: "View details of a secret"},
+ {Name: "generate", Description: "Generate supplemental information or code"},
+ {Name: "outputs", Description: "Generate backend outputs file"},
+ {Name: "graphql-client-code", Description: "Generate GraphQL statements and types"},
+ {Name: "forms", Description: "Generate React form components"},
+ {Name: "info", Description: "Generate system information for troubleshooting"},
+ {Name: "pipeline-deploy", Description: "Deploy Amplify project in a CI/CD pipeline"},
+ },
+ Options: []core.Option{
+ {Name: "--dir-to-watch", Description: "Directory to watch for file changes"},
+ {Name: "--exclude", Description: "Paths or glob patterns to ignore"},
+ {Name: "--identifier", Description: "Name to distinguish between sandbox environments"},
+ {Name: "--outputs-out-dir", Description: "Directory where client config file is written"},
+ {Name: "--outputs-format", Description: "Format of the client config file"},
+ {Name: "--outputs-version", Description: "Version of the configuration"},
+ {Name: "--profile", Description: "AWS profile name"},
+ {Name: "--stream-function-logs", Description: "Stream function execution logs"},
+ {Name: "--logs-filter", Description: "Regex pattern to filter logs"},
+ {Name: "--logs-out-file", Description: "File to append streaming logs"},
+ {Name: "--name", Description: "Name to distinguish between sandbox environments"},
+ {Name: "-y", Description: "Do not ask for confirmation before deleting"},
+ {Name: "--format", Description: "Format of the configuration"},
+ {Name: "--out-dir", Description: "Directory where config is written"},
+ {Name: "--branch", Description: "Git branch name"},
+ {Name: "--app-id", Description: "Amplify App ID"},
+ {Name: "--out", Description: "Directory where config is written"},
+ {Name: "--model-target", Description: "Modelgen export target"},
+ {Name: "--statement-target", Description: "Graphql codegen statement export target"},
+ {Name: "--type-target", Description: "Graphql-codegen type export target"},
+ {Name: "--all", Description: "Show hidden options"},
+ {Name: "--debug", Description: "Print debug logs to the console"},
+ {Name: "--statement-max-depth", Description: "Maximum depth of the generated GraphQL statements"},
+ {Name: "--models", Description: "Model names to generate"},
+ {Name: "--stack", Description: "CloudFormation stack name"},
+ {Name: "--help", Description: "Display help information"},
+ {Name: "--version", Description: "Display version information"},
+ },
+ })
+}
diff --git a/commands/ops/ansible.go b/commands/ops/ansible.go
new file mode 100644
index 0000000..79d8243
--- /dev/null
+++ b/commands/ops/ansible.go
@@ -0,0 +1,48 @@
+package ops
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "ansible",
+ Description: "Define and run a single Ansible task",
+ Options: []core.Option{
+ {Name: "--ask-vault-pass", Description: "Ask for vault password"},
+ {Name: "--list-hosts", Description: "Outputs a list of matching hosts; does not execute"},
+ {Name: "--playbook-dir", Description: "Perform a syntax check on the playbook, but do not execute it"},
+ {Name: "--vault-id", Description: "Specify the vault identity to use"},
+ {Name: "--vault-password-file", Description: "Specify a vault password file"},
+ {Name: "--version", Description: "Run asynchronously, failing after specified seconds"},
+ {Name: "--check", Description: "When changing (small) files and templates, show the differences in those files"},
+ {Name: "--module-path", Description: "Prepend colon-separated path(s) to module library"},
+ {Name: "--poll", Description: "Set the poll interval if using -B"},
+ {Name: "--args", Description: "Specify module arguments"},
+ {Name: "--extra-vars", Description: "Set additional variables as key=value or YAML/JSON, if filename prepend with @"},
+ {Name: "--forks", Description: "Specify number of parallel processes to use"},
+ {Name: "--help", Description: "Show help for ansible"},
+ {Name: "--inventory", Description: "Specify inventory host path or comma separated host list"},
+ {Name: "--limit", Description: "Limit selected hosts to an additional pattern"},
+ {Name: "--module-name", Description: "Specify the module name to execute"},
+ {Name: "--one-line", Description: "Condense output"},
+ {Name: "--tree", Description: "Log output to specific directory"},
+ {Name: "--verbose", Description: "Enable verbose mode"},
+ {Name: "-vvv", Description: "Enable very verbose mode"},
+ {Name: "-vvvv", Description: "Enable connection debug mode"},
+ {Name: "--become-method", Description: "Privilege escalation method to use"},
+ {Name: "--become-user", Description: "Privilege escalation user to use"},
+ {Name: "--ask-become-pass", Description: "Prompt for privilege escalation password"},
+ {Name: "--become", Description: "Run operations with become"},
+ {Name: "--private-key", Description: "Use this fole to authenticate the connection"},
+ {Name: "--scp-extra-args", Description: "Extra arguments to pass to (only) scp"},
+ {Name: "--sftp-extra-args", Description: "Extra arguments to pass to (only) sftp"},
+ {Name: "-ssh-extra-args", Description: "Extra arguments to pass to (only) ssh"},
+ {Name: "--ssh-common-args", Description: "Extra arguments to pass to sftp/scp/ssh"},
+ {Name: "--timeout", Description: "Override the connection timeout in seconds"},
+ {Name: "--connection", Description: "Connection type to use"},
+ {Name: "--ask-pass", Description: "Ask for connection password"},
+ {Name: "--user", Description: "Connect as this user"},
+ },
+ })
+}
diff --git a/commands/ops/ansible_config.go b/commands/ops/ansible_config.go
new file mode 100644
index 0000000..c745309
--- /dev/null
+++ b/commands/ops/ansible_config.go
@@ -0,0 +1,33 @@
+package ops
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "ansible-config",
+ Description: "View ansible configuration",
+ Subcommands: []core.Subcommand{
+ {Name: "list", Description: "List and output available configs"},
+ {Name: "CONFIG_FILE", Description: "Path to configuration file"},
+ {Name: "TYPE", Description: "Plugin type"},
+ {Name: "args", Description: "Specific plugin to target, requires type of plugin to be set"},
+ {Name: "dump", Description: "Shows the current settings, merges ansible.cfg if specified"},
+ {Name: "view", Description: "Displays the current config file"},
+ {Name: "init", Description: "Initializes a new config file (to stdout)"},
+ {Name: "FORMAT", Description: "Output format"},
+ },
+ Options: []core.Option{
+ {Name: "--help", Description: "Show help and exit"},
+ {Name: "--verbose", Description: "Verbose mode (-vvv for more, -vvvv to enable connection debugging)"},
+ {Name: "-v", Description: "Verbose mode (-vvv for more, -vvvv to enable connection debugging)"},
+ {Name: "--config", Description: "Path to configuration file, defaults to first file found in precedence"},
+ {Name: "--type", Description: "Filter down to a specific plugin type"},
+ {Name: "--only-changed", Description: "Only show configurations that have changed from the default"},
+ {Name: "--disabled", Description: "Prefixes all entries with a comment character to disable them"},
+ {Name: "--format", Description: "Output format for init"},
+ {Name: "--version", Description: "Show help and exit"},
+ },
+ })
+}
diff --git a/commands/ops/ansible_doc.go b/commands/ops/ansible_doc.go
new file mode 100644
index 0000000..edb4a35
--- /dev/null
+++ b/commands/ops/ansible_doc.go
@@ -0,0 +1,25 @@
+package ops
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "ansible-doc",
+ Description: "Displays information on modules installed in Ansible libraries",
+ Options: []core.Option{
+ {Name: "--metadata-dump", Description: "For internal testing only Dump json metadata for all plugins"},
+ {Name: "--playbook-dir", Description: "Sets the relative path for many features including roles/ group_vars/ etc"},
+ {Name: "--version", Description: "Show plugin names and their source files without summaries (implies --list)"},
+ {Name: "--module-path", Description: "Prepend colon-separated path(s) to module library"},
+ {Name: "--entry-point", Description: "Select the entry point for role(s)"},
+ {Name: "--help", Description: "Show help and exit"},
+ {Name: "--json", Description: "Change output into json format"},
+ {Name: "--list", Description: "The path to the directory containing your roles"},
+ {Name: "--snippet", Description: "Show playbook snippet for these plugin types: inventory, lookup, module"},
+ {Name: "--type", Description: "Verbose mode (-vvv for more, -vvvv to enable connection debugging)"},
+ {Name: "-v", Description: "Verbose mode (-vvv for more, -vvvv to enable connection debugging)"},
+ },
+ })
+}
diff --git a/commands/ops/ansible_galaxy.go b/commands/ops/ansible_galaxy.go
new file mode 100644
index 0000000..32f75eb
--- /dev/null
+++ b/commands/ops/ansible_galaxy.go
@@ -0,0 +1,66 @@
+package ops
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "ansible-galaxy",
+ Description: "The Galaxy API server URL",
+ Subcommands: []core.Subcommand{
+ {Name: "collection", Description: "Operate on collections"},
+ {Name: "download", Description: "Download collections"},
+ {Name: "init", Description: "Initialize collections"},
+ {Name: "collection_name", Description: "Name of the collection"},
+ {Name: "build", Description: "Build collections"},
+ {Name: "publish", Description: "Publish collections"},
+ {Name: "collection_path", Description: "The path to the collection tarball to publish"},
+ {Name: "list", Description: "List collections"},
+ {Name: "verify", Description: "Verify collections"},
+ {Name: "role", Description: "Operate on roles"},
+ {Name: "role_name", Description: "Name of the role"},
+ {Name: "remove", Description: "Remove roles"},
+ {Name: "search", Description: "Search roles"},
+ {Name: "searchterm", Description: "Search terms"},
+ {Name: "import", Description: "Import roles"},
+ {Name: "github_user", Description: "GitHub username"},
+ {Name: "github_repo", Description: "GitHub repository"},
+ {Name: "setup", Description: "Set up roles"},
+ {Name: "info", Description: "Role information"},
+ {Name: "install", Description: "Install roles"},
+ },
+ Options: []core.Option{
+ {Name: "--server", Description: "The Galaxy API server URL"},
+ {Name: "--token", Description: "Ignore SSL certificate validation errors"},
+ {Name: "--clear-response-cache", Description: "Clear the existing server response cache"},
+ {Name: "--no-cache", Description: "Do not use the server response cache"},
+ {Name: "--no-deps", Description: "Don't download collection(s) listed as dependencies"},
+ {Name: "--download-path", Description: "The directory to download the collections to"},
+ {Name: "--requirements-file", Description: "A file containing a list of collections to be downloaded"},
+ {Name: "--pre", Description: "Include pre-release versions"},
+ {Name: "--force", Description: "Force overwriting an existing role or collection"},
+ {Name: "--init-path", Description: "The path in which the skeleton collection will be created"},
+ {Name: "--collection-skeleton", Description: "The path to a collection skeleton that the new collection should be based upon"},
+ {Name: "--output-path", Description: "The path in which the collection is built to"},
+ {Name: "--no-wait", Description: "Don't wait for import validation results"},
+ {Name: "--import-timeout", Description: "The time to wait for the collection import process to finish"},
+ {Name: "--collections-path", Description: "Format to display the list of collections in"},
+ {Name: "--offline", Description: "Don't query the galaxy API when creating roles"},
+ {Name: "--role-skeleton", Description: "The path in which the skeleton role will be created"},
+ {Name: "--type", Description: "Initialize using an alternate role type"},
+ {Name: "--roles-path", Description: "The path to the directory containing your roles"},
+ {Name: "--platforms", Description: "List of OS platforms to filter by"},
+ {Name: "--galaxy-tags", Description: "List of Galaxy tags to filter by"},
+ {Name: "--author", Description: "GitHub username"},
+ {Name: "--branch", Description: "The name the role should have, if different than the repo name"},
+ {Name: "--status", Description: "The path to the directory containing your roles"},
+ {Name: "--remove", Description: "List all of your integrations"},
+ {Name: "--force-with-deps", Description: "Force overwriting an existing role and its dependencies"},
+ {Name: "--keep-scm-meta", Description: "Use tar instead of the scm archive option when packaging the role"},
+ {Name: "--help", Description: "Show help and exit"},
+ {Name: "--verbose", Description: "Verbose mode (-vvv for more, -vvvv to enable connection debugging)"},
+ {Name: "-v", Description: "Verbose mode (-vvv for more, -vvvv to enable connection debugging)"},
+ },
+ })
+}
diff --git a/commands/ops/ansible_lint.go b/commands/ops/ansible_lint.go
new file mode 100644
index 0000000..ed21233
--- /dev/null
+++ b/commands/ops/ansible_lint.go
@@ -0,0 +1,34 @@
+package ops
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "ansible-lint",
+ Description: "Ansible static code analysis",
+ Options: []core.Option{
+ {Name: "-f", Description: "Ansible static code analysis"},
+ {Name: "--help", Description: "Show help for ansible-lint"},
+ {Name: "--list-rules", Description: "List all the rules"},
+ {Name: "--list-tags", Description: "List all the tags and the rules they cover"},
+ {Name: "--format", Description: "Stdout formatting"},
+ {Name: "-q", Description: "Quieter, reduce verbosity, can be specified twice"},
+ {Name: "-p", Description: "Parseable output, same as '-f pep8'"},
+ {Name: "--progressive", Description: "Specify custom rule directories"},
+ {Name: "-R", Description: "Keep using embedded rules when using '-r'"},
+ {Name: "--write", Description: "Allow ansible-lint to reformat YAML files and run rule transforms"},
+ {Name: "--show-relpath", Description: "Display path relative to CWD"},
+ {Name: "--tags", Description: "Only check rules whose id/tags match these values"},
+ {Name: "-v", Description: "Increase verbosity level (-vv for more)"},
+ {Name: "--skip-list", Description: "Only check rules whose id/tags do not match these values"},
+ {Name: "--warn-list", Description: "Activate optional rules by their tag name"},
+ {Name: "--nocolor", Description: "Disable colored output, same as NO_COLOR=1"},
+ {Name: "--force-color", Description: "Force colored output, same as FORCE_COLOR=1"},
+ {Name: "--exclude-paths", Description: "Path to directories or files to skip. This option is repeatable"},
+ {Name: "--config-file", Description: "Disable installation of requirements.yml"},
+ {Name: "--version", Description: "Show version of ansible-lint"},
+ },
+ })
+}
diff --git a/commands/ops/ansible_playbook.go b/commands/ops/ansible_playbook.go
new file mode 100644
index 0000000..4b75841
--- /dev/null
+++ b/commands/ops/ansible_playbook.go
@@ -0,0 +1,50 @@
+package ops
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "ansible-playbook",
+ Description: "Runs Ansible playbooks, executing the defined tasks on the targeted hosts",
+ Options: []core.Option{
+ {Name: "--ask-vault-pass", Description: "Ask for vault password"},
+ {Name: "--flush-cache", Description: "Clears the fact cache for every host in inventory"},
+ {Name: "--force-handlers", Description: "Run handlers even if a task fails"},
+ {Name: "--list-hosts", Description: "Outputs a list of matching hosts; does not execute"},
+ {Name: "--list-tags", Description: "List all available tags"},
+ {Name: "--list-tasks", Description: "List all tasks that would be executed"},
+ {Name: "--skip-tags", Description: "Only run plays and tasks whose tags do not match these values"},
+ {Name: "--start-at-task", Description: "Start the playbook at the task matching this name one-step-at-a-time"},
+ {Name: "--step", Description: "Execute one-step-at-a-time"},
+ {Name: "--syntax-check", Description: "Perform a syntax check on the playbook, but do not execute it"},
+ {Name: "--vault-id", Description: "Specify the vault identity to use"},
+ {Name: "--vault-password-file", Description: "Specify a vault password file"},
+ {Name: "--version", Description: "When changing (small) files and templates, show the differences in those files"},
+ {Name: "--module-path", Description: "Prepend colon-separated path(s) to module library"},
+ {Name: "--extra-vars", Description: "Set additional variables as key=value or YAML/JSON, if filename prepend with @"},
+ {Name: "--forks", Description: "Specify number of parallel processes to use"},
+ {Name: "--help", Description: "Show help for ansible"},
+ {Name: "--inventory", Description: "Specify inventory host path or comma separated host list"},
+ {Name: "--limit", Description: "Limit selected hosts to an additional pattern"},
+ {Name: "--tags", Description: "Only run plays and tasks tagged with these values"},
+ {Name: "--verbose", Description: "Enable verbose mode"},
+ {Name: "-vvv", Description: "Enable very verbose mode"},
+ {Name: "-vvvv", Description: "Enable connection debug mode"},
+ {Name: "--become-method", Description: "Privilege escalation method to use"},
+ {Name: "--become-user", Description: "Privilege escalation user to use"},
+ {Name: "--ask-become-pass", Description: "Prompt for privilege escalation password"},
+ {Name: "--become", Description: "Run operations with become"},
+ {Name: "--private-key", Description: "Use this fole to authenticate the connection"},
+ {Name: "--scp-extra-args", Description: "Extra arguments to pass to (only) scp"},
+ {Name: "--sftp-extra-args", Description: "Extra arguments to pass to (only) sftp"},
+ {Name: "-ssh-extra-args", Description: "Extra arguments to pass to (only) ssh"},
+ {Name: "--ssh-common-args", Description: "Extra arguments to pass to sftp/scp/ssh"},
+ {Name: "--timeout", Description: "Override the connection timeout in seconds"},
+ {Name: "--connection", Description: "Connection type to use"},
+ {Name: "--ask-pass", Description: "Ask for connection password"},
+ {Name: "--user", Description: "Connect as this user"},
+ },
+ })
+}
diff --git a/commands/ops/appwrite.go b/commands/ops/appwrite.go
new file mode 100644
index 0000000..03d5e66
--- /dev/null
+++ b/commands/ops/appwrite.go
@@ -0,0 +1,94 @@
+package ops
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "appwrite",
+ Description: "Appwrite - Open-Source End-to-End Backend Server",
+ Subcommands: []core.Subcommand{
+ {Name: "login", Description: "The login command allows you to authenticate and manage a user account"},
+ {Name: "project", Description: "Initialise your Appwrite project"},
+ {Name: "function", Description: "Initialise your Appwrite cloud function"},
+ {Name: "collection", Description: "Initialise your Appwrite collections"},
+ {Name: "logout", Description: "The logout command allows you to logout of your Appwrite account"},
+ {Name: "account", Description: "The account command allows you to authenticate and manage a user account"},
+ {Name: "get", Description: "Get currently logged in user data as JSON object"},
+ {Name: "updateName", Description: "Update currently logged in user account name"},
+ {Name: "getPrefs", Description: "Get currently logged in user preferences as a key-value object"},
+ {Name: "getSessions", Description: "Get currently logged in user list of active sessions across different devices"},
+ {Name: "functions", Description: "The functions command allows you view, create and manage your Cloud Functions"},
+ {Name: "listRuntimes", Description: "Get a list of all runtimes that are currently active on your instance"},
+ {Name: "update", Description: "Update function by its unique ID"},
+ {Name: "delete", Description: "Delete a function by its unique ID"},
+ {Name: "getDeployment", Description: "Get a code deployment by its unique ID"},
+ {Name: "deleteDeployment", Description: "Delete a code deployment by its unique ID"},
+ {Name: "getExecution", Description: "Get a function execution log by its unique ID"},
+ {Name: "getAntivirus", Description: "Check the Appwrite Antivirus server is up and connection is successful"},
+ {Name: "getCache", Description: "Check the Appwrite in-memory cache server is up and connection is successful"},
+ {Name: "getDB", Description: "Check the Appwrite database server is up and connection is successful"},
+ {Name: "getStorageLocal", Description: "Check the Appwrite local storage device is up and connection is successful"},
+ {Name: "storage", Description: "The storage command allows you to manage your project files"},
+ {Name: "createBucket", Description: "Create a new storage bucket"},
+ {Name: "updateBucket", Description: "Update a storage bucket by its unique ID"},
+ {Name: "deleteBucket", Description: "Delete a storage bucket by its unique ID"},
+ {Name: "listLogs", Description: "Get the team activity logs list by its unique ID"},
+ {Name: "users", Description: "The users command allows you to manage your project users"},
+ {Name: "create", Description: "Create a new user"},
+ {Name: "updateEmail", Description: "Update the user email by its unique ID"},
+ {Name: "getLogs", Description: "Get the user activity logs list by its unique ID"},
+ {Name: "getMemberships", Description: "Get the user membership list by its unique ID"},
+ {Name: "updatePassword", Description: "Update the user password by its unique ID"},
+ {Name: "updatePhone", Description: "Update the user phone by its unique ID"},
+ {Name: "deleteSessions", Description: "Delete all user's sessions by using the user's unique ID"},
+ {Name: "deleteSession", Description: "Delete a user sessions by its unique ID"},
+ {Name: "updateEmailVerification", Description: "Update the user email verification status by its unique ID"},
+ {Name: "updatePhoneVerification", Description: "Update the user phone verification status by its unique ID"},
+ {Name: "client", Description: "The client command allows you to configure your CLI"},
+ },
+ Options: []core.Option{
+ {Name: "--databaseId", Description: "Database ID"},
+ {Name: "--all", Description: "Flag to initialize all databases"},
+ {Name: "--functionId", Description: "Function ID"},
+ {Name: "--userId", Description: "User ID"},
+ {Name: "--password", Description: "User password. Must be at least 8 chars"},
+ {Name: "--name", Description: "User name. Max length: 128 chars"},
+ {Name: "--email", Description: "User email"},
+ {Name: "--limit", Description: "Maximum number of results to return"},
+ {Name: "--oldPassword", Description: "Current user password. Must be at least 8 chars"},
+ {Name: "--number", Description: "User password. Must be at least 8 chars"},
+ {Name: "--prefs", Description: "Prefs key-value JSON object"},
+ {Name: "--url", Description: "Appwrite server endpoint URL"},
+ {Name: "--secret", Description: "Valid reset token"},
+ {Name: "--passwordAgain", Description: "Repeat new user password. Must be at least 8 chars"},
+ {Name: "--provider", Description: "Provider name"},
+ {Name: "--sessionId", Description: "Session ID. Use the string 'current' to get the current device session"},
+ {Name: "--code", Description: "Browser Code"},
+ {Name: "--width", Description: "Image width. Pass an integer between 0 to 2000. Defaults to 100"},
+ {Name: "--height", Description: "Image height. Pass an integer between 0 to 2000. Defaults to 100"},
+ {Name: "--quality", Description: "Image quality. Pass an integer between 0 to 100. Defaults to 100"},
+ {Name: "--destination", Description: "Output file path"},
+ {Name: "--color", Description: "Output file path"},
+ {Name: "--text", Description: "Plain text to be converted to QR code image"},
+ {Name: "--size", Description: "QR code size. Pass an integer between 1 to 1000. Defaults to 400"},
+ {Name: "--margin", Description: "Margin from edge. Pass an integer between 0 to 10. Defaults to 1"},
+ {Name: "--download", Description: "Output file path"},
+ {Name: "--search", Description: "Search term to filter your list results. Max length: 256 chars"},
+ {Name: "--orderType", Description: "Order result by ASC or DESC order"},
+ {Name: "--range", Description: "'Date range"},
+ {Name: "--collectionId", Description: "Collection name. Max length: 128 chars"},
+ {Name: "--permission", Description: "Database ID"},
+ {Name: "--required", Description: "Is attribute required?"},
+ {Name: "--xdefault", Description: "Is attribute an array?"},
+ {Name: "--elements", Description: "Is attribute required?"},
+ {Name: "--min", Description: "Minimum value to enforce on new documents"},
+ {Name: "--max", Description: "Maximum value to enforce on new documents"},
+ {Name: "--orderAttributes", Description: "Database ID"},
+ {Name: "--read", Description: "Database ID"},
+ {Name: "--documentId", Description: "Document ID"},
+ {Name: "--data", Description: "Database ID"},
+ },
+ })
+}
diff --git a/commands/ops/arch.go b/commands/ops/arch.go
new file mode 100644
index 0000000..27525bc
--- /dev/null
+++ b/commands/ops/arch.go
@@ -0,0 +1,21 @@
+package ops
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "arch",
+ Description: "32-bit intel",
+ Options: []core.Option{
+ {Name: "-arch", Description: "Print architecture type or run select architecture"},
+ {Name: "-32", Description: "Add the native 32-bit architecture to the list of architectures"},
+ {Name: "-64", Description: "Add the native 64-bit architecture to the list of architectures"},
+ {Name: "-c", Description: "Clear the environment that will be passed to the command"},
+ {Name: "-d", Description: "Delete the named environment variable from the command's environment"},
+ {Name: "-e", Description: "Assign the given value to the variable in the command's environment"},
+ {Name: "-h", Description: "Print a help message and exit"},
+ },
+ })
+}
diff --git a/commands/ops/arduino_cli.go b/commands/ops/arduino_cli.go
new file mode 100644
index 0000000..f10ae1f
--- /dev/null
+++ b/commands/ops/arduino_cli.go
@@ -0,0 +1,99 @@
+package ops
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "arduino-cli",
+ Description: "Arduino CLI - build, compile, and upload Arduino sketches",
+ Subcommands: []core.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: []core.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"},
+ },
+ })
+}
diff --git a/commands/ops/argo.go b/commands/ops/argo.go
new file mode 100644
index 0000000..02d368a
--- /dev/null
+++ b/commands/ops/argo.go
@@ -0,0 +1,87 @@
+package ops
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "argo",
+ Description: "If True, Use the HTTP client. Defaults to the ARGO_HTTP1 environment variable",
+ Subcommands: []core.Subcommand{
+ {Name: "archive", Description: "Manage the workflow archive"},
+ {Name: "delete", Description: "Delete a workflow in the archive"},
+ {Name: "get", Description: "Get a workflow in the archive"},
+ {Name: "list", Description: "List workflows in the archive"},
+ {Name: "list-label-keys", Description: "List workflows label keys in the archive"},
+ {Name: "list-label-values", Description: "Get workflow label values in the archive"},
+ {Name: "resubmit", Description: "Resubmit one or more workflows"},
+ {Name: "retry", Description: "Retry zero or more workflows"},
+ {Name: "auth", Description: "Manage authentication settings"},
+ {Name: "token", Description: "Print the auth token"},
+ {Name: "cluster-template", Description: "Manipulate cluster workflow templates"},
+ {Name: "create", Description: "Create a cluster workflow template"},
+ {Name: "lint", Description: "Validate files or directories of cluster workflow template manifests"},
+ {Name: "completion", Description: "Output shell completion code for the specified shell (bash or zsh)"},
+ {Name: "cp", Description: "Copy artifacts from workflow"},
+ {Name: "cron", Description: "Manage cron workflows"},
+ {Name: "resume", Description: "Resume zero or more cron workflows"},
+ {Name: "suspend", Description: "Suspend zero or more cron workflows"},
+ {Name: "executor-plugin", Description: "Manage executor plugins"},
+ {Name: "build", Description: "Build an executor plugin"},
+ {Name: "help", Description: "Help about any command"},
+ {Name: "logs", Description: "View logs of a pod or workflow"},
+ {Name: "node", Description: "Perform action on a node in a workflow"},
+ {Name: "server", Description: "Start the Argo Server"},
+ {Name: "stop", Description: "Stop zero or more workflows allowing all exit handlers to run"},
+ {Name: "submit", Description: "Submit a workflow"},
+ {Name: "template", Description: "Manipulate workflow templates"},
+ {Name: "terminate", Description: "Terminate zero or more workflows immediately"},
+ {Name: "version", Description: "Print version information"},
+ {Name: "wait", Description: "Waits for workflows to complete"},
+ {Name: "watch", Description: "Watch a workflow until it completes"},
+ },
+ Options: []core.Option{
+ {Name: "--argo-base-href", Description: "If True, Use the HTTP client. Defaults to the ARGO_HTTP1 environment variable"},
+ {Name: "--argo-server", Description: "Username to impersonate for the operation"},
+ {Name: "--as-group", Description: "UID to impersonate for the operation"},
+ {Name: "--certificate-authorityk", Description: "Path to a cert file for the certificate authority"},
+ {Name: "--client-certificate", Description: "Path to a client certificate file for TLS"},
+ {Name: "--client-key", Description: "Path to a client key file for TLS"},
+ {Name: "--cluster", Description: "The name of the kubeconfig cluster to use"},
+ {Name: "--context", Description: "The name of the kubeconfig context to use"},
+ {Name: "--gloglevel", Description: "Set the glog logging level"},
+ {Name: "--header", Description: "Help for argo"},
+ {Name: "--insecure-skip-tls-verify", Description: "Path to a kube config. Only required if out-of-cluster"},
+ {Name: "--loglevel", Description: "If present the namespace scope for this CLI request"},
+ {Name: "--password", Description: "Password for basic authentication to the API server"},
+ {Name: "--proxy-url", Description: "This URL will be used to connect via proxy"},
+ {Name: "--request-timeout", Description: "The address and port of the Kubernetes API server"},
+ {Name: "--tls-server-name", Description: "Bearer token for authentication to the API server"},
+ {Name: "--user", Description: "The name of the kubeconfig user to use"},
+ {Name: "--username", Description: "Username for basic authentication to the API server"},
+ {Name: "--verbose", Description: "Enabled verbose logging i.e. --loglevel debug"},
+ {Name: "--output", Description: "List workflows in the archive"},
+ {Name: "--chunk-size", Description: "Return large lists in chunks rather than all at once. Pass 0 to disable"},
+ {Name: "--help", Description: "Help for list"},
+ {Name: "--selector", Description: "Resubmit one or more workflows"},
+ {Name: "--field-selector", Description: "Help for resubmit"},
+ {Name: "--log", Description: "Log the workflow until it completes"},
+ {Name: "--memoized", Description: "Re-use successful steps & outputs from the previous run"},
+ {Name: "--parameter", Description: "Input parameter to override on the original workflow spec"},
+ {Name: "--priority", Description: "Workflow priority"},
+ {Name: "--node-field-selector", Description: "Output format. One of: name|json|yaml|wide"},
+ {Name: "--restart-successful", Description: "Indicates to restart successful nodes matching the --node-field-selector"},
+ {Name: "--watch", Description: "Manage authentication settings"},
+ {Name: "--strict", Description: "Perform strict workflow validation (default true)"},
+ {Name: "--all", Description: "Delete all cluster workflow templates"},
+ {Name: "--artifact-name", Description: "Name of output artifact in workflow"},
+ {Name: "--node-id", Description: "Id of node in workflow"},
+ {Name: "--path", Description: "Name of template in workflow"},
+ {Name: "--entrypoint", Description: "Override entrypoint"},
+ {Name: "--generate-name", Description: "Override metadata.generateName"},
+ {Name: "--labels", Description: "Comma separated labels to apply to the workflow. Will override previous values"},
+ {Name: "--name", Description: "Override metadata.name"},
+ },
+ })
+}
diff --git a/commands/ops/asdf.go b/commands/ops/asdf.go
new file mode 100644
index 0000000..a9bc33b
--- /dev/null
+++ b/commands/ops/asdf.go
@@ -0,0 +1,20 @@
+package ops
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "asdf",
+ Description: "Plugin name",
+ Options: []core.Option{
+ {Name: "--urls", Description: "Show git urls"},
+ {Name: "--refs", Description: "Show git refs"},
+ {Name: "--all", Description: "Update all plugins to latest commit on default branch"},
+ {Name: "--head", Description: "Using HEAD commit"},
+ {Name: "--version", Description: "Version for asdf"},
+ {Name: "-h", Description: "Help for asdf"},
+ },
+ })
+}
diff --git a/commands/ops/atlas.go b/commands/ops/atlas.go
new file mode 100644
index 0000000..d84ad17
--- /dev/null
+++ b/commands/ops/atlas.go
@@ -0,0 +1,106 @@
+package ops
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "atlas",
+ Description: "CLI tool to manage MongoDB Atlas",
+ Subcommands: []core.Subcommand{
+ {Name: "config", Description: "Manage your profile to store access settings for your MongoDB deployment"},
+ {Name: "init", Description: "Configure a profile to store access settings for your MongoDB deployment"},
+ {Name: "set", Description: "Configure specific properties of a profile"},
+ {Name: "ls", Description: "List available profiles"},
+ {Name: "get", Description: "Return a specific profile"},
+ {Name: "mv", Description: "Rename a profile"},
+ {Name: "rm", Description: "Delete a profile"},
+ {Name: "auth", Description: "Manage the CLI's authentication state"},
+ {Name: "login", Description: "Authenticate with MongoDB Atlas"},
+ {Name: "whoami", Description: "Verifies and displays information about your authentication state"},
+ {Name: "logout", Description: "Log out of the CLI"},
+ {Name: "quickstart", Description: "Create and access an Atlas Cluster"},
+ {Name: "project", Description: "Project operations"},
+ {Name: "create", Description: "Create a project"},
+ {Name: "show", Description: "Describe a project"},
+ {Name: "apikeys", Description: "Manage API Keys for your project"},
+ {Name: "update", Description: "Assign an API Key to a project"},
+ {Name: "user", Description: "Manage users for a project"},
+ {Name: "team", Description: "Teams operations"},
+ {Name: "add", Description: "Add team to a project"},
+ {Name: "updates", Description: "Update roles for a team in a project"},
+ {Name: "invitation", Description: "Invitation operations"},
+ {Name: "organization", Description: "Organization operations"},
+ {Name: "accesslists", Description: "Manage the IP access list for your API Key"},
+ {Name: "globalapikeys", Description: "Global API Keys operations"},
+ {Name: "globalaccesslists", Description: "Manage IP access list for Global API Key"},
+ {Name: "invite", Description: "Invite a user"},
+ {Name: "cluster", Description: "Manage clusters for your project"},
+ {Name: "watch", Description: "Watch for a cluster to be available"},
+ {Name: "pause", Description: "Pause a running MongoDB cluster in Atlas"},
+ {Name: "start", Description: "Start a paused MongoDB cluster in Atlas"},
+ {Name: "loadSampleData", Description: "Load sample data into a MongoDB cluster in Atlas"},
+ {Name: "index", Description: "Manage cluster rolling indexes for your project"},
+ {Name: "fts", Description: "Manage Atlas Search for your cluster"},
+ {Name: "describe", Description: "Describe a search index for a cluster"},
+ {Name: "onlinearchives", Description: "Manage online archives for your cluster"},
+ {Name: "connectionstrings", Description: "Manage MongoDB cluster connection string"},
+ {Name: "availableregions", Description: "Manage available regions for your project"},
+ {Name: "dbuser", Description: "Manage database users for your project"},
+ {Name: "cert", Description: "Manage Atlas x509 certificates for your database users"},
+ {Name: "customdbroles", Description: "Manage custom database roles for your project"},
+ {Name: "datalakes", Description: "Manage Atlas Data Lakes for your project"},
+ {Name: "alert", Description: "Manage alerts for your project"},
+ {Name: "field", Description: "Manages alert configuration fields for your project"},
+ {Name: "types", Description: "Lists available field types for your alert configurations"},
+ {Name: "ack", Description: "Acknowledges one alert for the specified project"},
+ {Name: "unack", Description: "Unacknowledges one alert for the specified project"},
+ {Name: "global", Description: "Retrieves all the global alerts for the specified Ops Manager project"},
+ {Name: "backup", Description: "Manage cloud backups for your project"},
+ {Name: "snapshot", Description: "Manage cloud backup snapshots for your project"},
+ },
+ Options: []core.Option{
+ {Name: "--gov", Description: "Create a default profile for atlas for gov"},
+ {Name: "--output", Description: "Return a specific profile"},
+ {Name: "--force", Description: "Manage the CLI's authentication state"},
+ {Name: "--cm", Description: "Log in to Cloud Manager"},
+ {Name: "--loginOnly", Description: "Skip profile configuration"},
+ {Name: "--noBrowser", Description: "Don't try to open a browser session"},
+ {Name: "--accessListIp", Description: "IP address to be allowed to access the deployment"},
+ {Name: "--clusterName", Description: "Name of the cluster"},
+ {Name: "--default", Description: "User's password"},
+ {Name: "--projectId", Description: "Name of your cloud service provider. Valid values are AWS, AZURE, or GCP"},
+ {Name: "--region", Description: "Indicates whether to skip accessing your deployment with MongoDB Shell"},
+ {Name: "--skipSampleData", Description: "Indicates whether to skip loading sample data into your Atlas Cluster"},
+ {Name: "--tier", Description: "Tier for each data-bearing server in the cluster"},
+ {Name: "--username", Description: "Username for authenticating to MongoDB"},
+ {Name: "--limit", Description: "Number of items per page"},
+ {Name: "--orgId", Description: "Page number"},
+ {Name: "--govCloudRegionsOnly", Description: "Delete a project"},
+ {Name: "--desc", Description: "Description of the API key"},
+ {Name: "--email", Description: "User's email address"},
+ {Name: "--teamId", Description: "Unique identification of the team"},
+ {Name: "--includeDeleted", Description: "If specified, Atlas includes the deleted organizations"},
+ {Name: "--name", Description: "Page number"},
+ {Name: "--apiKey", Description: "API Key"},
+ {Name: "--cidr", Description: "Whitelist entry in CIDR notation to be added for a given API key"},
+ {Name: "--ip", Description: "IP address to be allowed for a given API key"},
+ {Name: "--country", Description: "The ISO 3166-1 alpha two-letter country code of the user's country of residence"},
+ {Name: "--firstName", Description: "User's first name"},
+ {Name: "--lastName", Description: "User's last name"},
+ {Name: "--mobile", Description: "The user's mobile or cell phone number"},
+ {Name: "--orgRole", Description: "User's roles for the associated organization"},
+ {Name: "--projectRole", Description: "User's roles for the associated project"},
+ {Name: "--id", Description: "Unique identifier of the user"},
+ {Name: "--backup", Description: "If true, enables Continuous Cloud Backup for your deployment"},
+ {Name: "--biConnector", Description: "If true, enables BI Connector for Atlas on the deployment"},
+ {Name: "--diskSizeGB", Description: "Capacity, in gigabytes, of the host's root volume"},
+ {Name: "--file", Description: "File name to use, optional file with a json cluster configuration"},
+ {Name: "--mdbVersion", Description: "MongoDB version of the cluster to deploy"},
+ {Name: "--members", Description: "Number of members in the replica set"},
+ {Name: "--type", Description: "Watch for a cluster to be available"},
+ {Name: "--collection", Description: "Collection name"},
+ },
+ })
+}
diff --git a/commands/ops/aws.go b/commands/ops/aws.go
new file mode 100644
index 0000000..ca63af2
--- /dev/null
+++ b/commands/ops/aws.go
@@ -0,0 +1,67 @@
+package ops
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "aws",
+ Description: "Use a specific profile from your credential file",
+ Subcommands: []core.Subcommand{
+ {Name: "account", Description: "Operations for Amazon Web Services Account Management"},
+ {Name: "amplifybackend", Description: "AWS Amplify Admin API"},
+ {Name: "apigatewayv2", Description: "Amazon API Gateway V2"},
+ {Name: "artifact", Description: "This reference provides descriptions of the low-level AWS Artifact Service API"},
+ {Name: "bedrock-agent", Description: "Describes the API operations for creating and managing Amazon Bedrock agents"},
+ {Name: "bedrock-agent-runtime", Description: "Contains APIs related to model invocation and querying of knowledge bases"},
+ {Name: "bedrock-data-automation", Description: "Amazon Bedrock Keystone Build"},
+ {Name: "bedrock-data-automation-runtime", Description: "Amazon Bedrock Keystone Runtime"},
+ {Name: "bedrock-runtime", Description: "Describes the API operations for running inference using Amazon Bedrock models"},
+ {Name: "cloudhsmv2", Description: "For more information about CloudHSM, see CloudHSM and the CloudHSM User Guide"},
+ {Name: "connectcampaigns", Description: "Provide APIs to create and manage Amazon Connect Campaigns"},
+ {Name: "connectcampaignsv2", Description: "Provide APIs to create and manage Amazon Connect Campaigns"},
+ {Name: "drs", Description: "AWS Elastic Disaster Recovery Service"},
+ {Name: "elastic-inference", Description: "Amazon Elastic Inference is no longer available. Elastic Inference public APIs"},
+ {Name: "elastictranscoder", Description: "AWS Elastic Transcoder Service The AWS Elastic Transcoder Service"},
+ {Name: "finspace-data", Description: "The FinSpace APIs let you take actions inside the FinSpace"},
+ {Name: "forecast", Description: "Provides APIs for creating and managing Amazon Forecast resources"},
+ {Name: "forecastquery", Description: "Provides APIs for creating and managing Amazon Forecast resources"},
+ {Name: "glue", Description: "Glue Defines the public endpoint for the Glue service"},
+ {Name: "iot1click-projects", Description: "The AWS IoT 1-Click Projects API Reference"},
+ {Name: "kafka", Description: "The operations for managing an Amazon MSK cluster"},
+ {Name: "kendra", Description: "Amazon Kendra is a service for indexing large document sets"},
+ {Name: "kinesis-video-webrtc-storage", Description: "Webrtc"},
+ {Name: "lakeformation", Description: "Lake Formation Defines the public endpoint for the Lake Formation service"},
+ {Name: "machinelearning", Description: "Definition of the public APIs exposed by Amazon Machine Learning"},
+ {Name: "macie2", Description: "Amazon Macie"},
+ {Name: "marketplacecommerceanalytics", Description: "Provides AWS Marketplace business intelligence data on-demand"},
+ {Name: "mediaconnect", Description: "API for AWS Elemental MediaConnect"},
+ {Name: "mediaconvert", Description: "AWS Elemental MediaConvert"},
+ {Name: "medialive", Description: "API for AWS Elemental MediaLive"},
+ {Name: "mediapackage", Description: "AWS Elemental MediaPackage"},
+ {Name: "mediapackage-vod", Description: "AWS Elemental MediaPackage VOD"},
+ {Name: "mgn", Description: "The Application Migration Service service"},
+ {Name: "mturk", Description: "Amazon Mechanical Turk API Reference"},
+ {Name: "pinpoint", Description: "Doc Engage API - Amazon Pinpoint API"},
+ {Name: "pinpoint-sms-voice", Description: "Pinpoint SMS and Voice Messaging public facing APIs"},
+ {Name: "qldb", Description: "The resource management API for Amazon QLDB"},
+ {Name: "resourcegroupstaggingapi", Description: "Resource Groups Tagging API"},
+ {Name: "robomaker", Description: "This section provides documentation for the AWS RoboMaker API operations"},
+ {Name: "route53-recovery-readiness", Description: "Recovery readiness"},
+ {Name: "s3outposts", Description: "Amazon S3 on Outposts provides access to S3 on Outposts operations"},
+ {Name: "sagemaker-edge", Description: "SageMaker Edge Manager dataplane service for communicating with active agents"},
+ {Name: "sagemaker-geospatial", Description: "Provides APIs for creating and managing SageMaker geospatial resources"},
+ {Name: "sagemaker-runtime", Description: "The Amazon SageMaker runtime API"},
+ {Name: "schemas", Description: "Amazon EventBridge Schema Registry"},
+ {Name: "sms-voice", Description: "Pinpoint SMS and Voice Messaging public facing APIs"},
+ {Name: "snow-device-management", Description: "Amazon Web Services Snow Device Management documentation"},
+ {Name: "timestream-query", Description: "Amazon Timestream Query"},
+ {Name: "trustedadvisor", Description: "TrustedAdvisor Public API"},
+ {Name: "runtime.sagemaker", Description: "The Amazon SageMaker runtime API"},
+ },
+ Options: []core.Option{
+ {Name: "--profile", Description: "Use a specific profile from your credential file"},
+ },
+ })
+}
diff --git a/commands/ops/aws_vault.go b/commands/ops/aws_vault.go
new file mode 100644
index 0000000..9b31156
--- /dev/null
+++ b/commands/ops/aws_vault.go
@@ -0,0 +1,25 @@
+package ops
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "aws-vault",
+ Description: "Add credentials to the secure keystore",
+ Options: []core.Option{
+ {Name: "-f", Description: "Force-remove the profile without a prompt"},
+ {Name: "--profiles", Description: "Show only the profile names"},
+ {Name: "--sessions", Description: "Show only the session names"},
+ {Name: "--credentials", Description: "Show only the profiles with stored credential"},
+ {Name: "-n", Description: "Use master credentials, no session or role used"},
+ {Name: "-d", Description: "Duration of the temporary or assume-role session. Defaults to 1h"},
+ {Name: "--region", Description: "The AWS region"},
+ {Name: "-t", Description: "The MFA token to use"},
+ {Name: "--help", Description: "Show context-sensitive help (also try --help-long and --help-man)"},
+ {Name: "--version", Description: "Show application version"},
+ {Name: "--debug", Description: "Show debugging output"},
+ },
+ })
+}
diff --git a/commands/ops/bit.go b/commands/ops/bit.go
new file mode 100644
index 0000000..3c145c1
--- /dev/null
+++ b/commands/ops/bit.go
@@ -0,0 +1,106 @@
+package ops
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "bit",
+ Description: "Bit documentation: https://bit.dev/docs",
+ Subcommands: []core.Subcommand{
+ {Name: "init", Description: "Create or reinitialize an empty workspace"},
+ {Name: "new", Description: "Create a new workspace from a template"},
+ {Name: "config", Description: "Global config management"},
+ {Name: "set", Description: "Set a global configuration"},
+ {Name: "del", Description: "Delete given key from global configuration"},
+ {Name: "get", Description: "Get a value from global configuration"},
+ {Name: "list", Description: "List all configuration(s)"},
+ {Name: "scope-config", Description: "Scope config management"},
+ {Name: "login", Description: "Log in to Bit cloud"},
+ {Name: "logout", Description: "Log the CLI out of Bit"},
+ {Name: "doctor", Description: "Diagnose a bit workspace"},
+ {Name: "filePath", Description: "Path to save diagnoses to a file"},
+ {Name: "completion", Description: "Enable bash/zsh-completion shortcuts for commands and options"},
+ {Name: "cli", Description: "EXPERIMENTAL. Enters bit cli program and generates commands list"},
+ {Name: "generate", Description: "Generate an .md file with all commands details"},
+ {Name: "help", Description: "Shows help"},
+ {Name: "clear-cache", Description: "Clears Bit's cache from current working machine"},
+ {Name: "remote", Description: "Manage set of tracked bit scope(s)"},
+ {Name: "add", Description: "Add a bare-scope as a remote, usage: remote add "},
+ {Name: "remove", Description: "Remove component(s) from the workspace, or a remote scope"},
+ {Name: "import", Description: "Import components from their remote scopes to the local workspace"},
+ {Name: "pack", Description: "Create tar for npm publish"},
+ {Name: "deprecate", Description: "Deprecate a component"},
+ {Name: "undeprecate", Description: "Undeprecate a deprecated component (local/remote)"},
+ {Name: "rename", Description: "Rename a component"},
+ {Name: "export", Description: "Export components from the workspace to remote scopes"},
+ {Name: "string", Description: "Resume export using an export-id"},
+ {Name: "dependents", Description: "EXPERIMENTAL. Show dependents of the given component"},
+ {Name: "show", Description: "Display the component's essential information"},
+ {Name: "dependencies", Description: "Manage dependencies"},
+ {Name: "deps", Description: "Manage dependencies"},
+ {Name: "unset", Description: "Unset a dependency to component(s) that was previously set by 'bit deps set'"},
+ {Name: "debug", Description: "Show the immediate dependencies and how their versions were determined"},
+ {Name: "reset", Description: "Reset dependencies to the default values (revert any previously 'bit deps set')"},
+ {Name: "eject", Description: "Write dependencies that were previously set via 'bit deps set' into .bitmap"},
+ {Name: "blame", Description: "EXPERIMENTAL: Find out which snap/tag changed a dependency version"},
+ {Name: "usage", Description: "EXPERIMENTAL: Find components that use the specified dependency"},
+ {Name: "log", Description: "Show components(s) version history"},
+ {Name: "move", Description: "Move a component to a different filesystem path"},
+ {Name: "diff", Description: "Show the diff between the components' source files and config"},
+ {Name: "envs", Description: "List all components maintained by the workspace and their corresponding envs"},
+ {Name: "replace", Description: "Replace an existing env with another env for all components using the old env"},
+ {Name: "update", Description: "Update a version of an env for all components using that env"},
+ {Name: "start", Description: "Run the ui/development server"},
+ {Name: "ui-build", Description: "Build production assets for deployment"},
+ {Name: "checkout", Description: "Switch between component versions or remove local changes"},
+ {Name: "install", Description: "Installs workspace dependencies"},
+ {Name: "uninstall", Description: "Uninstall dependencies"},
+ {Name: "component-names", Description: "Names or IDs of the components to link"},
+ {Name: "component-issues", Description: "List available component-issues"},
+ },
+ Options: []core.Option{
+ {Name: "--bare", Description: "Initialize an empty bit bare scope"},
+ {Name: "--shared", Description: "Add group write permissions to a scope"},
+ {Name: "--standalone", Description: "Do not nest component store within .git"},
+ {Name: "--reset", Description: "Write missing or damaged Bit files"},
+ {Name: "--reset-new", Description: "Reset .bitmap file as if components were newly added"},
+ {Name: "--reset-lane-new", Description: "Reset only components belonging to lanes"},
+ {Name: "--reset-hard", Description: "Delete all Bit files and directories"},
+ {Name: "--reset-scope", Description: "Removes local scope"},
+ {Name: "--default-directory", Description: "Set the default directory pattern"},
+ {Name: "--default-scope", Description: "Set the default scope for components"},
+ {Name: "--package-manager", Description: "Set the package manager to be used"},
+ {Name: "--force", Description: "Force workspace initialization without clearing local objects"},
+ {Name: "--harmony", Description: "DEPRECATED: Harmony is the default now"},
+ {Name: "--interactive", Description: "Start an interactive process"},
+ {Name: "--aspect", Description: "ID of the aspect that registered the template"},
+ {Name: "--template", Description: "Env-ID of the template's owner. Alias for --env"},
+ {Name: "--env", Description: "Env-ID of the template. Alias for -t"},
+ {Name: "--skip-git", Description: "Skip generation of Git repository in the new workspace"},
+ {Name: "--empty", Description: "Skip template's default component creation"},
+ {Name: "--load-from", Description: "Local path to the workspace containing the template"},
+ {Name: "--cloud-domain", Description: "Login cloud domain (default bit.cloud)"},
+ {Name: "--port", Description: "Port number to open for localhost server"},
+ {Name: "--suppress-browser-launch", Description: "Do not open a browser for authentication"},
+ {Name: "--npmrc-path", Description: "Path to npmrc file to configure bit.cloud registry"},
+ {Name: "--skip-registry-config", Description: "Don't configure bit.cloud registry"},
+ {Name: "--machine-name", Description: "Specify machine-name to pair with the token"},
+ {Name: "--json", Description: "Return diagnoses in json format"},
+ {Name: "--list", Description: "List all available diagnoses"},
+ {Name: "--save", Description: "Path to save diagnoses to a file"},
+ {Name: "--archive", Description: "Path to archive the workspace including diagnosis info"},
+ {Name: "--metadata", Description: "Metadata/front-matter to place at the top of the .md file"},
+ {Name: "--docs", Description: "Generate the cli-reference.docs.mdx file"},
+ {Name: "--internal", Description: "Show internal commands"},
+ {Name: "--remote", Description: "Clear memory cache from a remote scope"},
+ {Name: "--global", Description: "Configure a remote bit scope"},
+ {Name: "--track", Description: "Keep tracking component in .bitmap"},
+ {Name: "--keep-files", Description: "Keep component files"},
+ {Name: "--silent", Description: "Skip confirmation"},
+ {Name: "--path", Description: "Import components into a specific directory"},
+ {Name: "--objects", Description: "Import components objects without checkout"},
+ },
+ })
+}
diff --git a/commands/ops/bosh.go b/commands/ops/bosh.go
new file mode 100644
index 0000000..dae6c19
--- /dev/null
+++ b/commands/ops/bosh.go
@@ -0,0 +1,80 @@
+package ops
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "bosh",
+ Description: "Deployment",
+ Subcommands: []core.Subcommand{
+ {Name: "add-blob", Description: "Add blob"},
+ {Name: "unignore", Description: "Unignore an instance"},
+ {Name: "update-cloud-config", Description: "Update current cloud config"},
+ {Name: "update-config", Description: "Update config"},
+ {Name: "update-cpi-config", Description: "Update current CPI config"},
+ {Name: "update-resurrection", Description: "Enable/disable resurrection"},
+ {Name: "update-runtime-config", Description: "Update current runtime config"},
+ {Name: "upload-blobs", Description: "Upload blobs"},
+ {Name: "upload-release", Description: "Upload release"},
+ {Name: "upload-stemcell", Description: "Upload stemcell"},
+ {Name: "variables", Description: "List variables"},
+ {Name: "vendor-package", Description: "Vendor package"},
+ {Name: "vms", Description: "List all VMs in all deployments"},
+ {Name: "orphan-disk", Description: "Orphan disk"},
+ {Name: "networks", Description: "List networks"},
+ {Name: "manifest", Description: "Show deployment manifest"},
+ {Name: "tasks", Description: "List running or recent tasks"},
+ {Name: "task", Description: "Show task status and start tracking its output"},
+ {Name: "take-snapshot", Description: "Take snapshot"},
+ {Name: "sync-blobs", Description: "Sync blobs"},
+ {Name: "stop-env", Description: "Stop BOSH environment"},
+ {Name: "stop", Description: "Stop instance(s)"},
+ {Name: "stemcells", Description: "List stemcells"},
+ {Name: "start-env", Description: "Start BOSH environment"},
+ {Name: "start", Description: "Start instance(s)"},
+ {Name: "ssh", Description: "SSH into instance(s)"},
+ {Name: "snapshots", Description: "List snapshots"},
+ {Name: "sha2ify-release", Description: "Convert release tarball to use SHA256"},
+ {Name: "sha1ify-release", Description: "Convert release tarball to use SHA1"},
+ {Name: "runtime-config", Description: "Show current runtime config"},
+ {Name: "run-errand", Description: "Run errand"},
+ {Name: "restart", Description: "Restart instance(s)"},
+ {Name: "reset-release", Description: "Reset release"},
+ {Name: "repack-stemcell", Description: "Repack stemcell"},
+ {Name: "remove-blob", Description: "Remove blob"},
+ {Name: "releases", Description: "List releases"},
+ {Name: "recreate", Description: "Recreate instance(s)"},
+ {Name: "orphaned-vms", Description: "List all the orphaned VMs in all deployments"},
+ {Name: "scp", Description: "SCP to/from instance(s)"},
+ {Name: "help", Description: "Show this help message"},
+ {Name: "ignore", Description: "Ignore an instance"},
+ {Name: "init-release", Description: "Initialize release"},
+ {Name: "inspect-local-release", Description: "Display information from release metadata"},
+ {Name: "inspect-local-stemcell", Description: "Display information from stemcell metadata"},
+ {Name: "inspect-release", Description: "List release contents such as jobs"},
+ {Name: "instances", Description: "List all instances in a deployment"},
+ {Name: "interpolate", Description: "Interpolates variables into a manifest"},
+ {Name: "locks", Description: "List current locks"},
+ {Name: "log-in", Description: "Login"},
+ {Name: "log-out", Description: "Log out"},
+ },
+ Options: []core.Option{
+ {Name: "--version", Description: "Show CLI version"},
+ {Name: "--config", Description: "Config file path (default: ~/.bosh/config)"},
+ {Name: "-e", Description: "Director environment name or URL"},
+ {Name: "--ca-cert", Description: "Director CA certificate path or value"},
+ {Name: "--sha2", Description: "Use SHA256 checksums"},
+ {Name: "--parallel", Description: "The max number of parallel operations (default: 5)"},
+ {Name: "--client", Description: "Override username or UAA client [$BOSH_CLIENT]"},
+ {Name: "--client-secret", Description: "Override password or UAA client secret [$BOSH_CLIENT_SECRET]"},
+ {Name: "--deployment", Description: "Deployment name [$BOSH_DEPLOYMENT]"},
+ {Name: "--column", Description: "Filter to show only given column(s)"},
+ {Name: "--json", Description: "Output as JSON"},
+ {Name: "--tty", Description: "Force TTY-like output"},
+ {Name: "--no-color", Description: "Toggle colorized output"},
+ {Name: "-n", Description: "Don't ask for user input [$BOSH_NON_INTERACTIVE]"},
+ },
+ })
+}
diff --git a/commands/ops/capacitor.go b/commands/ops/capacitor.go
new file mode 100644
index 0000000..b25f734
--- /dev/null
+++ b/commands/ops/capacitor.go
@@ -0,0 +1,26 @@
+package ops
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "capacitor",
+ Description: "Add a native platform project to your app",
+ Subcommands: []core.Subcommand{
+ {Name: "add", Description: "Add a native platform project to your app"},
+ {Name: "ls", Description: "List all installed Cordova and Capacitor plugins"},
+ {Name: "sync", Description: "This command runs copy and then update"},
+ {Name: "update", Description: "Updates the native plugins and dependencies referenced in package.json"},
+ },
+ Options: []core.Option{
+ {Name: "--list", Description: "Print a list of target devices available to the given platform"},
+ {Name: "--target", Description: "Run on a specific target device"},
+ {Name: "--deployment", Description: "Podfile.lock won't be deleted and pod install will use --deployment option"},
+ {Name: "--inline", Description: "Updates the native plugins and dependencies referenced in package.json"},
+ {Name: "--help", Description: "Output usage information. Can be used with individual commands too"},
+ {Name: "--version", Description: "Output the version number"},
+ },
+ })
+}
diff --git a/commands/ops/cdk.go b/commands/ops/cdk.go
new file mode 100644
index 0000000..34d6140
--- /dev/null
+++ b/commands/ops/cdk.go
@@ -0,0 +1,33 @@
+package ops
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "cdk",
+ Description: "AWS CDK CLI",
+ Subcommands: []core.Subcommand{
+ {Name: "init", Description: "Create a new, empty CDK project from a template"},
+ {Name: "metadata", Description: "Returns all metadata associated with this stack"},
+ {Name: "doctor", Description: "Check your set-up for potential problems"},
+ {Name: "diff", Description: "Compares the specified stack with the deployed stack"},
+ {Name: "destroy", Description: "Destroy the specified stack(s)"},
+ {Name: "deploy", Description: "Deploy the specified stack(s) into your AWS account"},
+ {Name: "bootstrap", Description: "Deploys the CDK toolkit stack into an AWS environment"},
+ {Name: "synth", Description: "Synthesizes and prints the CloudFormation template for this stack"},
+ {Name: "ls", Description: "List all stacks in the app"},
+ {Name: "import", Description: "Import existing resource(s) into the given STACK"},
+ {Name: "watch", Description: "Shortcut for 'deploy --watch'"},
+ {Name: "ack", Description: "Acknowledge a notice so that it does not show up anymore"},
+ {Name: "notices", Description: "Returns a list of relevant notices"},
+ {Name: "context", Description: "Manage cached context values"},
+ {Name: "doc", Description: "Opens the reference documentation in a browser"},
+ },
+ Options: []core.Option{
+ {Name: "--version", Description: "The current version"},
+ {Name: "-h", Description: "Show help"},
+ },
+ })
+}
diff --git a/commands/ops/cf.go b/commands/ops/cf.go
new file mode 100644
index 0000000..f54eba0
--- /dev/null
+++ b/commands/ops/cf.go
@@ -0,0 +1,102 @@
+package ops
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "cf",
+ Description: "Cloudfoundry cli",
+ Subcommands: []core.Subcommand{
+ {Name: "app", Description: "Display health and status for app"},
+ {Name: "APP_NAME", Description: "The app you want to get health and status for"},
+ {Name: "ssh", Description: "Display health and status for app"},
+ {Name: "env", Description: "Show all env variables for an app"},
+ {Name: "orgs", Description: "List all orgs"},
+ {Name: "version", Description: "Print the version of cf"},
+ {Name: "login", Description: "Log user in"},
+ {Name: "logout", Description: "Log user out"},
+ {Name: "password", Description: "Change user password"},
+ {Name: "target", Description: "Set or view the targeted org or space"},
+ {Name: "api", Description: "Set or view target api url"},
+ {Name: "url", Description: "API endpoint"},
+ {Name: "auth", Description: "Auth user non-interactively"},
+ {Name: "apps", Description: "List all apps in the target space"},
+ {Name: "push", Description: "Push a new app or sync changes to an existing app"},
+ {Name: "scale", Description: "Change or view the instance count, disk space limit, and memory limit for an app"},
+ {Name: "delete", Description: "Delete an app"},
+ {Name: "rename", Description: "Rename an app"},
+ {Name: "start", Description: "Start an app"},
+ {Name: "stop", Description: "Stop an app"},
+ {Name: "restart", Description: "Stop all instances of the app, then start them again. This may cause downtime"},
+ {Name: "run-task", Description: "Run a one-off task on an app"},
+ {Name: "tasks", Description: "List tasks of an app"},
+ {Name: "terminate-task", Description: "Terminate a running task of an app"},
+ {Name: "events", Description: "Show recent app events"},
+ {Name: "logs", Description: "Trail or show recent logs for an app"},
+ {Name: "set-env", Description: "Set an environment variable for an app"},
+ {Name: "unset-env", Description: "Remove an environment variable"},
+ {Name: "create-app-manifest", Description: "Create an app manifest for an app that has been pushed successfully"},
+ {Name: "get-health-check", Description: "Show the type of health check performed on an app"},
+ {Name: "set-health-check", Description: "Change type of health check performed on an app"},
+ {Name: "type of health check", Description: "Process, port or http"},
+ {Name: "enable-ssh", Description: "Enable ssh for the application"},
+ {Name: "disable-ssh", Description: "Disable ssh for the application"},
+ {Name: "ssh-enabled", Description: "Reports whether SSH is enabled on an application container instance"},
+ {Name: "marketplace", Description: "List available offerings in the marketplace"},
+ {Name: "services", Description: "List all service instances in the target space"},
+ {Name: "create-service", Description: "Create a service instance"},
+ {Name: "update-service", Description: "Update a service instance"},
+ {Name: "delete-service", Description: "Delete a service instance"},
+ {Name: "rename-service", Description: "Rename a service instance"},
+ {Name: "create-service-key", Description: "Create key for a service instance"},
+ {Name: "service-keys", Description: "List keys for a service instance"},
+ {Name: "service-key", Description: "Show service key info"},
+ {Name: "delete-service-key", Description: "Delete a service key"},
+ {Name: "bind-service", Description: "Bind a service instance to an app"},
+ {Name: "unbind-service", Description: "Unbind a service instance from an app"},
+ {Name: "bind-route-service", Description: "Bind a service instance to an HTTP route"},
+ {Name: "unbind-route-service", Description: "Unbind a service instance from an HTTP route"},
+ {Name: "create-user-provided-service", Description: "Make a user-provided service instance available to CF apps"},
+ },
+ Options: []core.Option{
+ {Name: "--guid", Description: "Display health and status for app"},
+ {Name: "-v", Description: "Verbose output"},
+ {Name: "-a", Description: "API endpoint (e.g. https://api.example.com)"},
+ {Name: "-o", Description: "Org"},
+ {Name: "-s", Description: "Space"},
+ {Name: "-p", Description: "Password"},
+ {Name: "-u", Description: "Username"},
+ {Name: "--skip-ssl-validation", Description: "Skip verification of the API endpoint. Not recommended!"},
+ {Name: "--unset", Description: "Remove all api endpoint targeting"},
+ {Name: "-b", Description: "Custom buildpack by name or git url"},
+ {Name: "-c", Description: "Startup command, set to null to reset to default start command"},
+ {Name: "-d", Description: "Domain"},
+ {Name: "-f", Description: "Path to manifest"},
+ {Name: "-n", Description: "Hostname"},
+ {Name: "-i", Description: "Number of instances"},
+ {Name: "-k", Description: "Disk limit"},
+ {Name: "-m", Description: "Memory limit"},
+ {Name: "-r", Description: "Also delete any mapped routes"},
+ {Name: "--name", Description: "Name for task"},
+ {Name: "--recent", Description: "Dump recent logs instead of tailing"},
+ {Name: "--no-restart", Description: "Create an app manifest for an app that has been pushed successfully"},
+ {Name: "-t", Description: "User provided tags"},
+ {Name: "--path", Description: "Path used in combination with HOSTNAME and DOMAIN to specify the route to bind"},
+ {Name: "--router-group", Description: "Routes for this domain will be configured only on the specified router group"},
+ {Name: "--orglevel", Description: "List all the routes for all spaces of current organization"},
+ {Name: "--hostname", Description: "Hostname for the HTTP route (required for shared domains)"},
+ {Name: "--port", Description: "Port for the TCP route"},
+ {Name: "--random-port", Description: "Create a random port for the TCP route"},
+ {Name: "--origin", Description: "Origin for mapping a user account to a user in an external identity provider"},
+ {Name: "--reserved-route-ports", Description: "Maximum number of routes that may be created with reserved ports (Default: 0)"},
+ {Name: "--allow-paid-service-plans", Description: "Can provision instances of paid service plans"},
+ {Name: "--disallow-paid-service-plans", Description: "Cannot provision instances of paid service plans"},
+ {Name: "-H", Description: "Custom headers to include in the request, flag can be specified multiple times"},
+ {Name: "-X", Description: "HTTP method (GET,POST,PUT,DELETE,etc)"},
+ {Name: "--checksum", Description: "Compute and show the sha1 value of the plugin binary file"},
+ {Name: "--help", Description: "Show help for Cloud Foundry command line tool"},
+ },
+ })
+}
diff --git a/commands/ops/checkov.go b/commands/ops/checkov.go
new file mode 100644
index 0000000..94e20be
--- /dev/null
+++ b/commands/ops/checkov.go
@@ -0,0 +1,46 @@
+package ops
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "checkov",
+ Description: "Branch",
+ Options: []core.Option{
+ {Name: "--help", Description: "Show help for checkov"},
+ {Name: "--version", Description: "Show the version of checkov"},
+ {Name: "--quiet", Description: "CLI output, display only failed checks"},
+ {Name: "--compact", Description: "CLI output, do not display code blocks"},
+ {Name: "--list", Description: "List checks"},
+ {Name: "--no-guide", Description: "IaC root directory (can not be used together with --file)"},
+ {Name: "--output", Description: "IaC frameworks to include checks for"},
+ {Name: "--skip-framework", Description: "IaC frameworks to exclude checks for"},
+ {Name: "--add-check", Description: "Generate a new check via CLI prompt"},
+ {Name: "--file", Description: "IaC file(can not be used together with --directory)"},
+ {Name: "--skip-path", Description: "Directory for custom checks to be loaded. Can be repeated"},
+ {Name: "--bc-api-key", Description: "Bridgecrew API key. You may also use the environment variable: BC_API_KEY"},
+ {Name: "--docker-image", Description: "Scan docker images by name or ID. Only works with --bc-api-key flag"},
+ {Name: "--dockerfile-path", Description: "Path to the Dockerfile of the scanned docker image"},
+ {Name: "--repo-id", Description: "Identity string of the repository, with form /"},
+ {Name: "--branch", Description: "Evaluate the values of variables and locals"},
+ {Name: "--ca-certificate", Description: "Path to the Checkov configuration YAML file"},
+ {Name: "--create-config", Description: "Runs checks but suppresses the error code"},
+ {Name: "--soft-fail-on", Description: "Set minimum severity to return a non-zero exit code"},
+ {Name: "--skip-cve-package", Description: "Use the Enforcement rules configured in the platform for hard / soft fail logic"},
+ {Name: "--support", Description: "Enable debug logs and upload the logs to the server"},
+ {Name: "--summary-position", Description: "Chose whether the summary will be appended on top or on bottom"},
+ {Name: "--skip-download", Description: "Do not download any data from Prisma Cloud"},
+ {Name: "--secrets-history-timeout", Description: "Maximum time to run the history scan"},
+ {Name: "--scan-secrets-history", Description: "Will scan the history of commits for secrets"},
+ {Name: "--prisma-api-url", Description: "The Prisma Cloud API URL"},
+ {Name: "--policy-metadata-filter", Description: "Name of the output folder to save the chosen output formats"},
+ {Name: "--output-baseline-as-skipped", Description: "Output checks that are skipped due to baseline file presence"},
+ {Name: "--openai-api-key", Description: "Return exit code 0 instead of 2"},
+ {Name: "--mask", Description: "Each entry in the list will be used for masking the desired attribute"},
+ {Name: "--deep-analysis", Description: "Enable combine TF graph and TF Plan graph"},
+ {Name: "--block-list-secret-scan", Description: "List of files to filter out from the secret scanner"},
+ },
+ })
+}
diff --git a/commands/ops/circleci.go b/commands/ops/circleci.go
new file mode 100644
index 0000000..146881f
--- /dev/null
+++ b/commands/ops/circleci.go
@@ -0,0 +1,85 @@
+package ops
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "circleci",
+ Description: "CircleCI CLI",
+ Subcommands: []core.Subcommand{
+ {Name: "completion", Description: "Generate shell completion scripts"},
+ {Name: "bash", Description: "Generate bash completion scripts"},
+ {Name: "zsh", Description: "Generate zsh completion scripts"},
+ {Name: "config", Description: "Operate on build config files"},
+ {Name: "pack", Description: "Pack CircleCI config files into a single file"},
+ {Name: "process", Description: "Validate and display extended config"},
+ {Name: "validate", Description: "Checks that config is valid"},
+ {Name: "context", Description: "Secure and share environment variables across projects"},
+ {Name: "create", Description: "Create a new context"},
+ {Name: "vcs-type", Description: "Your VCS provider, can be either 'github' or 'bitbucket'"},
+ {Name: "org-name", Description: "The name of your organization"},
+ {Name: "delete", Description: "Delete the named context"},
+ {Name: "context-name", Description: "The name for your context"},
+ {Name: "list", Description: "List all contexts"},
+ {Name: "remove-secret", Description: "Remove environment variable from a context"},
+ {Name: "secret name", Description: "The name of the env variable to remove"},
+ {Name: "show", Description: "Show a context"},
+ {Name: "store-secret", Description: "Store environment variables"},
+ {Name: "diagnostic", Description: "Check the status of your CircleCI CLI"},
+ {Name: "follow", Description: "Attempt to follow the project for the current git repo"},
+ {Name: "help", Description: "Help about any command"},
+ {Name: "local", Description: "Debug jobs on the local machine"},
+ {Name: "execute", Description: "Run a job in a container on the local machine"},
+ {Name: "namespace", Description: "Operate on namespaces"},
+ {Name: "open", Description: "Open the current project in the browser"},
+ {Name: "orb", Description: "Operate on orbs"},
+ {Name: "add-to-category", Description: "Add an orb to a category"},
+ {Name: "namespace/orb", Description: "The namespace and orb to add to a category"},
+ {Name: "category name", Description: "The name of the category to add the orb to, in quotes"},
+ {Name: "info", Description: "Show metadata of an orb"},
+ {Name: "init", Description: "Initialize a new orb"},
+ {Name: "path", Description: "The /path/to/myProject-orb"},
+ {Name: "list-categories", Description: "List orb categories"},
+ {Name: "publish", Description: "Publish an orb to the registry"},
+ {Name: "remove-from-category", Description: "Remove an orb from a category"},
+ {Name: "source", Description: "Show source code of an orb"},
+ {Name: "unlist", Description: "Disable/enable an orb's listing in the registry"},
+ {Name: "condition", Description: "Use either true|false"},
+ {Name: "policy", Description: "Manage security policies"},
+ {Name: "decide", Description: "Make a decision"},
+ {Name: "diff", Description: "Get diff between local and remote policy bundles"},
+ {Name: "policy_dir_path", Description: "Policy file or directory path"},
+ {Name: "eval", Description: "Perform raw opa evaluation locally"},
+ {Name: "fetch", Description: "Fetch policy bundle (or a single policy)"},
+ {Name: "policy name", Description: "Name of policy to fetch"},
+ {Name: "logs", Description: "Get policy decision logs / decision log (or policy bundle) by decision ID"},
+ {Name: "decision ID", Description: "Decision ID to get logs for"},
+ {Name: "push", Description: "Push policy bundle (or a single policy)"},
+ {Name: "runner", Description: "Operate on runners"},
+ {Name: "instance", Description: "Operate on runner instances"},
+ },
+ Options: []core.Option{
+ {Name: "--private", Description: "Show metadata of an orb"},
+ {Name: "-u", Description: "Include uncertified orbs"},
+ {Name: "--input", Description: "Path to input file, i.e. ./.circleci/config.yml"},
+ {Name: "--metafile", Description: "Path to decision metadata file"},
+ {Name: "--owner-id", Description: "The id of the policy's owner"},
+ {Name: "--strict", Description: "Return non-zero status code for decision resulting in HARD_FAIL"},
+ {Name: "--context", Description: "Policy context for decision, default is 'config'"},
+ {Name: "--query", Description: "Policy decision query, default is 'data'"},
+ {Name: "--after", Description: "Filter decision logs triggered AFTER this datetime"},
+ {Name: "--before", Description: "Filter decision logs triggered BEFORE this datetime"},
+ {Name: "--branch", Description: "Filter decision logs based on branch name"},
+ {Name: "--out", Description: "Specify output file name"},
+ {Name: "--policy-bundle", Description: "Get only the policy bundle for given decisionID"},
+ {Name: "--project-id", Description: "Filter decision logs based on project-id"},
+ {Name: "--status", Description: "Filter decision logs based on their status"},
+ {Name: "--no-prompt", Description: "Removes the prompt"},
+ {Name: "--enabled", Description: "Enable/disable policy decision evaluation in build pipeline"},
+ {Name: "--help", Description: "Show help for CircleCI"},
+ {Name: "--skip-update-check", Description: "Skip update check before every command"},
+ },
+ })
+}
diff --git a/commands/ops/cloudflared.go b/commands/ops/cloudflared.go
new file mode 100644
index 0000000..d783a24
--- /dev/null
+++ b/commands/ops/cloudflared.go
@@ -0,0 +1,59 @@
+package ops
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "cloudflared",
+ Description: "Specify the hostname of your application",
+ Subcommands: []core.Subcommand{
+ {Name: "install", Description: "Install cloudflared as an user launch agent"},
+ {Name: "uninstall", Description: "Uninstall the cloudflared launch agent"},
+ {Name: "help", Description: "Shows a list of commands or help for one command"},
+ },
+ Options: []core.Option{
+ {Name: "--hostname", Description: "Specify the hostname of your application"},
+ {Name: "--destination", Description: "Specify the destination address of your SSH server"},
+ {Name: "--url", Description: "Specify the host:port to forward data to Cloudflare edge"},
+ {Name: "--service-token-id", Description: "Specify an Access service token ID you wish to use. [$TUNNEL_SERVICE_TOKEN_ID]"},
+ {Name: "--service-token-secret", Description: "Access service token secret"},
+ {Name: "--log-directory", Description: "Save application log to this directory for reporting issues"},
+ {Name: "--log-level", Description: "Application logging level {debug, info, warn, error, fatal}"},
+ {Name: "--beta", Description: "Specify if you wish to update to the latest beta version (default: false)"},
+ {Name: "--version", Description: "Specify a version you wish to upgrade or downgrade to"},
+ {Name: "--metrics", Description: "Manages the cloudflared launch agent"},
+ {Name: "--allow-request", Description: "The token subcommand produces a JWT which can be used to authenticate requests"},
+ {Name: "--app", Description: "Url of access application"},
+ {Name: "--short-lived-cert", Description: "Specify if you wish to generate short lived certs. (default: false)"},
+ {Name: "--config", Description: "Config file"},
+ {Name: "--origincert", Description: "Certificate generated"},
+ {Name: "--autoupdate-freq", Description: "Autoupdate frequency. Default is 24h0m0s. (default: 24h0m0s)"},
+ {Name: "--no-autoupdate", Description: "Address"},
+ {Name: "--pidfile", Description: "Application PID"},
+ {Name: "--loglevel", Description: "Logging level"},
+ {Name: "--transport-loglevel", Description: "Logging level"},
+ {Name: "--logfile", Description: "Save application log to this file for reporting issues. [$TUNNEL_LOGFILE]"},
+ {Name: "--trace-output", Description: "Output file"},
+ {Name: "--output", Description: "Render output using given FORMAT. Valid options are 'json' or 'yaml'"},
+ {Name: "--credentials-file", Description: "Filepath at which to read/write the tunnel credentials [$TUNNEL_CRED_FILE]"},
+ {Name: "--secret", Description: "Base 64 encoded secret"},
+ {Name: "--overwrite-dns", Description: "Tunnel"},
+ {Name: "--vnet", Description: "The ID or name of the virtual network to which the route is associated to"},
+ {Name: "--filter-tunnel-id", Description: "Show only routes with the given tunnel ID"},
+ {Name: "--filter-network-is-subset-of", Description: "Show only routes whose network is a subset of the given network"},
+ {Name: "--filter-comment-is", Description: "Show only routes with this comment"},
+ {Name: "--filter-vnet-id", Description: "Show only routes that are attached to the given virtual network ID"},
+ {Name: "--default", Description: "Lists the virtual networks based on the given filter flags"},
+ {Name: "--id", Description: "List virtual networks with the given ID"},
+ {Name: "--name", Description: "List virtual networks with the given NAME"},
+ {Name: "--is-default", Description: "Render output using given FORMAT. Valid options are 'json' or 'yaml'"},
+ {Name: "--comment", Description: "A new comment describing the purpose of the virtual network"},
+ {Name: "--force", Description: "Filepath at which to read/write the tunnel credentials [$TUNNEL_CRED_FILE]"},
+ {Name: "--credentials-contents", Description: "Contents of the tunnel credentials JSON"},
+ {Name: "--features", Description: "Features"},
+ {Name: "--token", Description: "Tunnel token"},
+ },
+ })
+}
diff --git a/commands/ops/coda.go b/commands/ops/coda.go
new file mode 100644
index 0000000..51a25a5
--- /dev/null
+++ b/commands/ops/coda.go
@@ -0,0 +1,36 @@
+package ops
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "coda",
+ Description: "Coda CLI - interact with Coda docs and tables",
+ Subcommands: []core.Subcommand{
+ {Name: "init", Description: "Initialize an empty project with the recommended settings and dependencies"},
+ {Name: "execute", Description: "Execute the formula and print the output to the terminal"},
+ {Name: "formula", Description: "Formula name to execute"},
+ {Name: "params", Description: "Arguments to pass to the formula"},
+ {Name: "url", Description: "The URL to sync from"},
+ {Name: "apiToken", Description: "The API token to register"},
+ {Name: "name", Description: "The desired Pack name"},
+ {Name: "description", Description: "The Pack description"},
+ {Name: "upload", Description: "Use this command to upload a new version of your Pack based on your latest code"},
+ {Name: "release", Description: "Release a Pack version and make it live for your users"},
+ {Name: "whoami", Description: "Looks up information about the API token that is registered in this environment"},
+ {Name: "build", Description: "Generate a bundle for your Pack"},
+ {Name: "validate", Description: "Validate your Pack definition"},
+ {Name: "option", Description: "Currently the only supported option is 'timerStrategy'"},
+ {Name: "value", Description: "Value to set for the option"},
+ },
+ Options: []core.Option{
+ {Name: "--dynamicUrl", Description: "The URL to sync from"},
+ {Name: "--name", Description: "The desired Pack name"},
+ {Name: "--description", Description: "The Pack description"},
+ {Name: "--version", Description: "Show version number"},
+ {Name: "--help", Description: "Show help"},
+ },
+ })
+}
diff --git a/commands/ops/command.go b/commands/ops/command.go
new file mode 100644
index 0000000..d543ece
--- /dev/null
+++ b/commands/ops/command.go
@@ -0,0 +1,15 @@
+package ops
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "command",
+ Description: "Run an external command",
+ Options: []core.Option{
+ {Name: "-v", Description: "Print the location of the command"},
+ },
+ })
+}
diff --git a/commands/ops/copilot.go b/commands/ops/copilot.go
new file mode 100644
index 0000000..dafddbd
--- /dev/null
+++ b/commands/ops/copilot.go
@@ -0,0 +1,78 @@
+package ops
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "copilot",
+ Description: "Name of the application",
+ Subcommands: []core.Subcommand{
+ {Name: "init", Description: "Create a new ECS or App Runner application"},
+ {Name: "docs", Description: "Open the copilot docs"},
+ {Name: "ls", Description: "Lists all the applications in your account"},
+ {Name: "show", Description: "Shows info about an application"},
+ {Name: "delete", Description: "Delete all resources associated with the application"},
+ {Name: "upgrade", Description: "Upgrades the template of an application to the latest version"},
+ {Name: "svc", Description: "Commands for services. Services are long-running ECS or App Runner services"},
+ {Name: "package", Description: "Prints the AWS CloudFormation template of a service"},
+ {Name: "deploy", Description: "Deploys a service to an environment"},
+ {Name: "status", Description: "Shows status of a deployed service"},
+ {Name: "logs", Description: "Displays logs of a deployed service"},
+ {Name: "exec", Description: "Execute a command in a running container part of a service"},
+ {Name: "pause", Description: "Pause running App Runner service"},
+ {Name: "resume", Description: "Resumes a paused service"},
+ {Name: "job", Description: "Commands for jobs. Jobs are tasks that are triggered by events"},
+ {Name: "run", Description: "Run a one-off task on Amazon ECS"},
+ {Name: "storage", Description: "Commands for working with storage and databases"},
+ {Name: "version", Description: "Print the version number"},
+ {Name: "completion", Description: "Output shell completion code"},
+ {Name: "pipeline", Description: "Commands for pipelines. Continuous delivery pipelines to release services"},
+ {Name: "update", Description: "Deploys a pipeline for the services in your workspace"},
+ {Name: "help", Description: "Help about any command"},
+ },
+ Options: []core.Option{
+ {Name: "--app", Description: "Name of the application"},
+ {Name: "--name", Description: "Name of the environment"},
+ {Name: "--help", Description: "Help for command"},
+ {Name: "--json", Description: "Outputs in JSON format"},
+ {Name: "--yes", Description: "Skips confirmation prompt"},
+ {Name: "--deploy", Description: "Optional. Deploy your service or job to a test environment"},
+ {Name: "--image", Description: "The location of an existing Docker image"},
+ {Name: "--port", Description: "The port on which your service listens"},
+ {Name: "--retries", Description: "Optional. The number of times to try restarting the job on a failure"},
+ {Name: "--schedule", Description: "Optional. The schedule on which to run the job (cron expression or rate)"},
+ {Name: "--timeout", Description: "Optional. The timeout duration for the execution of the task or job"},
+ {Name: "--domain", Description: "Optional. Your existing custom domain name"},
+ {Name: "--resource-tags", Description: "Optional. Labels with key and value separated by commas to add to your resources"},
+ {Name: "--aws-access-key-id", Description: "Optional. An AWS access key"},
+ {Name: "--aws-secret-access-key", Description: "Optional. An AWS secret access key"},
+ {Name: "--aws-session-token", Description: "Optional. An AWS session token for temporary credentials"},
+ {Name: "--default-config", Description: "Optional. Skip prompting and use default environment configuration"},
+ {Name: "--import-private-subnets", Description: "Optional. Use existing private subnet IDs"},
+ {Name: "--import-public-subnets", Description: "Optional. Use existing public subnet IDs"},
+ {Name: "--import-vpc-id", Description: "Optional. Use an existing VPC ID"},
+ {Name: "--override-az-names", Description: "Optional. Availability Zone names. (default 2 random AZs)"},
+ {Name: "--override-private-cidrs", Description: "Optional. CIDR to use for private subnets. (default 10.0.2.0/24,10.0.3.0/24)"},
+ {Name: "--override-public-cidrs", Description: "Optional. CIDR to use for public subnets. (default 10.0.0.0/24,10.0.1.0/24)"},
+ {Name: "--override-vpc-cidr", Description: "Optional. Global CIDR to use for VPC. (default 10.0.0.0/16)"},
+ {Name: "--prod", Description: "If the environment contains production services"},
+ {Name: "--profile", Description: "Name of the profile"},
+ {Name: "--region", Description: "Optional. An AWS region where the environment will be created"},
+ {Name: "--resources", Description: "Optional. Show the resources in your environment"},
+ {Name: "--dockerfile", Description: "Path to the Dockerfile"},
+ {Name: "--no-subscribe", Description: "Optional. Turn off selection for adding subscriptions for worker services"},
+ {Name: "--subscribe-topics", Description: "Type of service to create"},
+ {Name: "--local", Description: "Only show services in the workspace"},
+ {Name: "--output-dir", Description: "Optional. Writes the stack template and template configuration to a directory"},
+ {Name: "--tag", Description: "Optional. The container image tag"},
+ {Name: "--force", Description: "Optional. Force a new service deployment using the existing image"},
+ {Name: "--end-time", Description: "Optional. Specifies if the logs should be streamed"},
+ {Name: "--limit", Description: "Optional. Only return logs from specific log group"},
+ {Name: "--since", Description: "Optional. Only return logs after a specific date (RFC3339). Defaults to all logs"},
+ {Name: "--tasks", Description: "Optional. Only return logs from specific task IDs"},
+ {Name: "--command", Description: "Optional. The command that is passed to a running container"},
+ },
+ })
+}
diff --git a/commands/ops/cosign.go b/commands/ops/cosign.go
new file mode 100644
index 0000000..10e6f25
--- /dev/null
+++ b/commands/ops/cosign.go
@@ -0,0 +1,84 @@
+package ops
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "cosign",
+ Description: "Provides utilities for attaching artifacts to other artifacts in a registry",
+ Subcommands: []core.Subcommand{
+ {Name: "attach", Description: "Provides utilities for attaching artifacts to other artifacts in a registry"},
+ {Name: "attestation", Description: "Attach attestation to the supplied container image"},
+ {Name: "sbom", Description: "Attach sbom to the supplied container image"},
+ {Name: "signature", Description: "Attach signatures to the supplied container image"},
+ {Name: "attest", Description: "Attest the supplied container image"},
+ {Name: "clean", Description: "Remove all signatures from an image"},
+ {Name: "completion", Description: "Generate completion script"},
+ {Name: "copy", Description: "Copy the supplied container image and signatures"},
+ {Name: "verify", Description: "Verify a signature on the base image specified in the Dockerfile"},
+ {Name: "generate", Description: "Generates (unsigned) signature payloads from the supplied container image"},
+ {Name: "generate-key-pair", Description: "Generates a key-pair"},
+ {Name: "import-key-pair", Description: "Imports a PEM-encoded RSA or EC private key"},
+ {Name: "load", Description: "Load a signed image on disk to a remote registry"},
+ {Name: "login", Description: "Log in to a registry"},
+ {Name: "piv-tool", Description: "This cosign was not built with piv-tool support!"},
+ {Name: "pkcs11-tool", Description: "This cosign was not built with pkcs11-tool support!"},
+ {Name: "policy", Description: "Subcommand to manage a keyless policy"},
+ {Name: "init", Description: "Generate a new keyless policy"},
+ {Name: "sign", Description: "Sign a keyless policy"},
+ {Name: "public-key", Description: "Gets a public key from the key-pair"},
+ {Name: "sign-blob", Description: "Sign the supplied blob, outputting the base64-encoded signature to stdout"},
+ {Name: "upload", Description: "Provides utilities for uploading artifacts to a registry"},
+ {Name: "blob", Description: "Upload one or more blobs to the supplied container image address"},
+ {Name: "wasm", Description: "Upload a wasm module to the supplied container image reference"},
+ {Name: "verify-attestation", Description: "Verify an attestation on the supplied container image"},
+ {Name: "verify-blob", Description: "Verify a signature on the supplied blob"},
+ {Name: "version", Description: "Prints the version"},
+ {Name: "help", Description: "Help about any command"},
+ },
+ Options: []core.Option{
+ {Name: "--output-file", Description: "Log output to a file"},
+ {Name: "--timeout", Description: "Timeout for commands"},
+ {Name: "--verbose", Description: "Log debug output"},
+ {Name: "--allow-insecure-registry", Description: "Path to the attestation envelope"},
+ {Name: "--k8s-keychain", Description: "Help for attestation"},
+ {Name: "--type", Description: "Type of sbom (spdx|cyclonedx|syft)"},
+ {Name: "--help", Description: "Help for sbom"},
+ {Name: "--signature", Description: "The signature, path to the signature, or {-} for stdin"},
+ {Name: "--force", Description: "Skip warnings and confirmations"},
+ {Name: "--fulcio-url", Description: "[EXPERIMENTAL] address of sigstore PKI server"},
+ {Name: "--identity-token", Description: "[EXPERIMENTAL] identity token to use for certificate from fulcio"},
+ {Name: "--insecure-skip-verify", Description: "Path to the private key file, KMS URI or Kubernetes Secret"},
+ {Name: "--no-upload", Description: "Do not upload the generated attestation"},
+ {Name: "--oidc-client-id", Description: "[EXPERIMENTAL] OIDC client ID for application"},
+ {Name: "--oidc-client-secret", Description: "[EXPERIMENTAL] OIDC client secret for application"},
+ {Name: "--oidc-issuer", Description: "[EXPERIMENTAL] OIDC provider to be used to issue ID token"},
+ {Name: "--predicate", Description: "Path to the predicate file"},
+ {Name: "--recursive", Description: "If a multi-arch image is specified, additionally sign each discrete image"},
+ {Name: "--rekor-url", Description: "[EXPERIMENTAL] address of rekor STL server"},
+ {Name: "--replace", Description: "Whether to use a hardware security key"},
+ {Name: "--slot", Description: "Specify a predicate type (slsaprovenance|link|spdx|vuln|custom) or an URI"},
+ {Name: "--attachment", Description: "Related image attachment to sign (sbom), default none"},
+ {Name: "--attachment-tag-prefix", Description: "Only verify the base image (the last FROM image in the Dockerfile)"},
+ {Name: "--cert", Description: "Path to the public certificate"},
+ {Name: "--cert-email", Description: "The email expected in a valid Fulcio certificate"},
+ {Name: "--cert-oidc-issuer", Description: "Whether to check the claims found"},
+ {Name: "--local-image", Description: "Output format for the signing image information (json|text)"},
+ {Name: "--signature-digest-algorithm", Description: "Whether to use a hardware security key"},
+ {Name: "--kms", Description: "Create key pair in KMS service to use for signing"},
+ {Name: "--key", Description: "Import key pair to use for signing"},
+ {Name: "--mirror", Description: "GCS bucket to a SigStore TUF repository or HTTP(S) base URL"},
+ {Name: "--root", Description: "Path to trusted initial root. defaults to embedded root"},
+ {Name: "--dir", Description: "Path to directory where the signed image is stored on disk"},
+ {Name: "--password", Description: "Password"},
+ {Name: "--password-stdin", Description: "Take the password from stdin"},
+ {Name: "--username", Description: "Username"},
+ {Name: "--issuer", Description: "Trusted issuer to use for identity tokens, e.g. https://accounts.google.com"},
+ {Name: "--namespace", Description: "Registry namespace that the root policy belongs to"},
+ {Name: "--out", Description: "Output policy locally"},
+ {Name: "--threshold", Description: "Threshold for root policy signers"},
+ },
+ })
+}
diff --git a/commands/ops/dapr.go b/commands/ops/dapr.go
new file mode 100644
index 0000000..4238c93
--- /dev/null
+++ b/commands/ops/dapr.go
@@ -0,0 +1,78 @@
+package ops
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "dapr",
+ Description: "Distributed Application Runtime CLI",
+ Subcommands: []core.Subcommand{
+ {Name: "build-info", Description: "Print build info of Dapr CLI and runtime"},
+ {Name: "completion", Description: "Generates shell completion scripts"},
+ {Name: "bash", Description: "Generates bash completion scripts"},
+ {Name: "fish", Description: "Generates fish completion scripts"},
+ {Name: "powershell", Description: "Generates powershell completion scripts"},
+ {Name: "zsh", Description: "Generates zsh completion scripts"},
+ {Name: "components", Description: "List all Dapr components. Supported platforms: Kubernetes"},
+ {Name: "configurations", Description: "List all Dapr configurations. Supported platforms: Kubernetes"},
+ {Name: "dashboard", Description: "Start Dapr dashboard. Supported platforms: Kubernetes and self-hosted"},
+ {Name: "invoke", Description: "Invoke a method on a given Dapr application. Supported platforms: Self-hosted"},
+ {Name: "list", Description: "List all Dapr instances. Supported platforms: Kubernetes and self-hosted"},
+ {Name: "logs", Description: "Get Dapr sidecar logs for an application. Supported platforms: Kubernetes"},
+ {Name: "mtls", Description: "Check if mTLS is enabled. Supported platforms: Kubernetes"},
+ {Name: "expiry", Description: "Checks the expiry of the root certificate"},
+ {Name: "export", Description: "Export the root CA, issuer cert and key from Kubernetes to local files"},
+ {Name: "renew-cert", Description: "Rotates the Dapr root certificate on your Kubernetes cluster"},
+ {Name: "publish", Description: "Publish a pub-sub event. Supported platforms: Self-hosted"},
+ {Name: "status", Description: "Show the health status of Dapr services. Supported platforms: Kubernetes"},
+ {Name: "stop", Description: "Stop Dapr instances and their associated apps. Supported platforms: Self-hosted"},
+ {Name: "uninstall", Description: "Uninstall Dapr runtime. Supported platforms: Kubernetes and self-hosted"},
+ {Name: "version", Description: "Print the Dapr runtime and CLI version"},
+ {Name: "help", Description: "Help about any command"},
+ },
+ Options: []core.Option{
+ {Name: "--api-token-secret", Description: "The secret to use for the API token"},
+ {Name: "--app-id", Description: "The app id to annotate"},
+ {Name: "--app-max-concurrency", Description: "The maximum number of concurrent requests to allow"},
+ {Name: "--app-port", Description: "The port to expose the app on"},
+ {Name: "--app-protocol", Description: "The protocol to use for the app. Allowed values http, https, h2c, grpc, grpcs"},
+ {Name: "--app-ssl", Description: "Enable SSL for the app"},
+ {Name: "--app-token-secret", Description: "The secret to use for the app token"},
+ {Name: "--config", Description: "The config file to annotate"},
+ {Name: "--cpu-limit", Description: "The CPU limit to set"},
+ {Name: "--cpu-request", Description: "The CPU request to set"},
+ {Name: "--dapr-image", Description: "The image to use for the dapr sidecar container"},
+ {Name: "--enable-api-logging", Description: "Enable API logging for the Dapr sidecar"},
+ {Name: "--enable-debug", Description: "Enable debug"},
+ {Name: "--enable-metrics", Description: "Enable metrics"},
+ {Name: "--enable-profile", Description: "Enable profiling"},
+ {Name: "--env", Description: "Environment variables to set (key value pairs, comma separated)"},
+ {Name: "--graceful-shutdown-seconds", Description: "The number of seconds to wait for the app to shutdown"},
+ {Name: "--http-read-buffer-size", Description: "The maximum size of HTTP header read buffer in kilobytes"},
+ {Name: "--http-stream-request-body", Description: "Enable streaming request body for HTTP"},
+ {Name: "--kubernetes", Description: "Apply annotations to Kubernetes resources"},
+ {Name: "--listen-addresses", Description: "The addresses to listen on"},
+ {Name: "--liveness-probe-delay", Description: "The delay to use for the liveness probe"},
+ {Name: "--liveness-probe-period", Description: "The period to use for the liveness probe"},
+ {Name: "--liveness-probe-threshold", Description: "The threshold to use for the liveness probe"},
+ {Name: "--liveness-probe-timeout", Description: "The timeout to use for the liveness probe"},
+ {Name: "--log-as-json", Description: "Log as JSON"},
+ {Name: "--log-level", Description: "The log level to use"},
+ {Name: "--max-request-body-size", Description: "The maximum request body size to use"},
+ {Name: "--memory-limit", Description: "The memory limit to set"},
+ {Name: "--memory-request", Description: "The memory request to set"},
+ {Name: "--metrics-port", Description: "The port to expose the metrics on"},
+ {Name: "--namespace", Description: "Comma separated list of addresses for Dapr actor placement servers"},
+ {Name: "--readiness-probe-delay", Description: "The delay to use for the readiness probe"},
+ {Name: "--readiness-probe-period", Description: "The period to use for the readiness probe"},
+ {Name: "--readiness-probe-threshold", Description: "The threshold to use for the readiness probe"},
+ {Name: "--readiness-probe-timeout", Description: "The timeout to use for the readiness probe"},
+ {Name: "--resource", Description: "The resource to target to annotate"},
+ {Name: "--unix-domain-socket-path", Description: "Linux domain socket path to use for communicating with the Dapr sidecar"},
+ {Name: "--volume-mounts", Description: "List of pod volumes to be mounted to the sidecar container in read-only mode"},
+ {Name: "--volume-mounts-rw", Description: "List of pod volumes to be mounted to the sidecar container in read-write mode"},
+ },
+ })
+}
diff --git a/commands/ops/datree.go b/commands/ops/datree.go
new file mode 100644
index 0000000..f85ee9f
--- /dev/null
+++ b/commands/ops/datree.go
@@ -0,0 +1,34 @@
+package ops
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "datree",
+ Description: "Help for",
+ Subcommands: []core.Subcommand{
+ {Name: "completion", Description: "Generate completion script for bash,zsh,fish,powershell"},
+ {Name: "config", Description: "Internal configuration management for datree config file"},
+ {Name: "get", Description: "Get configuration value"},
+ {Name: "set", Description: "Set configuration value"},
+ {Name: "help", Description: "Help about any command"},
+ {Name: "kustomize", Description: "Generate kustomization files from manifests"},
+ {Name: "test", Description: "Test kustomization files"},
+ {Name: "version", Description: "Print the version number"},
+ },
+ Options: []core.Option{
+ {Name: "--help", Description: "Help for 'test'"},
+ {Name: "--ignore-missing-schemas", Description: "Ignore missing schemas when executing schema validation step"},
+ {Name: "--no-record", Description: "Do not send policy checks metadata to the backend"},
+ {Name: "--only-k8s-files", Description: "Define output format (simple, yaml, json, xml, JUnit)"},
+ {Name: "-p", Description: "Policy name to run against"},
+ {Name: "--policy-config", Description: "Path for local policies configuration file"},
+ {Name: "--schema-location", Description: "Override schemas location search path (can be specified multiple times)"},
+ {Name: "-s", Description: "Set kubernetes version to validate against. Defaults to 1.19.0"},
+ {Name: "--verbose", Description: "Display 'How to Fix' link"},
+ {Name: "-h", Description: "Set configuration value"},
+ },
+ })
+}
diff --git a/commands/ops/deployctl.go b/commands/ops/deployctl.go
new file mode 100644
index 0000000..8c6f060
--- /dev/null
+++ b/commands/ops/deployctl.go
@@ -0,0 +1,26 @@
+package ops
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "deployctl",
+ Description: "Command line tool for Deno Deploy",
+ Subcommands: []core.Subcommand{
+ {Name: "deploy", Description: "Deploy a script with static files to Deno Deploy"},
+ {Name: "upgrade", Description: "Upgrade deployctl"},
+ },
+ Options: []core.Option{
+ {Name: "--exclude", Description: "Exclude files that match this pattern"},
+ {Name: "--include", Description: "Only upload files that match this pattern"},
+ {Name: "--no-static", Description: "Don't include the files in the CWD as static files"},
+ {Name: "--prod", Description: "Create a production deployment (default is preview deployment)"},
+ {Name: "-p", Description: "The project to deploy to"},
+ {Name: "--token", Description: "The API token to use"},
+ {Name: "--help", Description: "Show help"},
+ {Name: "-V", Description: "Show the version"},
+ },
+ })
+}
diff --git a/commands/ops/direnv.go b/commands/ops/direnv.go
new file mode 100644
index 0000000..dbc56a7
--- /dev/null
+++ b/commands/ops/direnv.go
@@ -0,0 +1,32 @@
+package ops
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "direnv",
+ Description: "Help for direnv",
+ Subcommands: []core.Subcommand{
+ {Name: "allow", Description: "Grants direnv to load the given .envrc"},
+ {Name: "deny", Description: "Revokes the authorization of a given .envrc"},
+ {Name: "exec", Description: "Executes a command after loading the first .envrc found in DIR"},
+ {Name: "fetchurl", Description: "Fetches a given URL into direnv's CAS"},
+ {Name: "hook", Description: "Used to setup the shell hook"},
+ {Name: "prune", Description: "Removes old allowed files"},
+ {Name: "reload", Description: "Triggers an env reload"},
+ {Name: "status", Description: "Prints some debug status information"},
+ {Name: "stdlib", Description: "Displays the stdlib available in the .envrc execution context"},
+ {Name: "show_dump", Description: "Show the data inside of a dump for debugging purposes"},
+ {Name: "dotenv", Description: "Transforms a .env file to evaluatable `export KEY=PAIR` statements"},
+ {Name: "dump", Description: "Used to export the inner bash state at the end of execution"},
+ {Name: "FILE", Description: "Overwrites by dump data"},
+ {Name: "export", Description: "Loads an .envrc and prints the diff in terms of exports"},
+ {Name: "watch", Description: "Adds a path to the list that direnv watches for changes"},
+ {Name: "watch-dir", Description: "Recursively adds a directory to the list that direnv watches for changes"},
+ {Name: "watch-list", Description: "Pipe pairs of `mtime path` to stdin to build a list of files to watch"},
+ {Name: "current", Description: "Reports whether direnv's view of a file is current (or stale)"},
+ },
+ })
+}
diff --git a/commands/ops/doctl.go b/commands/ops/doctl.go
new file mode 100644
index 0000000..0366de8
--- /dev/null
+++ b/commands/ops/doctl.go
@@ -0,0 +1,72 @@
+package ops
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "doctl",
+ Description: "The official DigitalOcean command line interface (CLI)",
+ Subcommands: []core.Subcommand{
+ {Name: "help", Description: "Display help about commands"},
+ {Name: "get", Description: "Retrieve account profile details"},
+ {Name: "ratelimit", Description: "Retrieve your API usage and the remaining quota"},
+ {Name: "apps", Description: "Display commands for working with apps"},
+ {Name: "create", Description: "Create an app"},
+ {Name: "create-deployment", Description: "Create a deployment"},
+ {Name: "delete", Description: "Deletes an app"},
+ {Name: "get-deployment", Description: "Get a deployment"},
+ {Name: "list", Description: "List all apps"},
+ {Name: "list-alerts", Description: "List alerts on an app"},
+ {Name: "list-deployments", Description: "List all deployments"},
+ {Name: "list-regions", Description: "List App Platform regions"},
+ {Name: "logs", Description: "Get logs"},
+ {Name: "propose", Description: "Propose an app spec"},
+ {Name: "spec", Description: "Display commands for working with app specs"},
+ {Name: "tier", Description: "Display commands for working with app tiers"},
+ {Name: "update", Description: "Update an app"},
+ {Name: "update-alert-destinations", Description: "Update alert destinations"},
+ {Name: "auth", Description: "Display commands for authenticating doctl with an account"},
+ {Name: "init", Description: "Initialize doctl to use a specific account"},
+ {Name: "remove", Description: "Remove authentication contexts"},
+ {Name: "switch", Description: "Switches between authentication contexts"},
+ {Name: "balance", Description: "Display commands for retrieving your account balance"},
+ {Name: "billing-history", Description: "Display commands for retrieving your billing history"},
+ {Name: "compute", Description: "Display commands that manage infrastructure"},
+ {Name: "action", Description: "Display commands for retrieving resource action history"},
+ {Name: "cdn", Description: "Display commands that manage CDNs"},
+ {Name: "certificate", Description: "Display commands that manage SSL certificates and private keys"},
+ {Name: "domain", Description: "Display commands that manage domains"},
+ {Name: "droplet", Description: "Manage virtual machines (Droplets)"},
+ {Name: "droplet-action", Description: "Display Droplet action commands"},
+ {Name: "firewall", Description: "Display commands to manage cloud firewalls"},
+ {Name: "floating-ip", Description: "Display commands to manage floating IP addresses"},
+ {Name: "floating-ip-action", Description: "Display commands to associate floating IP addresses with Droplets"},
+ {Name: "image", Description: "Display commands to manage images"},
+ {Name: "image-action", Description: "Display commands to perform actions on images"},
+ {Name: "load-balancer", Description: "Display commands to manage load balancers"},
+ {Name: "region", Description: "Display commands to list datacenter regions"},
+ {Name: "size", Description: "List available Droplet sizes"},
+ {Name: "snapshot", Description: "Access and manage snapshots"},
+ {Name: "ssh", Description: "Access a Droplet using SSH"},
+ {Name: "ssh-key", Description: "Display commands to manage SSH keys on your account"},
+ {Name: "tag", Description: "Display commands to manage tags"},
+ {Name: "volume", Description: "Display commands to manage block storage volumes"},
+ {Name: "volume-action", Description: "Display commands to perform actions on a volume"},
+ {Name: "databases", Description: "Display commands that manage databases"},
+ {Name: "backups", Description: "List database cluster backups"},
+ {Name: "connection", Description: "Retrieve connection details for a database cluster"},
+ {Name: "db", Description: "Display commands for managing individual databases within a cluster"},
+ {Name: "maintenance-window", Description: "Display commands for scheduling automatic maintenance on your database cluster"},
+ },
+ Options: []core.Option{
+ {Name: "-h", Description: "Help for doctl"},
+ {Name: "-v", Description: "Enable verbose output"},
+ {Name: "-o", Description: "Desired output format"},
+ {Name: "--trace", Description: "Show a log of network activity while performing a command"},
+ {Name: "-c", Description: "Override default API endpoint"},
+ {Name: "-t", Description: "API V2 access token"},
+ },
+ })
+}
diff --git a/commands/ops/doppler.go b/commands/ops/doppler.go
new file mode 100644
index 0000000..1130fdc
--- /dev/null
+++ b/commands/ops/doppler.go
@@ -0,0 +1,99 @@
+package ops
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "doppler",
+ Description: "The official CLI for Doppler Secret Operations Platform",
+ Subcommands: []core.Subcommand{
+ {Name: "activity", Description: "Get workplace activity logs"},
+ {Name: "get", Description: "Get workplace activity log"},
+ {Name: "changelog", Description: "View the CLI's changelog"},
+ {Name: "completion", Description: "Print shell completion script"},
+ {Name: "install", Description: "Install completions for the current shell"},
+ {Name: "configs", Description: "Manage configs"},
+ {Name: "clone", Description: "Clone a config"},
+ {Name: "create", Description: "Create a config"},
+ {Name: "delete", Description: "Delete a config"},
+ {Name: "lock", Description: "Lock a config"},
+ {Name: "logs", Description: "List config audit logs"},
+ {Name: "tokens", Description: "List a config's service tokens"},
+ {Name: "revoke", Description: "Revoke a service token from a config"},
+ {Name: "unlock", Description: "Unlock a config"},
+ {Name: "update", Description: "Update a config"},
+ {Name: "configure", Description: "View the config file"},
+ {Name: "debug", Description: "View current configuration utilizing all config sources"},
+ {Name: "options", Description: "List all supported config options"},
+ {Name: "reset", Description: "Reset local CLI configuration to a clean initial state"},
+ {Name: "set", Description: "Set the value of one or more options in the config file"},
+ {Name: "unset", Description: "Unset the value of one or more options in the config file"},
+ {Name: "environments", Description: "Manage environments"},
+ {Name: "rename", Description: "Rename an environment"},
+ {Name: "feedback", Description: "Provide feedback about the Doppler CLI"},
+ {Name: "help", Description: "Help about any command"},
+ {Name: "import", Description: "Import projects into your Doppler workplace"},
+ {Name: "login", Description: "Authenticate to Doppler"},
+ {Name: "roll", Description: "Roll your auth token"},
+ {Name: "logout", Description: "Log out of the CLI"},
+ {Name: "open", Description: "Open the Doppler dashboard"},
+ {Name: "dashboard", Description: "Open the Doppler dashboard"},
+ {Name: "docs", Description: "Open the Doppler documentation home page"},
+ {Name: "github", Description: "Open Doppler's GitHub to help contribute"},
+ {Name: "status", Description: "Open the Doppler status page"},
+ {Name: "projects", Description: "Manage projects"},
+ {Name: "run", Description: "Run a command with secrets injected into the environment"},
+ {Name: "clean", Description: "Delete old fallback files"},
+ {Name: "secrets", Description: "Manage secrets"},
+ {Name: "download", Description: "Download a config's secrets for later use"},
+ {Name: "substitute", Description: "Substitute secrets into a template file"},
+ {Name: "upload", Description: "Upload a secrets file"},
+ {Name: "settings", Description: "Get workplace settings"},
+ {Name: "setup", Description: "Setup the Doppler CLI for managing secrets"},
+ },
+ Options: []core.Option{
+ {Name: "-h", Description: "Config (e.g. dev)"},
+ {Name: "--fallback-only", Description: "Disable modifying the fallback file. secrets can still be read from the file"},
+ {Name: "--format", Description: "Do not exit if unable to write the fallback file"},
+ {Name: "--no-fallback", Description: "Disable reading and writing the fallback file"},
+ {Name: "--no-update-config", Description: "Do not modify the config file"},
+ {Name: "--no-update-config-options", Description: "Do not remove configured options from the config file (i.e. project and config)"},
+ {Name: "--passphrase", Description: "Project (e.g. backend)"},
+ {Name: "--raw", Description: "Print the raw secret value without processing variables"},
+ {Name: "--yes", Description: "Proceed without confirmation"},
+ {Name: "--api-host", Description: "Output additional information"},
+ {Name: "--dns-resolver-address", Description: "Max dns lookup duration (default 5s)"},
+ {Name: "--enable-dns-resolver", Description: "Bypass the OS's default DNS resolver"},
+ {Name: "--json", Description: "Output json"},
+ {Name: "--no-check-version", Description: "Disable checking for Doppler CLI updates"},
+ {Name: "--no-read-env", Description: "Do not read config from the environment"},
+ {Name: "--no-timeout", Description: "Disable http timeout"},
+ {Name: "--no-verify-tls", Description: "Output active configuration"},
+ {Name: "--scope", Description: "Disable output of info messages"},
+ {Name: "--timeout", Description: "Max http request duration (default 10s)"},
+ {Name: "--token", Description: "Doppler token"},
+ {Name: "--log", Description: "Activity log id"},
+ {Name: "-n", Description: "Number of versions to show changes for (default 3)"},
+ {Name: "--name", Description: "New config name"},
+ {Name: "--environment", Description: "Config environment"},
+ {Name: "--slug", Description: "Service token slug"},
+ {Name: "--access", Description: "Print only the token without formatting"},
+ {Name: "--copy", Description: "Copy the token to your clipboard"},
+ {Name: "--max-age", Description: "Max age of the token (e.g. '3h', '15m')"},
+ {Name: "--plain", Description: "Print only the token without formatting"},
+ {Name: "--template", Description: "Path to template file (e.g. './path/to/file.yaml') (default \\"},
+ {Name: "--no-copy", Description: "Do not copy the auth code to the clipboard"},
+ {Name: "--overwrite", Description: "Overwrite existing token if one exists"},
+ {Name: "--description", Description: "Project description"},
+ {Name: "--command", Description: "Forward signals to the child process (defaults to false when STDOUT is a TTY)"},
+ {Name: "--preserve-env", Description: "Delete old fallback files"},
+ {Name: "--all", Description: "Delete all fallback files"},
+ {Name: "--dry-run", Description: "Do not delete anything, print what would have happened"},
+ {Name: "--only-names", Description: "Only print the secret names; omit all values"},
+ {Name: "--no-file", Description: "Print the response to stdout"},
+ {Name: "--no-exit-on-missing-secret", Description: "Do not exit if unable to find a requested secret"},
+ },
+ })
+}
diff --git a/commands/ops/eas.go b/commands/ops/eas.go
new file mode 100644
index 0000000..5dda817
--- /dev/null
+++ b/commands/ops/eas.go
@@ -0,0 +1,106 @@
+package ops
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "eas",
+ Description: "Log in with your Expo account",
+ Subcommands: []core.Subcommand{
+ {Name: "account:login", Description: "Log in with your Expo account"},
+ {Name: "account:logout", Description: "Log out"},
+ {Name: "account:view", Description: "Show the username you are logged in as"},
+ {Name: "analytics", Description: "Display or change analytics settings"},
+ {Name: "autocomplete", Description: "Display autocomplete installation instructions"},
+ {Name: "Shell", Description: "Select the shell you'd like to display autocomplete information for"},
+ {Name: "branch:create", Description: "Create a branch"},
+ {Name: "Name", Description: "Name of the branch to create"},
+ {Name: "branch:delete", Description: "Delete a branch"},
+ {Name: "branch:list", Description: "List all branches"},
+ {Name: "branch:rename", Description: "Rename a branch"},
+ {Name: "branch:view", Description: "View a branch"},
+ {Name: "build", Description: "Start a build"},
+ {Name: "build:cancel", Description: "Cancel a build"},
+ {Name: "build:configure", Description: "Configure the project to support EAS build"},
+ {Name: "build:list", Description: "List all builds for your project"},
+ {Name: "build:submit", Description: "Submit app binary to App Store and/or Play Store"},
+ {Name: "build:version:set", Description: "Update version of an app"},
+ {Name: "build:version:sync", Description: "Update a version in native code with a value stored on EAS servers"},
+ {Name: "build:view", Description: "View a build for your project"},
+ {Name: "channel:create", Description: "Create a channel"},
+ {Name: "channel:edit", Description: "Point a channel at a new branch"},
+ {Name: "channel:list", Description: "List all channels"},
+ {Name: "channel:view", Description: "View a channel"},
+ {Name: "config", Description: "Display project configuration (app.json + eas.json)"},
+ {Name: "credentials", Description: "Manage credentials"},
+ {Name: "device:create", Description: "Register new Apple devices to use for internal distribution"},
+ {Name: "device:delete", Description: "Remove a registered device from your account"},
+ {Name: "device:list", Description: "List all registered devices for your account"},
+ {Name: "device:view", Description: "View a device for your project"},
+ {Name: "diagnostics", Description: "Display environment info"},
+ {Name: "help", Description: "Display help for eas-cli"},
+ {Name: "Command", Description: "Command to show help for"},
+ {Name: "metadata:pull", Description: "Generate the local store configuration from the app stores"},
+ {Name: "metadata:push", Description: "Sync the local store configuration to the app stores"},
+ {Name: "open", Description: "Open the project page in a web browser"},
+ {Name: "project:info", Description: "Information about the current project"},
+ {Name: "project:init", Description: "Create or link an EAS project"},
+ {Name: "secret:create", Description: "Create an environment secret on the current project or owner account"},
+ {Name: "secret:delete", Description: "Delete an environment secret by ID"},
+ {Name: "secret:list", Description: "List environment secrets available for your current app"},
+ {Name: "update", Description: "Publish an update group"},
+ {Name: "update:configure", Description: "Configure the project to support EAS update"},
+ {Name: "update:delete", Description: "Delete all the updates in an update group"},
+ {Name: "Group ID", Description: "The ID of an update group to delete"},
+ {Name: "update:list", Description: "View the recent updates"},
+ {Name: "update:view", Description: "Update group details"},
+ {Name: "webhook:create", Description: "Create a webhook"},
+ {Name: "webhook:delete", Description: "Delete a webhook"},
+ {Name: "ID", Description: "ID of the webhook to delete"},
+ },
+ Options: []core.Option{
+ {Name: "-r", Description: "Refresh cache (ignores displaying instructions)"},
+ {Name: "--json", Description: "Enable JSON output, non-JSON messages will be printed to stderr"},
+ {Name: "--non-interactive", Description: "Run the command in non-interactive mode"},
+ {Name: "--limit", Description: "The number of items to fetch each query. Defaults to 50 and is capped at 100"},
+ {Name: "--offset", Description: "Start queries from specified index. Use for paginating results. Defaults to 0"},
+ {Name: "--from", Description: "Current name of the branch"},
+ {Name: "--to", Description: "New name of the branch"},
+ {Name: "-e", Description: "A short message describing the build"},
+ {Name: "-p", Description: "Submit on build complete using the submit profile with provided name"},
+ {Name: "--clear-cache", Description: "Clear cache before the build"},
+ {Name: "--local", Description: "Run build locally [experimental]"},
+ {Name: "--output", Description: "Output path for local build"},
+ {Name: "--no-wait", Description: "Don't wait for build(s) to complete"},
+ {Name: "--wait", Description: "Wait for build(s) to complete"},
+ {Name: "-s", Description: "Delete OUTPUT_DIRECTORY if it already exists"},
+ {Name: "--appBuildVersion", Description: "Enable JSON output, non-JSON messages will be printed to stderr"},
+ {Name: "--platform", Description: "Submit app binary to App Store and/or Play Store"},
+ {Name: "--latest", Description: "Submit the latest build for specified platform"},
+ {Name: "--path", Description: "Path to the .apk/.aab/.ipa file"},
+ {Name: "--url", Description: "App archive url"},
+ {Name: "--verbose", Description: "Always print logs from Submission Service"},
+ {Name: "--branch", Description: "Name of the branch to point to"},
+ {Name: "--apple-team-id", Description: "The Apple team ID on which to find the device"},
+ {Name: "--udid", Description: "The Apple device ID to disable"},
+ {Name: "-n", Description: "Include all nested commands in the output"},
+ {Name: "--force", Description: "Whether to overwrite any existing project ID"},
+ {Name: "--id", Description: "ID of the EAS project to link"},
+ {Name: "--name", Description: "Name of the secret"},
+ {Name: "--scope", Description: "[default: project] Scope for the secret"},
+ {Name: "--type", Description: "The type of secret"},
+ {Name: "--value", Description: "Text value or path to a file to store in the secret"},
+ {Name: "--auto", Description: "Branch to publish the update group on"},
+ {Name: "--group", Description: "Update group to republish"},
+ {Name: "--input-dir", Description: "[default: dist] Location of the bundle"},
+ {Name: "--message", Description: "A short message describing the update"},
+ {Name: "--private-key-path", Description: "Republish an update group"},
+ {Name: "--skip-bundler", Description: "Skip running Expo CLI to bundle the app before publishing"},
+ {Name: "--all", Description: "List updates on all branches"},
+ {Name: "--event", Description: "Event type that triggers the webhook"},
+ {Name: "--secret", Description: "Webhook URL"},
+ },
+ })
+}
diff --git a/commands/ops/fastly.go b/commands/ops/fastly.go
new file mode 100644
index 0000000..a138bdb
--- /dev/null
+++ b/commands/ops/fastly.go
@@ -0,0 +1,106 @@
+package ops
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "fastly",
+ Description: "A CLI for interacting with the Fastly platform",
+ Subcommands: []core.Subcommand{
+ {Name: "acl", Description: "Manipulate Fastly ACLs (Access Control Lists)"},
+ {Name: "create", Description: "Create a new ACL attached to the specified service version"},
+ {Name: "delete", Description: "Delete an ACL from the specified service version"},
+ {Name: "describe", Description: "Retrieve a single ACL by name for the version and service"},
+ {Name: "list", Description: "List ACLs"},
+ {Name: "update", Description: "Update an ACL for a particular service and version"},
+ {Name: "acl-entry", Description: "Manipulate Fastly ACL (Access Control List) entries"},
+ {Name: "auth-token", Description: "Manage API tokens for Fastly service users"},
+ {Name: "backend", Description: "Manipulate Fastly service version backends"},
+ {Name: "compute", Description: "Manage Compute@Edge packages"},
+ {Name: "build", Description: "Build a Compute@Edge package locally"},
+ {Name: "deploy", Description: "Deploy a package to a Fastly Compute@Edge service"},
+ {Name: "init", Description: "Initialize a new Compute@Edge package locally"},
+ {Name: "pack", Description: "Package a pre-compiled Wasm binary for a Fastly Compute@Edge service"},
+ {Name: "publish", Description: "Build and deploy a Compute@Edge package to a Fastly service"},
+ {Name: "serve", Description: "Build and run a Compute@Edge package locally"},
+ {Name: "validate", Description: "Validate a Compute@Edge package"},
+ {Name: "config", Description: "Display the Fastly CLI configuration"},
+ {Name: "dictionary", Description: "Manipulate Fastly edge dictionaries"},
+ {Name: "dictionary-item", Description: "Manipulate Fastly edge dictionary items"},
+ {Name: "domain", Description: "Manipulate Fastly service version domains"},
+ {Name: "healthcheck", Description: "Manipulate Fastly service version healthchecks"},
+ {Name: "ip-list", Description: "List Fastly's public IPs"},
+ {Name: "log-tail", Description: "Tail Compute@Edge logs"},
+ {Name: "logging", Description: "Manipulate Fastly service version logging endpoints"},
+ {Name: "azureblob", Description: "Manipulate Fastly service version Azure Blob Storage logging endpoints"},
+ {Name: "bigquery", Description: "Manipulate Fastly service version BigQuery logging endpoints"},
+ {Name: "cloudfiles", Description: "Manipulate Fastly service version Cloudfiles logging endpoints"},
+ {Name: "datadog", Description: "Manipulate Fastly service version Datadog logging endpoints"},
+ {Name: "digitalocean", Description: "Manipulate Fastly service version DigitalOcean Spaces logging endpoints"},
+ {Name: "elasticsearch", Description: "Manipulate Fastly service version Elasticsearch logging endpoints"},
+ {Name: "ftp", Description: "Manipulate Fastly service version FTP logging endpoints"},
+ {Name: "gcs", Description: "Manipulate Fastly service version GCS logging endpoints"},
+ {Name: "googlepubsub", Description: "Manipulate Fastly service version Google Cloud Pub/Sub logging endpoints"},
+ {Name: "heroku", Description: "Manipulate Fastly service version Heroku logging endpoints"},
+ {Name: "honeycomb", Description: "Manipulate Fastly service version Honeycomb logging endpoints"},
+ {Name: "https", Description: "Manipulate Fastly service version HTTPS logging endpoints"},
+ {Name: "kafka", Description: "Manipulate Fastly service version Kafka logging endpoints"},
+ {Name: "kinesis", Description: "Manipulate a Kinesis logging endpoint for a specific Fastly service version"},
+ {Name: "logentries", Description: "Manipulate Fastly service version Logentries logging endpoints"},
+ {Name: "loggly", Description: "Manipulate Fastly service version Loggly logging endpoints"},
+ {Name: "logshuttle", Description: "Manipulate Fastly service version Logshuttle logging endpoints"},
+ {Name: "newrelic", Description: "Manipulate a NewRelic logging endpoint for a specific Fastly service version"},
+ {Name: "openstack", Description: "Manipulate Fastly service version OpenStack logging endpoints"},
+ {Name: "papertrail", Description: "Manipulate Fastly service version Papertrail logging endpoints"},
+ {Name: "s3", Description: "Manipulate Fastly service version S3 logging endpoints"},
+ {Name: "scalyr", Description: "Manipulate Fastly service version Scalyr logging endpoints"},
+ {Name: "sftp", Description: "Manipulate Fastly service version SFTP logging endpoints"},
+ {Name: "splunk", Description: "Manipulate Fastly service version Splunk logging endpoints"},
+ {Name: "sumologic", Description: "Manipulate Fastly service version Sumologic logging endpoints"},
+ },
+ Options: []core.Option{
+ {Name: "--name", Description: "'latest', 'active', or the number of a specific version"},
+ {Name: "--autoclone", Description: "If the selected service version is not editable, clone it and use the clone"},
+ {Name: "--service-id", Description: "Service ID (falls back to FASTLY_SERVICE_ID, then fastly.toml)"},
+ {Name: "--service-name", Description: "The name of the service"},
+ {Name: "--version", Description: "'latest', 'active', or the number of a specific version"},
+ {Name: "--json", Description: "Render output as JSON"},
+ {Name: "--new-name", Description: "The new name of the ACL"},
+ {Name: "--acl-id", Description: "Alphanumeric string identifying a ACL"},
+ {Name: "--ip", Description: "An IP address"},
+ {Name: "--comment", Description: "A freeform descriptive note"},
+ {Name: "--negated", Description: "Whether to negate the match"},
+ {Name: "--subnet", Description: "Number of bits for the subnet mask applied to the IP address"},
+ {Name: "--id", Description: "Alphanumeric string identifying an ACL Entry"},
+ {Name: "--direction", Description: "Direction in which to sort results"},
+ {Name: "--page", Description: "Page number of data set to fetch"},
+ {Name: "--per-page", Description: "Number of records per page"},
+ {Name: "--sort", Description: "Field on which to sort"},
+ {Name: "--file", Description: "Batch update json passed as file path or content, e.g. $(< batch.json)"},
+ {Name: "--password", Description: "User password corresponding with --token or $FASTLY_API_TOKEN"},
+ {Name: "--expires", Description: "Time-stamp (UTC) of when the token will expire"},
+ {Name: "--scope", Description: "Authorization scope (repeat flag per scope)"},
+ {Name: "--services", Description: "Revoke an API token"},
+ {Name: "--current", Description: "Revoke the token used to authenticate the request"},
+ {Name: "--customer-id", Description: "Alphanumeric string identifying the customer (falls back to FASTLY_CUSTOMER_ID)"},
+ {Name: "--address", Description: "A hostname, IPv4, or IPv6 address for the backend"},
+ {Name: "--port", Description: "Port number of the address"},
+ {Name: "--override-host", Description: "The hostname to override the Host header"},
+ {Name: "--connect-timeout", Description: "How long to wait for a timeout in milliseconds"},
+ {Name: "--max-conn", Description: "Maximum number of connections"},
+ {Name: "--first-byte-timeout", Description: "How long to wait for the first bytes in milliseconds"},
+ {Name: "--between-bytes-timeout", Description: "How long to wait between bytes in milliseconds"},
+ {Name: "--auto-loadbalance", Description: "Whether or not this backend should be automatically load balanced"},
+ {Name: "--weight", Description: "Weight used to load balance this backend against others"},
+ {Name: "--request-condition", Description: "Condition, which if met, will select this backend during a request"},
+ {Name: "--healthcheck", Description: "The name of the healthcheck to use with this backend"},
+ {Name: "--shield", Description: "Whether or not to use SSL to reach the backend"},
+ {Name: "--ssl-check-cert", Description: "Be strict on checking SSL certs"},
+ {Name: "--ssl-ca-cert", Description: "CA certificate attached to origin"},
+ {Name: "--ssl-client-cert", Description: "Client certificate attached to origin"},
+ {Name: "--ssl-client-key", Description: "Client key attached to origin"},
+ },
+ })
+}
diff --git a/commands/ops/firebase.go b/commands/ops/firebase.go
new file mode 100644
index 0000000..b5680e5
--- /dev/null
+++ b/commands/ops/firebase.go
@@ -0,0 +1,106 @@
+package ops
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "firebase",
+ Description: "ProjectAlias",
+ Subcommands: []core.Subcommand{
+ {Name: "appdistribution:distribute", Description: "Upload a distribution"},
+ {Name: "apps:android:sha:create", Description: "Add a SHA certificate hash for a given app id"},
+ {Name: "apps:android:sha:delete", Description: "Delete a SHA certificate hash for a given app id"},
+ {Name: "apps:create", Description: "Create a new Firebase app"},
+ {Name: "auth:export", Description: "Export accounts from your Firebase project into a data file"},
+ {Name: "auth:import", Description: "Import users into your Firebase project from a data file(.csv or .json)"},
+ {Name: "database:get", Description: "Fetch and print JSON data at the specified path"},
+ {Name: "database:instances:create", Description: "Create a realtime database instance"},
+ {Name: "database:instances:list", Description: "List realtime database instances, optionally filtered by a specified location"},
+ {Name: "database:profile", Description: "Profile the Realtime Database and generate a usage report"},
+ {Name: "database:push", Description: "Add a new JSON object to a list of data in your Firebase"},
+ {Name: "database:remove", Description: "Remove data from your Firebase at the specified path"},
+ {Name: "database:set", Description: "Store JSON data at the specified path via STDIN, arg, or file"},
+ {Name: "database:settings:get", Description: "Store JSON data at the specified path via STDIN, arg, or file"},
+ {Name: "database:settings:set", Description: "Set the realtime database setting at path"},
+ {Name: "database:update", Description: "Update some of the keys for the defined path in your Firebase"},
+ {Name: "deploy", Description: "Deploy code and assets to your Firebase project"},
+ {Name: "emulators:export", Description: "Export data from running emulators"},
+ {Name: "emulators:start", Description: "Start the local Firebase emulators"},
+ {Name: "experimental:functions:shell", Description: "Launch full Node shell with emulated functions"},
+ {Name: "ext:configure", Description: "Configure an existing extension instance"},
+ {Name: "ext:info", Description: "List all the extensions that are installed in your Firebase project"},
+ {Name: "ext:uninstall", Description: "Uninstall an extension that is installed in your Firebase project by instance ID"},
+ {Name: "ext:update", Description: "Update an existing extension instance to the latest version"},
+ {Name: "firestore:delete", Description: "Delete data from Cloud Firestore"},
+ {Name: "firestore:indexes", Description: "List indexes in your project's Cloud Firestore database"},
+ {Name: "functions:config:clone", Description: "Clone environment config from another project"},
+ {Name: "functions:config:get", Description: "Fetch environment config stored at the given path"},
+ {Name: "functions:config:set", Description: "Set environment config with key=value syntax"},
+ {Name: "functions:log", Description: "Read logs from deployed functions"},
+ {Name: "functions:shell", Description: "Launch full Node shell with emulated functions"},
+ {Name: "help", Description: "Display help information"},
+ {Name: "hosting:channel:create", Description: "Create a Firebase Hosting channel"},
+ {Name: "hosting:channel:delete", Description: "Delete a Firebase Hosting channel"},
+ {Name: "hosting:channel:deploy", Description: "Deploy to a specific Firebase Hosting channel"},
+ {Name: "hosting:channel:list", Description: "List all Firebase Hosting channels for your project"},
+ {Name: "hosting:channel:open", Description: "Opens the URL for a Firebase Hosting channel"},
+ {Name: "hosting:clone", Description: "Clone a version from one site to another"},
+ {Name: "hosting:disable", Description: "Stop serving web traffic to your Firebase Hosting site"},
+ {Name: "hosting:sites:create", Description: "Create a Firebase Hosting site"},
+ {Name: "hosting:sites:delete", Description: "Delete a Firebase Hosting site"},
+ {Name: "hosting:sites:get", Description: "Print info about a Firebase Hosting site"},
+ {Name: "hosting:sites:list", Description: "List Firebase Hosting sites"},
+ {Name: "init", Description: "Setup a Firebase project in the current directory"},
+ {Name: "login", Description: "Log the CLI into Firebase"},
+ {Name: "login:add", Description: "Authorize the CLI for an additional account"},
+ {Name: "login:ci", Description: "Generate an access token for use in non-interactive environments"},
+ {Name: "login:list", Description: "List authorized CLI accounts"},
+ {Name: "login:use", Description: "Set the default account to use for this project directory"},
+ {Name: "logout", Description: "Log the CLI out of Firebase"},
+ },
+ Options: []core.Option{
+ {Name: "--app", Description: "The app id of your Firebase app"},
+ {Name: "--release-notes", Description: "Release notes to include with this distribution"},
+ {Name: "--release-notes-file", Description: "Path to file with release notes to include with this distribution"},
+ {Name: "--testers", Description: "A comma separated list of tester emails to distribute to"},
+ {Name: "--testers-file", Description: "Path to file with a comma separated list of tester emails to distribute to"},
+ {Name: "--groups", Description: "A comma separated list of group aliases to distribute to"},
+ {Name: "--groups-file", Description: "Path to file with a comma separated list of group aliases to distribute to"},
+ {Name: "-h", Description: "Output usage information"},
+ {Name: "-a", Description: "Required package name for the Android app"},
+ {Name: "-b", Description: "Required bundle id for the iOS app"},
+ {Name: "-s", Description: "(optional) app store id for the iOS app"},
+ {Name: "--format", Description: "Format of exported data (csv, json). Ignored if [dataFile] has format extension"},
+ {Name: "--hash-algo", Description: "Specify the hash algorithm used in password for these accounts"},
+ {Name: "--hash-key", Description: "Specify the key used in hash algorithm"},
+ {Name: "--salt-separator", Description: "Specify how many rounds for hash calculation"},
+ {Name: "--mem-cost", Description: "Specify the parallelization for standard scrypt"},
+ {Name: "--block-size", Description: "Specify the block size (normally is 8) for standard scrypt"},
+ {Name: "--dk-len", Description: "Specify derived key length for standard scrypt"},
+ {Name: "--hash-input-order", Description: "Output usage information"},
+ {Name: "-l", Description: "(optional) location for the database instance, defaults to us-central1"},
+ {Name: "-o", Description: "Save the output to the specified file"},
+ {Name: "-d", Description: "Collect database usage information for the specified number of seconds"},
+ {Name: "--raw", Description: "Output the raw stats collected as newline delimited json"},
+ {Name: "--no-collapse", Description: "Prevent collapsing similar paths into $wildcard locations"},
+ {Name: "-i", Description: "Output usage information"},
+ {Name: "--instance", Description: "Output usage information"},
+ {Name: "-y", Description: "Pass this option to bypass confirmation prompt"},
+ {Name: "-p", Description: "Override the Hosting public directory specified in firebase.json"},
+ {Name: "-m", Description: "An optional message describing this deploy"},
+ {Name: "-f", Description: "Output usage information"},
+ {Name: "--only", Description: "Import emulator data from a previous export (see emulators:export)"},
+ {Name: "--export-on-exit", Description: "Run the Emulator UI"},
+ {Name: "--params", Description: "Path of params file with .env format"},
+ {Name: "--markdown", Description: "Output info in Markdown suitable for constructing a README file"},
+ {Name: "-r", Description: "No confirmation. Otherwise, a confirmation prompt will appear"},
+ {Name: "--pretty", Description: "Output usage information"},
+ {Name: "--from", Description: "The project from which to clone configuration"},
+ {Name: "--except", Description: "A comma-separated list of keys to not clone"},
+ {Name: "--open", Description: "Open logs page in web browser"},
+ {Name: "--inspect-functions", Description: "Output usage information"},
+ },
+ })
+}
diff --git a/commands/ops/flyctl.go b/commands/ops/flyctl.go
new file mode 100644
index 0000000..9f696d5
--- /dev/null
+++ b/commands/ops/flyctl.go
@@ -0,0 +1,106 @@
+package ops
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "flyctl",
+ Description: "Command line tool for Fly.io services",
+ Subcommands: []core.Subcommand{
+ {Name: "ping", Description: "Ping the Fly agent"},
+ {Name: "restart", Description: "Restart the Fly agent"},
+ {Name: "daemon-start", Description: "Run the Fly agent in the foreground"},
+ {Name: "start", Description: "Start the Fly agent"},
+ {Name: "stop", Description: "Stop the Fly agent"},
+ {Name: "apps", Description: "Manage apps"},
+ {Name: "create", Description: "Create a new application"},
+ {Name: "destroy", Description: "Permanently destroys an app"},
+ {Name: "list", Description: "List applications"},
+ {Name: "move", Description: "Move an app to another organization"},
+ {Name: "open", Description: "Open browser to current deployed application"},
+ {Name: "releases", Description: "List app releases"},
+ {Name: "auth", Description: "Manage authentication"},
+ {Name: "docker", Description: "Authenticate docker"},
+ {Name: "login", Description: "Log in a user"},
+ {Name: "logout", Description: "Logs out the currently logged in user"},
+ {Name: "signup", Description: "Create a new fly account"},
+ {Name: "token", Description: "Show the current auth token"},
+ {Name: "autoscale", Description: "Autoscaling app resources"},
+ {Name: "balanced", Description: "Configure a traffic balanced app with params (min=int max=int)"},
+ {Name: "disable", Description: "Disable autoscaling"},
+ {Name: "set", Description: "Set current models autoscaling parameters"},
+ {Name: "show", Description: "Show current autoscaling configuration"},
+ {Name: "standard", Description: "Configure a standard balanced app with params (min=int max=int)"},
+ {Name: "builds", Description: "Manage application builds"},
+ {Name: "certs", Description: "Manage certificates"},
+ {Name: "check", Description: "Checks DNS configuration"},
+ {Name: "delete", Description: "Removes a certificate from an app"},
+ {Name: "checks", Description: "Manage health checks"},
+ {Name: "handlers", Description: "Manage health check handlers"},
+ {Name: "completion", Description: "Generate the autocompletion script for the specified shell"},
+ {Name: "bash", Description: "Generate the autocompletion script for bash"},
+ {Name: "fish", Description: "Generate the autocompletion script for fish"},
+ {Name: "powershell", Description: "Generate the autocompletion script for powershell"},
+ {Name: "zsh", Description: "Generate the autocompletion script for zsh"},
+ {Name: "config", Description: "Manage an app's configuration"},
+ {Name: "display", Description: "Display an app's configuration"},
+ {Name: "env", Description: "Display an app's runtime environment variables"},
+ {Name: "save", Description: "Save an app's config file"},
+ {Name: "validate", Description: "Validate an app's config file"},
+ {Name: "curl", Description: "Run a performance test against a URL"},
+ {Name: "dash", Description: "Open web browser on Fly Web UI for this app"},
+ {Name: "metrics", Description: "Open web browser on Fly Web UI for this app's metrics"},
+ {Name: "deploy", Description: "Deploy Fly applications"},
+ {Name: "dig", Description: "Make DNS requests against Fly.io's internal DNS server"},
+ {Name: "dns-records", Description: "Manage DNS records"},
+ {Name: "export", Description: "Export DNS records"},
+ {Name: "import", Description: "Import DNS records"},
+ {Name: "docs", Description: "View Fly documentation"},
+ {Name: "doctor", Description: "The DOCTOR command allows you to debug your Fly environment"},
+ },
+ Options: []core.Option{
+ {Name: "--generate-name", Description: "Generate a name for the app"},
+ {Name: "--name", Description: "The app name to use"},
+ {Name: "--network", Description: "Specify custom network id"},
+ {Name: "--org", Description: "The organization to operate on"},
+ {Name: "--yes", Description: "Accept all confirmations"},
+ {Name: "--app", Description: "Application name"},
+ {Name: "--config", Description: "Path to application configuration file"},
+ {Name: "--image", Description: "Display the Docker image reference of the release"},
+ {Name: "-f", Description: "Restarts app without waiting for health checks. ( Machines only )"},
+ {Name: "--email", Description: "Login email"},
+ {Name: "--interactive", Description: "Log in with an email and password interactively"},
+ {Name: "--otp", Description: "One time password"},
+ {Name: "--password", Description: "Login password"},
+ {Name: "--organization", Description: "The organization to add the handler to"},
+ {Name: "--type", Description: "The type of handler to create, can be slack or pagerduty"},
+ {Name: "--check-name", Description: "Filter checks by name"},
+ {Name: "--no-descriptions", Description: "Disable completion descriptions"},
+ {Name: "--build-arg", Description: "Build but do not deploy"},
+ {Name: "--build-target", Description: "Set the target build stage to build if the Dockerfile has more than one stage"},
+ {Name: "--detach", Description: "Return immediately instead of monitoring deployment progress"},
+ {Name: "--dockerfile", Description: "Path to a Dockerfile. Defaults to the Dockerfile in the working directory"},
+ {Name: "--env", Description: "The image tag or ID to deploy"},
+ {Name: "--image-label", Description: "Only perform builds locally using the local docker daemon"},
+ {Name: "--nix", Description: "Build with Nix"},
+ {Name: "--no-cache", Description: "Do not use the build cache when building the image"},
+ {Name: "--now", Description: "Deploy now without confirmation"},
+ {Name: "--push", Description: "Push image to registry after build is complete"},
+ {Name: "--region", Description: "The region to operate on"},
+ {Name: "--remote-only", Description: "Permanently destroys an app"},
+ {Name: "--short", Description: "Just print the answers, not DNS record details"},
+ {Name: "--overwrite", Description: "Import DNS records"},
+ {Name: "--force", Description: "Send diagnostics even if we can't find your local Fly.io app"},
+ {Name: "--host", Description: "Returns just the hostname"},
+ {Name: "--copy-config", Description: "Use the configuration file if present without prompting"},
+ {Name: "--no-deploy", Description: "Do not prompt for deployment"},
+ {Name: "--path", Description: "Path to app code and where a fly.toml file will be saved"},
+ {Name: "--instance", Description: "Filter by instance ID"},
+ {Name: "--quiet", Description: "Only list machine ids"},
+ {Name: "--build-only", Description: "Perform builds remotely without using the local docker daemon"},
+ {Name: "--cpu-kind", Description: "Kind of CPU to use (shared, dedicated)"},
+ },
+ })
+}
diff --git a/commands/ops/fnm.go b/commands/ops/fnm.go
new file mode 100644
index 0000000..a08b4c7
--- /dev/null
+++ b/commands/ops/fnm.go
@@ -0,0 +1,40 @@
+package ops
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "fnm",
+ Description: "Fast and simple Node.js version manager",
+ Subcommands: []core.Subcommand{
+ {Name: "install", Description: "Install a new Node.js version"},
+ {Name: "uninstall", Description: "Uninstall a Node.js version"},
+ {Name: "use", Description: "Change Node.js version"},
+ {Name: "exec", Description: "Run a command within fnm context"},
+ {Name: "current", Description: "Print the current Node.js version"},
+ {Name: "list", Description: "List all locally installed Node.js versions"},
+ {Name: "list-remote", Description: "List all remote Node.js versions"},
+ {Name: "alias", Description: "Alias a version to a common name"},
+ {Name: "name", Description: "Alias name"},
+ {Name: "unalias", Description: "Deletes the alias named "},
+ {Name: "requested-alias", Description: "Alias name"},
+ {Name: "completions", Description: "Print shell completions to stdout"},
+ {Name: "env", Description: "Print and set up required environment variables for fnm"},
+ {Name: "help", Description: "Prints the help page or the help of the given subcommand(s)"},
+ },
+ Options: []core.Option{
+ {Name: "--lts", Description: "Install latest LTS"},
+ {Name: "--install-if-missing", Description: "Install the version if it isn't installed yet"},
+ {Name: "--help", Description: "Prints help information"},
+ {Name: "--version", Description: "Prints version information"},
+ {Name: "--arch", Description: "The root directory of fnm installations"},
+ {Name: "--log-level", Description: "The log level of fnm commands"},
+ {Name: "--node-dist-mirror", Description: "Mirror of https://nodejs.org/dist"},
+ {Name: "--version-file-strategy", Description: "Strategy for how to resolve the Node version"},
+ {Name: "--using", Description: "Either an explicit version, or a filename with the version written in it"},
+ {Name: "--use-on-cd", Description: "Print the script to change Node versions every directory change"},
+ },
+ })
+}
diff --git a/commands/ops/gcloud.go b/commands/ops/gcloud.go
new file mode 100644
index 0000000..d954bb0
--- /dev/null
+++ b/commands/ops/gcloud.go
@@ -0,0 +1,64 @@
+package ops
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "gcloud",
+ Description: "Manage Google Cloud Platform resources and developer workflow",
+ Subcommands: []core.Subcommand{
+ {Name: "access-context-manager", Description: "Manage Access Context Manager resources"},
+ {Name: "active-directory", Description: "Manage Managed Microsoft AD resources"},
+ {Name: "ai-platform", Description: "Manage AI Platform jobs and models"},
+ {Name: "alpha", Description: "*(ALPHA)* Alpha versions of gcloud commands"},
+ {Name: "anthos", Description: "Anthos command Group"},
+ {Name: "apigee", Description: "Manage Apigee resources"},
+ {Name: "app", Description: "Manage your App Engine deployments"},
+ {Name: "artifacts", Description: "Manage Artifact Registry resources"},
+ {Name: "asset", Description: "Manage the Cloud Asset Inventory"},
+ {Name: "auth", Description: "Manage oauth2 credentials for the Google Cloud SDK"},
+ {Name: "beta", Description: "*(BETA)* Beta versions of gcloud commands"},
+ {Name: "bigtable", Description: "Manage your Cloud Bigtable storage"},
+ {Name: "builds", Description: "Create and manage builds for Google Cloud Build"},
+ {Name: "cheat-sheet", Description: "Display gcloud cheat sheet"},
+ {Name: "cloud-shell", Description: "Manage Google Cloud Shell"},
+ {Name: "components", Description: "List, install, update, or remove Google Cloud SDK components"},
+ {Name: "composer", Description: "Create and manage Cloud Composer Environments"},
+ {Name: "compute", Description: "Create and manipulate Compute Engine resources"},
+ {Name: "config", Description: "View and edit Cloud SDK properties"},
+ {Name: "container", Description: "Deploy and manage clusters of machines for running containers"},
+ {Name: "data-catalog", Description: "Manage Cloud Data Catalog resources"},
+ {Name: "dataflow", Description: "Manage Google Cloud Dataflow resources"},
+ {Name: "dataproc", Description: "Create and manage Google Cloud Dataproc clusters and jobs"},
+ {Name: "datastore", Description: "Manage your Cloud Datastore resources"},
+ {Name: "debug", Description: "Commands for interacting with the Cloud Debugger"},
+ {Name: "deployment-manager", Description: "Manage deployments of cloud resources"},
+ {Name: "dns", Description: "Manage your Cloud DNS managed-zones and record-sets"},
+ {Name: "docker", Description: "*(DEPRECATED)* Enable Docker CLI access to Google Container Registry"},
+ {Name: "domains", Description: "Manage domains for your Google Cloud projects"},
+ {Name: "endpoints", Description: "Create, enable and manage API services"},
+ {Name: "feedback", Description: "Provide feedback to the Google Cloud SDK team"},
+ {Name: "filestore", Description: "Create and manipulate Cloud Filestore resources"},
+ {Name: "firebase", Description: "Work with Google Firebase"},
+ {Name: "firestore", Description: "Manage your Cloud Firestore resources"},
+ {Name: "functions", Description: "Manage Google Cloud Functions"},
+ {Name: "game", Description: "Managed Cloud Game Services"},
+ {Name: "healthcare", Description: "Manage Cloud Healthcare resources"},
+ {Name: "help", Description: "Search gcloud help text"},
+ {Name: "iam", Description: "Manage IAM service accounts and keys"},
+ {Name: "iap", Description: "Manage IAP policies"},
+ {Name: "identity", Description: "Manage Cloud Identity Groups and Memberships resources"},
+ {Name: "info", Description: "Display information about the current gcloud environment"},
+ {Name: "init", Description: "Initialize or reinitialize gcloud"},
+ {Name: "iot", Description: "Manage Cloud IoT resources"},
+ {Name: "kms", Description: "Manage cryptographic keys in the cloud"},
+ {Name: "logging", Description: "Manage Cloud Logging"},
+ {Name: "meta", Description: "Cloud meta introspection commands"},
+ {Name: "ml", Description: "Use Google Cloud machine learning capabilities"},
+ {Name: "ml-engine", Description: "Manage AI Platform jobs and models"},
+ {Name: "monitoring", Description: "Manage Cloud Monitoring dashboards"},
+ },
+ })
+}
diff --git a/commands/ops/gh.go b/commands/ops/gh.go
new file mode 100644
index 0000000..73b0757
--- /dev/null
+++ b/commands/ops/gh.go
@@ -0,0 +1,106 @@
+package ops
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "gh",
+ Description: "Current branch",
+ Subcommands: []core.Subcommand{
+ {Name: "alias", Description: "Create command shortcuts"},
+ {Name: "delete", Description: "Delete an alias"},
+ {Name: "list", Description: "List available aliases"},
+ {Name: "set", Description: "Set an alias for a gh command"},
+ {Name: "expansion", Description: "The gh command to be invoked, more info with --help"},
+ {Name: "api", Description: "Make an authenticated GitHub API request"},
+ {Name: "auth", Description: "Login, logout, and refresh your authentication"},
+ {Name: "login", Description: "Authenticate with a GitHub host"},
+ {Name: "logout", Description: "Log out of a GitHub host"},
+ {Name: "refresh", Description: "Refresh stored authentication credentials"},
+ {Name: "setup-git", Description: "Configure git to use GitHub CLI as a credential helper"},
+ {Name: "status", Description: "View authentication status"},
+ {Name: "gpg-key", Description: "Manage GPG keys registered with your GitHub account"},
+ {Name: "add", Description: "Add a GPG key to your GitHub account"},
+ {Name: "browse", Description: "Open the repository in the browser"},
+ {Name: "completion", Description: "Generate shell completion scripts"},
+ {Name: "config", Description: "Manage configuration for gh"},
+ {Name: "get", Description: "Print the value of a given configuration key"},
+ {Name: "git_protocol", Description: "The protocol to use for git clone and push operations"},
+ {Name: "editor", Description: "The text editor program to use for authoring text"},
+ {Name: "prompt", Description: "Toggle interactive prompting in the terminal"},
+ {Name: "http_unix_socket", Description: "The path to a unix socket through which to make HTTP connection"},
+ {Name: "extensions", Description: "Manage gh extensions"},
+ {Name: "create", Description: "Create a new extension"},
+ {Name: "install", Description: "Install a gh extension from a repository"},
+ {Name: "remove", Description: "Remove an installed extension"},
+ {Name: "upgrade", Description: "Upgrade installed extensions"},
+ {Name: "gist", Description: "Manage gists"},
+ {Name: "clone", Description: "Clone a gist locally"},
+ {Name: "edit", Description: "Edit one of your gists"},
+ {Name: "view", Description: "View a gist"},
+ {Name: "issue", Description: "Manage issues"},
+ {Name: "close", Description: "Close issue"},
+ {Name: "comment", Description: "Create a new issue comment"},
+ {Name: "number", Description: "Number or Title"},
+ {Name: "reopen", Description: "Reopen issue"},
+ {Name: "transfer", Description: "Transfer issue to another repository"},
+ {Name: "pr", Description: "Manage pull requests"},
+ {Name: "checkout", Description: "Check out a pull request in git"},
+ {Name: "checks", Description: "Show CI status for a single pull request"},
+ {Name: "diff", Description: "View changes in a pull request"},
+ {Name: "merge", Description: "Merge a pull request"},
+ {Name: "ready", Description: "Mark a pull request as ready for review"},
+ {Name: "review", Description: "Add a review to a pull request"},
+ {Name: "release", Description: "Manage GitHub releases"},
+ {Name: "repo", Description: "Work with GitHub repositories"},
+ {Name: "archive", Description: "Archive a GitHub repository. With no argument, archives the current repository"},
+ {Name: "deploy-key", Description: "Manage deploy keys in a repository"},
+ {Name: "key-file", Description: "Path to the public key file"},
+ {Name: "key-id", Description: "ID of the key to delete"},
+ },
+ Options: []core.Option{
+ {Name: "-c", Description: "Name of the codespace"},
+ {Name: "--clone", Description: "Clone the fork {true|false}"},
+ {Name: "-y", Description: "Skip the confirmation prompt"},
+ {Name: "--repo", Description: "Select another repository"},
+ {Name: "-e", Description: "List secrets for an environment"},
+ {Name: "-o", Description: "List secrets for an environment"},
+ {Name: "-s", Description: "Declare an alias to be passed through a shell interpreter"},
+ {Name: "-h", Description: "The hostname of the GitHub instance to authenticate with"},
+ {Name: "-w", Description: "Open a browser to authenticate"},
+ {Name: "--with-token", Description: "Read token from standard input"},
+ {Name: "-b", Description: "Select another branch by passing in the branch name"},
+ {Name: "-n", Description: "Print destination URL instead of opening the browser"},
+ {Name: "-p", Description: "Open repository projects"},
+ {Name: "-R", Description: "Select another repository using the [HOST/]OWNER/REPO format"},
+ {Name: "--all", Description: "Upgrade all extensions"},
+ {Name: "--force", Description: "Force upgrade extensions"},
+ {Name: "-d", Description: "A description for this gist"},
+ {Name: "-f", Description: "Provide a filename to be used when reading from STDIN"},
+ {Name: "-a", Description: "Add a new file to the gist"},
+ {Name: "-L", Description: "Maximum number of gists to fetch (default 10)"},
+ {Name: "--public", Description: "Show only public gists"},
+ {Name: "--secret", Description: "Show only secret gists"},
+ {Name: "--files", Description: "List file names from the gist"},
+ {Name: "-r", Description: "Print raw instead of rendered gist contents"},
+ {Name: "-F", Description: "Read body text from file"},
+ {Name: "-l", Description: "Add labels by name"},
+ {Name: "-m", Description: "Add the issue to a milestone by name"},
+ {Name: "--recover", Description: "Recover input from a failed run of create"},
+ {Name: "-t", Description: "Supply a title. Will prompt for one otherwise"},
+ {Name: "--add-assignee", Description: "Add labels by name"},
+ {Name: "--remove-assignee", Description: "Remove labels by name"},
+ {Name: "--remove-project", Description: "Remove the issue from projects by name"},
+ {Name: "-A", Description: "Filter by author"},
+ {Name: "-q", Description: "Filter JSON output using a jq expression"},
+ {Name: "--json", Description: "Output JSON with the specified fields"},
+ {Name: "--mention", Description: "Filter by mention"},
+ {Name: "-S", Description: "Search issues with query"},
+ {Name: "--recurse-submodules", Description: "Update all active submodules (recursively)"},
+ {Name: "--add-project", Description: "Add the pull request to projects by name"},
+ {Name: "--add-reviewer", Description: "Add reviewers by their login"},
+ },
+ })
+}
diff --git a/commands/ops/gpg.go b/commands/ops/gpg.go
new file mode 100644
index 0000000..b1cda6c
--- /dev/null
+++ b/commands/ops/gpg.go
@@ -0,0 +1,54 @@
+package ops
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "gpg",
+ Description: "Encryption and signing tool",
+ Options: []core.Option{
+ {Name: "--homedir", Description: "Set the name of the home directory"},
+ {Name: "--options", Description: "Read options from file"},
+ {Name: "-a", Description: "Create ASCII armored output"},
+ {Name: "-o", Description: "Write output to file"},
+ {Name: "-u", Description: "Use name as the user ID to sign"},
+ {Name: "--default-key", Description: "Use name as default user ID for signatures"},
+ {Name: "-r", Description: "Encrypt for user id name"},
+ {Name: "--default-recipient", Description: "Use name as default recipient"},
+ {Name: "--default-recipient-self", Description: "Use the default key as default recipient"},
+ {Name: "--no-default-recipient", Description: "Reset --default-recipient and --default-recipient-self"},
+ {Name: "--encrypt-to", Description: "Same as --recipient but this one is intended for in the options file"},
+ {Name: "--no-encrypt-to", Description: "Disable the use of all --encrypt-to keys"},
+ {Name: "-v", Description: "Give more information during processing"},
+ {Name: "-q", Description: "Try to be as quiet as possible"},
+ {Name: "-Z", Description: "Set compression level to n"},
+ {Name: "-t", Description: "Use canonical text mode"},
+ {Name: "-n", Description: "Don't make any changes"},
+ {Name: "-i", Description: "Prompt before overwriting any files"},
+ {Name: "--batch", Description: "Use batch mode"},
+ {Name: "--no-tty", Description: "Make sure that the TTY is never used for any output"},
+ {Name: "--no-batch", Description: "Disable batch mode"},
+ {Name: "--yes", Description: "Skip key validation"},
+ {Name: "--keyserver", Description: "Use name to lookup keys which are not yet in your keyring"},
+ {Name: "--no-auto-key-retrieve", Description: "Disables the automatic retrieving of keys"},
+ {Name: "--honor-http-proxy", Description: "Try to access the keyserver over the proxy"},
+ {Name: "--keyring", Description: "Add file to the list of keyrings"},
+ {Name: "--secret-keyring", Description: "Same as --keyring but for the secret keyrings"},
+ {Name: "--charset", Description: "Set the name of the native character set"},
+ {Name: "--utf8-strings", Description: "Assume that the arguments are already given as UTF8"},
+ {Name: "--no-utf8-strings", Description: "Load an extension module"},
+ {Name: "--debug", Description: "Set debugging flags"},
+ {Name: "--debug-all", Description: "Set all useful debugging flags"},
+ {Name: "--status-fd", Description: "Write special status strings to the file descriptor n"},
+ {Name: "--logger-fd", Description: "Write log output to file descriptor n and not to stderr"},
+ {Name: "--no-comment", Description: "Do not write comment packets"},
+ {Name: "--comment", Description: "Use string as comment string in clear text signatures"},
+ {Name: "--default-comment", Description: "Force to write the standard comment string"},
+ {Name: "--no-version", Description: "Omit the version string in clear text signatures"},
+ {Name: "--emit-version", Description: "Force to write the version string"},
+ {Name: "-N", Description: "Put the name value pair into the signature as notation data"},
+ },
+ })
+}
diff --git a/commands/ops/hasura.go b/commands/ops/hasura.go
new file mode 100644
index 0000000..40c9e8c
--- /dev/null
+++ b/commands/ops/hasura.go
@@ -0,0 +1,87 @@
+package ops
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "hasura",
+ Description: ".env filename to load ENV vars from",
+ Subcommands: []core.Subcommand{
+ {Name: "actions", Description: "Manage Hasura actions"},
+ {Name: "codegen", Description: "Generate code for actions"},
+ {Name: "create", Description: "Create a Hasura action"},
+ {Name: "use-codegen", Description: "Use the codegen to generate code for Hasura actions"},
+ {Name: "completions", Description: "Generate auto completion code"},
+ {Name: "console", Description: "Open the console to manage the database and try out APIs"},
+ {Name: "init", Description: "Initialize a directory for Hasura GraphQL engine migrations"},
+ {Name: "apply", Description: "Apply Hasura metadata on a database"},
+ {Name: "clear", Description: "Clear Hasura GraphQL engine metadata on the database"},
+ {Name: "diff", Description: "Show a highlighted diff of Hasura metadata"},
+ {Name: "export", Description: "Export Hasura GraphQL engine metadata from the database"},
+ {Name: "ic", Description: "Manage inconsistent objects in Hasura metadata"},
+ {Name: "drop", Description: "Drop inconsistent objects from the metadata"},
+ {Name: "ls", Description: "List all inconsistent objects from the metadata"},
+ {Name: "status", Description: "Check if the metadata is inconsistent or not"},
+ {Name: "reload", Description: "Reload Hasura GraphQL engine metadata on the database"},
+ {Name: "migrate", Description: "Manage migrations on the database"},
+ {Name: "goto", Description: "Apply migration chain up to to the version specified"},
+ {Name: "delete", Description: "Clear migrations from local project and server"},
+ {Name: "squash", Description: "Squash multiple migrations into a single one"},
+ {Name: "plugin", Description: "Manage plugins for the CLI"},
+ {Name: "install", Description: "Install a plugin from the index"},
+ {Name: "list", Description: "List all available plugins from index, versions and installation status"},
+ {Name: "uninstall", Description: "Uninstall a plugin"},
+ {Name: "upgrade", Description: "Upgrade a plugin to a newer version"},
+ {Name: "scripts", Description: "Execute helper scripts to manage Hasura projects"},
+ {Name: "update-project-v2", Description: "Update the Hasura project from config v1 to v2"},
+ {Name: "update-project-v3", Description: "Update the Hasura project from config v2 to v3"},
+ {Name: "sd", Description: "Manage seed data"},
+ {Name: "update-cli", Description: "Update the CLI to latest or a specific version"},
+ {Name: "version", Description: "Print the CLI version"},
+ },
+ Options: []core.Option{
+ {Name: "--envfile", Description: ".env filename to load ENV vars from"},
+ {Name: "-h", Description: "Help for hasura"},
+ {Name: "--log-level", Description: "Log level"},
+ {Name: "--no-color", Description: "Do not colorize output"},
+ {Name: "--project", Description: "Directory where commands are executed"},
+ {Name: "--skip-update-check", Description: "Skip automatic update check on command execution"},
+ {Name: "--admin-secret", Description: "Admin secret for Hasura GraphQL engine"},
+ {Name: "--certificate-authority", Description: "Path to a cert file for the certificate authority"},
+ {Name: "--endpoint", Description: "Http(s) endpoint for Hasura GraphQL engine (env `HASURA_GRAPHQL_ENDPOINT`)"},
+ {Name: "--insecure-skip-tls-verify", Description: "Skip TLS verification and disable cert checking"},
+ {Name: "--derive-from", Description: "Derive action from a hasura operation"},
+ {Name: "--kind", Description: "Kind to use in action"},
+ {Name: "--webhook", Description: "Webhook to use in action"},
+ {Name: "--with-codegen", Description: "Create action along with codegen"},
+ {Name: "--framework", Description: "Framework to be used by codegen"},
+ {Name: "--output-dir", Description: "Directory to create the codegen files"},
+ {Name: "--with-starter-kit", Description: "Clone starter kit for a framework"},
+ {Name: "--file", Description: "File to which output has to be written"},
+ {Name: "--address", Description: "Address to serve console and migration API from"},
+ {Name: "--api-port", Description: "Port for serving migrate api"},
+ {Name: "--browser", Description: "Open console in a specific browser"},
+ {Name: "--console-port", Description: "Port for serving console"},
+ {Name: "--no-browser", Description: "Do not automatically open console in browser"},
+ {Name: "--static-dir", Description: "When rendering console, use assets provided by HGE server"},
+ {Name: "--install-manifest", Description: "Install manifest to be cloned"},
+ {Name: "--version", Description: "Config version to be used"},
+ {Name: "--dry-run", Description: "Show metadata generated from project directory without applying to server"},
+ {Name: "-o", Description: "Specify an output format to show applied metadata"},
+ {Name: "--up", Description: "Apply all or N up migration steps"},
+ {Name: "--down", Description: "Apply all or N up migration steps"},
+ {Name: "--skip-execution", Description: "Skip executing the migration action, but mark them as applied"},
+ {Name: "--type", Description: "Type of migration to be used with version flag"},
+ {Name: "--all-databases", Description: "Set this flag to attempt to apply migrations on all databases present on server"},
+ {Name: "--down-sql", Description: "Sql string/query that is to be used to create a down migration"},
+ {Name: "--from-server", Description: "Take pg_dump of schema and Hasura metadata from the server"},
+ {Name: "--metadata-from-file", Description: "Path to a hasura metadata file to be used for up actions"},
+ {Name: "--metadata-from-server", Description: "Take metadata from the server and write it as an up migration file"},
+ {Name: "--schema", Description: "Name of Postgres schema to export as a migration"},
+ {Name: "--sql-from-file", Description: "Path to an SQL file which contains the SQL statements"},
+ {Name: "--sql-from-server", Description: "Take pg_dump from the server and save it as a migration"},
+ },
+ })
+}
diff --git a/commands/ops/helm.go b/commands/ops/helm.go
new file mode 100644
index 0000000..e6225a2
--- /dev/null
+++ b/commands/ops/helm.go
@@ -0,0 +1,104 @@
+package ops
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "helm",
+ Description: "The Helm package manager for Kubernetes",
+ Subcommands: []core.Subcommand{
+ {Name: "completion", Description: "Generate autocompletion scripts for the specified shell"},
+ {Name: "bash", Description: "Generate autocompletion script for bash"},
+ {Name: "fish", Description: "Generate autocompletion script for fish"},
+ {Name: "powershell", Description: "Generate autocompletion script for powershell"},
+ {Name: "zsh", Description: "Generate autocompletion script for zsh"},
+ {Name: "create", Description: "Create a new chart with the given name"},
+ {Name: "dep", Description: "Manage a chart's dependencies"},
+ {Name: "build", Description: "Rebuild the charts/ directory based on the Chart.lock file"},
+ {Name: "ls", Description: "List the dependencies for the given chart"},
+ {Name: "up", Description: "Update charts/ based on the contents of Chart.yaml"},
+ {Name: "env", Description: "Helm client environment information"},
+ {Name: "get", Description: "Download extended information of a named release"},
+ {Name: "all", Description: "Download all information for a named release"},
+ {Name: "hooks", Description: "Download all hooks for a named release"},
+ {Name: "manifest", Description: "Download the manifest for a named release"},
+ {Name: "notes", Description: "Download the notes for a named release"},
+ {Name: "values", Description: "Download the values file for a named release"},
+ {Name: "hist", Description: "Fetch release history"},
+ {Name: "install", Description: "Install a chart"},
+ {Name: "lint", Description: "Examine a chart for possible issues"},
+ {Name: "package", Description: "Package a chart directory into a chart archive"},
+ {Name: "plugin", Description: "Install, list, or uninstall Helm plugins"},
+ {Name: "add", Description: "Install one or more Helm plugins"},
+ {Name: "rm", Description: "Uninstall one or more Helm plugins"},
+ {Name: "fetch", Description: "Download a chart from a repository and (optionally) unpack it in local directory"},
+ {Name: "push", Description: "Push a chart to remote"},
+ {Name: "registry", Description: "Login to or logout from a registry"},
+ {Name: "login", Description: "Login to a registry"},
+ {Name: "logout", Description: "Logout from a registry"},
+ {Name: "repo", Description: "Add, list, remove, update, and index chart repositories"},
+ {Name: "index", Description: "Generate an index file given a directory containing packaged charts"},
+ {Name: "rollback", Description: "Roll back a release to a previous revision"},
+ {Name: "s3", Description: "Manage chart repositories on Amazon S3"},
+ {Name: "search", Description: "Search for a keyword in charts"},
+ {Name: "hub", Description: "Search for charts in the Artifact Hub or your own hub instance"},
+ {Name: "inspect", Description: "Show information of a chart"},
+ {Name: "chart", Description: "Show the chart's definition"},
+ {Name: "crds", Description: "Show the chart's CRDs"},
+ {Name: "readme", Description: "Show the chart's README"},
+ {Name: "status", Description: "Display the status of the named release"},
+ {Name: "template", Description: "Locally render templates"},
+ {Name: "test", Description: "Run tests for a release"},
+ {Name: "del", Description: "Uninstall a release"},
+ {Name: "unittest", Description: "Unittest for helm charts"},
+ {Name: "upgrade", Description: "Upgrade a release"},
+ {Name: "verify", Description: "Verify that a chart at the given path has been signed and is valid"},
+ {Name: "version", Description: "Print the client version information"},
+ {Name: "help", Description: "Help about any command"},
+ },
+ Options: []core.Option{
+ {Name: "--no-descriptions", Description: "Disable completion descriptions"},
+ {Name: "--starter", Description: "The name or absolute path to Helm starter scaffold"},
+ {Name: "--keyring", Description: "Keyring containing public keys"},
+ {Name: "--skip-refresh", Description: "Do not refresh the local repository cache"},
+ {Name: "--verify", Description: "Verify the packages against signatures"},
+ {Name: "--max-col-width", Description: "Maximum column width for output table"},
+ {Name: "--revision", Description: "Get the named release with revision"},
+ {Name: "--template", Description: "Go template for formatting the output, eg: {{.Release.Name}}"},
+ {Name: "--all", Description: "Dump all (computed) values"},
+ {Name: "--output", Description: "Prints the output in the specified format. Allowed values: table, json, yaml"},
+ {Name: "--max", Description: "Maximum number of revision to include in history"},
+ {Name: "--atomic", Description: "Verify certificates of HTTPS-enabled servers using this CA bundle"},
+ {Name: "--cert-file", Description: "Identify HTTPS client using this SSL certificate file"},
+ {Name: "--create-namespace", Description: "Create the release namespace if not present"},
+ {Name: "--dependency-update", Description: "Update dependencies if they are missing before installing the chart"},
+ {Name: "--description", Description: "Add a custom description"},
+ {Name: "--devel", Description: "Simulate an install"},
+ {Name: "--generate-name", Description: "Generate the name (and omit the NAME parameter)"},
+ {Name: "--insecure-skip-tls-verify", Description: "Skip tls certificate checks for the chart download"},
+ {Name: "--key-file", Description: "Identify HTTPS client using this SSL key file"},
+ {Name: "--name-template", Description: "Specify template used to name the release"},
+ {Name: "--no-hooks", Description: "Prevent hooks from running during install"},
+ {Name: "--pass-credentials", Description: "Pass credentials to all domains"},
+ {Name: "--password", Description: "Chart repository password where to locate the requested chart"},
+ {Name: "--post-renderer", Description: "An argument to the post-renderer (can specify multiple)"},
+ {Name: "--render-subchart-notes", Description: "If set, render subchart notes along with the parent"},
+ {Name: "--replace", Description: "Chart repository url where to locate the requested chart"},
+ {Name: "--set", Description: "Time to wait for any individual Kubernetes operation (like Jobs for hooks)"},
+ {Name: "--username", Description: "Chart repository username where to locate the requested chart"},
+ {Name: "--values", Description: "Specify values in a YAML file or a URL (can specify multiple)"},
+ {Name: "--version", Description: "Examine a chart for possible issues"},
+ {Name: "--quiet", Description: "Print only warnings and errors"},
+ {Name: "--with-subcharts", Description: "Lint dependent charts"},
+ {Name: "--all-namespaces", Description: "List releases across all namespaces"},
+ {Name: "--date", Description: "Sort by release date"},
+ {Name: "--deployed", Description: "Show failed releases"},
+ {Name: "--filter", Description: "Maximum number of releases to fetch"},
+ {Name: "--no-headers", Description: "Don't print headers when using the default output format"},
+ {Name: "--offset", Description: "Next release index in the list, used to offset from start value"},
+ {Name: "--pending", Description: "Show pending releases"},
+ },
+ })
+}
diff --git a/commands/ops/helmfile.go b/commands/ops/helmfile.go
new file mode 100644
index 0000000..f992730
--- /dev/null
+++ b/commands/ops/helmfile.go
@@ -0,0 +1,42 @@
+package ops
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "helmfile",
+ Description: "Deploy helm charts",
+ Subcommands: []core.Subcommand{
+ {Name: "apply", Description: "Apply all resources from state file only when there are changes"},
+ {Name: "build", Description: "Build all resources from state file"},
+ {Name: "cache", Description: "Cache management"},
+ {Name: "completion", Description: "Generate the autocompletion script for the specified shell"},
+ {Name: "destroy", Description: "Destroys and then purges releases"},
+ {Name: "help", Description: "Help about any command"},
+ {Name: "lint", Description: "Lint charts from state file (helm lint)"},
+ {Name: "list", Description: "List releases defined in state file"},
+ {Name: "repos", Description: "Repos releases defined in state file"},
+ {Name: "secrets", Description: "Causes the helm-secrets plugin to be executed to decrypt the file"},
+ {Name: "status", Description: "Retrieve status of releases in state file"},
+ {Name: "sync", Description: "Sync releases defined in state file"},
+ {Name: "template", Description: "Template releases defined in state file"},
+ {Name: "test", Description: "Test charts from state file (helm test)"},
+ {Name: "version", Description: "Print the CLI version"},
+ },
+ Options: []core.Option{
+ {Name: "--help", Description: "Do not exit with an error code if the provided selector has no matching releases"},
+ {Name: "--allow-no-matching-release", Description: "Show help for helmfile"},
+ {Name: "--chart", Description: "Output with color"},
+ {Name: "--debug", Description: "Specify the environment name. defaults to default"},
+ {Name: "--file", Description: "Request confirmation before attempting to modify clusters"},
+ {Name: "--kube-context", Description: "Set kubectl context. Uses current context by default"},
+ {Name: "--log-level", Description: "Set log level, default info (default info)"},
+ {Name: "--namespace", Description: "Output without color"},
+ {Name: "--quiet", Description: "Silence output. Equivalent to log-level warn"},
+ {Name: "--selector", Description: "Specify state values in a YAML file"},
+ {Name: "--state-values-set", Description: "Version for helmfile"},
+ },
+ })
+}
diff --git a/commands/ops/hugo.go b/commands/ops/hugo.go
new file mode 100644
index 0000000..794edef
--- /dev/null
+++ b/commands/ops/hugo.go
@@ -0,0 +1,94 @@
+package ops
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "hugo",
+ Description: "The world's fastest framework for building websites",
+ Subcommands: []core.Subcommand{
+ {Name: "check", Description: "Contains some verification checks"},
+ {Name: "ulimit", Description: "Check system ulimit settings"},
+ {Name: "config", Description: "Print the site configuration"},
+ {Name: "mounts", Description: "Print the configured file mounts"},
+ {Name: "convert", Description: "Convert your content to different formats"},
+ {Name: "toJSON", Description: "Convert front matter to JSON"},
+ {Name: "toTOML", Description: "Convert front matter to TOML"},
+ {Name: "toYAML", Description: "Convert front matter to YAML"},
+ {Name: "deploy", Description: "Deploy your site to a Cloud provider"},
+ {Name: "env", Description: "Print Hugo version and environment info"},
+ {Name: "gen", Description: "A collection of several useful generators"},
+ {Name: "autocomplete", Description: "Generate shell autocompletion script for Hugo (default outputs to stdout)"},
+ {Name: "bash", Description: "Default"},
+ {Name: "friendly", Description: "Default"},
+ {Name: "doc", Description: "Generate Markdown documentation for the Hugo CLI (default '/tmp/hugodoc/')"},
+ {Name: "man", Description: "Generate man pages for the Hugo CLI (default 'man/')"},
+ {Name: "help", Description: "Help about any command"},
+ {Name: "import", Description: "Import your site from others"},
+ {Name: "list", Description: "Listing out various types of content"},
+ {Name: "drafts", Description: "List all drafts"},
+ {Name: "future", Description: "List all posts dated in the future"},
+ {Name: "expired", Description: "List all posts already expired"},
+ {Name: "all", Description: "List all posts"},
+ {Name: "mod", Description: "Various Hugo Modules helpers"},
+ {Name: "clean", Description: "Delete the Hugo Module cache for the current project"},
+ {Name: "get", Description: "Resolves dependencies in your current Hugo Project"},
+ {Name: "init", Description: "Initialize this project as a Hugo Module"},
+ {Name: "npm", Description: "Various npm helpers"},
+ {Name: "pack", Description: "Experimental: Prepares and writes a composite package.json file for your project"},
+ {Name: "tidy", Description: "Remove unused entries in go.mod and go.sum"},
+ {Name: "vendor", Description: "Vendor all module dependencies into the _vendor directory"},
+ {Name: "verify", Description: "Verify dependencies"},
+ {Name: "new", Description: "Create new content for your site"},
+ {Name: "site", Description: "Create a new site (skeleton)"},
+ {Name: "toml", Description: "Default"},
+ {Name: "theme", Description: "Create a new theme"},
+ {Name: "server", Description: "A high performance webserver"},
+ {Name: "version", Description: "Print the version number of Hugo"},
+ },
+ Options: []core.Option{
+ {Name: "-h", Description: "Config file (default is path/config.yaml|json|toml)"},
+ {Name: "--configDir", Description: "Config dir (default 'config')"},
+ {Name: "--debug", Description: "Debug output (default false)"},
+ {Name: "-e", Description: "Build environment"},
+ {Name: "--ignoreVendor", Description: "Ignores any _vendor directory (default false)"},
+ {Name: "--ignoreVendorPaths", Description: "Ignores any _vendor for module paths matching the given Glob pattern"},
+ {Name: "--log", Description: "Enable Logging (default false)"},
+ {Name: "--logFile", Description: "Log File path (if set, logging enabled automatically)"},
+ {Name: "--quiet", Description: "Build in quiet mode (default false)"},
+ {Name: "-s", Description: "Filesystem path to read files relative from"},
+ {Name: "--themesDir", Description: "Filesystem path to themes directory"},
+ {Name: "-v", Description: "Verbose output (default false)"},
+ {Name: "--verboseLog", Description: "Verbose logging (default false)"},
+ {Name: "-b", Description: "Hostname (and path) to the root, e.g. http://spf13.com/"},
+ {Name: "-D", Description: "Include content marked as draft (default false)"},
+ {Name: "-E", Description: "Include expired content (default false)"},
+ {Name: "-F", Description: "Include content with publishdate in the future (default false)"},
+ {Name: "--cacheDir", Description: "Filesystem path to cache directory. Defaults: $TMPDIR/hugo_cache/"},
+ {Name: "--cleanDestinationDir", Description: "Remove files from destination not found in static directories (default false)"},
+ {Name: "-c", Description: "Filesystem path to content directory"},
+ {Name: "-d", Description: "Filesystem path to write files to"},
+ {Name: "--disableKinds", Description: "Disable different kind of pages (home, RSS etc.)"},
+ {Name: "--enableGitInfo", Description: "Add Git revision, date and author info to the pages (default false)"},
+ {Name: "--forceSyncStatic", Description: "Copy all files when static is changed (default false)"},
+ {Name: "--gc", Description: "Print missing translations (default false)"},
+ {Name: "--ignoreCache", Description: "Ignores the cache directory (default false)"},
+ {Name: "-l", Description: "Filesystem path to layout directory"},
+ {Name: "--minify", Description: "Minify any supported output format (HTML, XML etc.) (default false)"},
+ {Name: "--noChmod", Description: "Don't sync permission mode of files (default false)"},
+ {Name: "--noTimes", Description: "Don't sync modification time of files (default false)"},
+ {Name: "--path-warnings", Description: "Print warnings on duplicate target paths etc (default false)"},
+ {Name: "--poll", Description: "Print memory usage to screen at intervals (default false)"},
+ {Name: "--templateMetrics", Description: "Display metrics about template executions (default false)"},
+ {Name: "--templateMetricsHints", Description: "Themes to use (located in /themes/THEMENAME/)"},
+ {Name: "--trace", Description: "Write trace to file (not useful in general)"},
+ {Name: "-w", Description: "Watch filesystem for changes and recreate as needed (default true)"},
+ {Name: "-o", Description: "Filesystem path to write files to"},
+ {Name: "--unsafe", Description: "Enable less safe operations, please backup first"},
+ {Name: "--confirm", Description: "Ask for confirmation before making changes to the target"},
+ {Name: "--dryRun", Description: "Dry run"},
+ },
+ })
+}
diff --git a/commands/ops/k3d.go b/commands/ops/k3d.go
new file mode 100644
index 0000000..d73ec9b
--- /dev/null
+++ b/commands/ops/k3d.go
@@ -0,0 +1,99 @@
+package ops
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "k3d",
+ Description: "Little helper to run k3s in Docker",
+ Subcommands: []core.Subcommand{
+ {Name: "cluster", Description: "Manage k3s clusters"},
+ {Name: "create", Description: "Create a new k3s cluster"},
+ {Name: "cluster name", Description: "Name of the cluster to create"},
+ {Name: "number of agents", Description: "Number of agents to create"},
+ {Name: "memory limit", Description: "Memory limit imposed on the agents nodes"},
+ {Name: "port", Description: "Specify the Kubernetes API server port exposed on the LoadBalancer"},
+ {Name: "path", Description: "Path of a config file to use"},
+ {Name: "environment variables", Description: "Add environment variables to nodes"},
+ {Name: "devices", Description: "GPU devices to add to the cluster node containers"},
+ {Name: "ip:host[,host,...]", Description: "Add ip:host[,host,...] mappings"},
+ {Name: "image", Description: "Specify k3s image that you want to use for the nodes"},
+ {Name: "ARG@NODEFILTER[;@NODEFILTER]", Description: "Additional args passed to k3s command"},
+ {Name: "network", Description: "Specify the docker network to use"},
+ {Name: "int", Description: "Specify how many servers you want to create"},
+ {Name: "string", Description: "Memory limit imposed on the server nodes [From docker]"},
+ {Name: "duration", Description: "Rollback changes if cluster couldn't be created in specified duration"},
+ {Name: "delete", Description: "Delete a cluster"},
+ {Name: "edit", Description: "Edit a cluster"},
+ {Name: "list", Description: "List clusters"},
+ {Name: "start", Description: "Start a cluster"},
+ {Name: "a", Description: "Start all clusters"},
+ {Name: "stop", Description: "Stop a cluster"},
+ {Name: "completion", Description: "Generate shell completion scripts"},
+ {Name: "shell", Description: "Shell to generate completion script for"},
+ {Name: "config", Description: "Manage k3d config"},
+ {Name: "init", Description: "Create a new config file"},
+ {Name: "migrate", Description: "Migrate a config file to the latest version"},
+ {Name: "import", Description: "Import image(s) from docker into k3d cluster(s)"},
+ {Name: "mode", Description: "Import mode"},
+ {Name: "kubeconfig", Description: "Manage k3d kubeconfig"},
+ {Name: "merge", Description: "Write/Merge kubeconfig(s) from cluster(s) into new or existing kubeconfig/file"},
+ {Name: "node", Description: "Manage k3d nodes"},
+ {Name: "Node Name", Description: "Name of the node"},
+ {Name: "k3s-arg", Description: "Additional k3s arguments"},
+ {Name: "memory", Description: "Memory limit for the node container"},
+ {Name: "replicas", Description: "Number of replicas to create"},
+ {Name: "role", Description: "Node role"},
+ {Name: "timeout", Description: "Maximum waiting time for '--wait' before canceling/returning"},
+ {Name: "port-add", Description: "Map ports from the node container to the host"},
+ {Name: "output", Description: "Output format"},
+ {Name: "registry", Description: "Manage registry/registries"},
+ {Name: "Registry Name", Description: "Name of the registry"},
+ {Name: "version", Description: "Show k3d and default k3s version"},
+ },
+ Options: []core.Option{
+ {Name: "-a", Description: "Number of agents to create"},
+ {Name: "--agents-memory", Description: "Memory limit imposed on the agents nodes"},
+ {Name: "--api-port", Description: "Specify the Kubernetes API server port exposed on the LoadBalancer"},
+ {Name: "-c", Description: "Path of a config file to use"},
+ {Name: "-e", Description: "Add environment variables to nodes"},
+ {Name: "--gpus", Description: "GPU devices to add to the cluster node containers"},
+ {Name: "-h", Description: "Help for create"},
+ {Name: "--host-alias", Description: "Add ip:host[,host,...] mappings"},
+ {Name: "--host-pid-mode", Description: "Enable host pid mode of server(s) and agent(s)"},
+ {Name: "-i", Description: "Specify k3s image that you want to use for the nodes"},
+ {Name: "--k3s-arg", Description: "Additional args passed to k3s command"},
+ {Name: "--k3s-node-label", Description: "Add label to k3s node"},
+ {Name: "--kubeconfig-switch-context", Description: "Use dotted YAML path syntax to override nginx loadbalancer settings"},
+ {Name: "--network", Description: "Specify the docker network to use"},
+ {Name: "--no-image-volume", Description: "Don't create a volume for the container's root filesystem"},
+ {Name: "--no-lb", Description: "Don't create a loadbalancer for the cluster"},
+ {Name: "--no-rollback", Description: "Don't rollback changes if cluster creation failed"},
+ {Name: "-p", Description: "Map ports from the node containers (via the serverlb) to the host"},
+ {Name: "--registry-config", Description: "Specify path to an extra registries.yaml file"},
+ {Name: "--registry-create", Description: "Connect to one or more k3d-managed registries running locally"},
+ {Name: "--runtime-label", Description: "Specify how many servers you want to create"},
+ {Name: "--servers-memory", Description: "Memory limit imposed on the server nodes [From docker]"},
+ {Name: "--subnet", Description: "[Experimental: IPAM] Define a subnet for the newly created container network"},
+ {Name: "--timeout", Description: "Rollback changes if cluster couldn't be created in specified duration"},
+ {Name: "--token", Description: "Specify a cluster token. By default, we generate one"},
+ {Name: "-v", Description: "Mount volumes into the nodes"},
+ {Name: "--wait", Description: "Wait for the server(s) to be ready before returning"},
+ {Name: "--port-add", Description: "Map ports from the node containers"},
+ {Name: "--no-headers", Description: "Don't print headers"},
+ {Name: "-o", Description: "Output format"},
+ {Name: "-f", Description: "Force overwrite of target file"},
+ {Name: "-k", Description: "Do not delete the tarball containing the saved images from the shared volume"},
+ {Name: "-t", Description: "Do not delete the tools node after import"},
+ {Name: "-m", Description: "Import mode"},
+ {Name: "-s", Description: "Switch to new context (default true)"},
+ {Name: "-u", Description: "Update conflicting fields in existing kubeconfig (default true)"},
+ {Name: "--memory", Description: "Memory limit for the node container"},
+ {Name: "-n", Description: "Add node to (another) runtime network"},
+ {Name: "--replicas", Description: "Number of replicas to create"},
+ {Name: "--role", Description: "Node role"},
+ },
+ })
+}
diff --git a/commands/ops/k6.go b/commands/ops/k6.go
new file mode 100644
index 0000000..12e948c
--- /dev/null
+++ b/commands/ops/k6.go
@@ -0,0 +1,106 @@
+package ops
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "k6",
+ Description: "Create an archive",
+ Subcommands: []core.Subcommand{
+ {Name: "archive", Description: "Create an archive"},
+ {Name: "cloud", Description: "Run a test on the cloud"},
+ {Name: "completion", Description: "Generate the autocompletion script for the specified shell"},
+ {Name: "bash", Description: "Generate the autocompletion script for bash"},
+ {Name: "fish", Description: "Generate the autocompletion script for fish"},
+ {Name: "powershell", Description: "Generate the autocompletion script for powershell"},
+ {Name: "zsh", Description: "Generate the autocompletion script for zsh"},
+ {Name: "convert", Description: "Convert a HAR file to a k6 script"},
+ {Name: "help", Description: "Help about any command"},
+ {Name: "inspect", Description: "Inspect a script or archive"},
+ {Name: "login", Description: "Inspect a script or archive"},
+ {Name: "influxdb", Description: "Authenticate with InfluxDB"},
+ {Name: "pause", Description: "Pause a running test"},
+ {Name: "resume", Description: "Resume a running test"},
+ {Name: "run", Description: "Start a load test"},
+ {Name: "address", Description: "Address of the API server"},
+ {Name: "batch", Description: "Max parallel batch reqs (default 20)"},
+ {Name: "batch-per-host", Description: "Max parallel batch reqs per host (default 6)"},
+ {Name: "vus", Description: "Number of virtual users (default 1)"},
+ {Name: "duration", Description: "Test duration limit"},
+ {Name: "iterations", Description: "Script total iteration limit (among all VUs)"},
+ {Name: "stage", Description: "Add a stage, as `[duration]:[target]`"},
+ {Name: "execution-segment", Description: "Limit execution to the specified segment, e.g. 10%, 1/3, 0.2:2/3"},
+ {Name: "execution-segment-sequence", Description: "The execution segment sequence"},
+ {Name: "paused", Description: "Start the test in a paused state"},
+ {Name: "no-setup", Description: "Don't run setup()"},
+ {Name: "no-teardown", Description: "Don't run teardown()"},
+ {Name: "max-redirects", Description: "Follow at most n redirects (default 10)"},
+ {Name: "rps", Description: "Limit requests per second"},
+ {Name: "insecure-skip-tls-verify", Description: "Skip verification of TLS certificates"},
+ {Name: "no-connection-reuse", Description: "Disable keep-alive connections"},
+ {Name: "no-vu-connection-reuse", Description: "Don't reuse connections between iterations"},
+ {Name: "min-iteration-duration", Description: "Minimum amount of time k6 will take executing a single iteration"},
+ {Name: "throw", Description: "Throw warnings (like failed http requests) as errors"},
+ {Name: "blacklist-ip", Description: "Blacklist an ip range from being calledd"},
+ {Name: "tag", Description: "Add a tag to be applied to all samples, as `[name]=[value]`"},
+ {Name: "console-output", Description: "Redirects the console logging to the provided output file"},
+ {Name: "discard-response-bodies", Description: "Read but don't process or save HTTP response bodies"},
+ {Name: "dns", Description: "DNS resolver configuration"},
+ {Name: "include-system-env-vars", Description: "Pass the real system environment variables to the runtime (default true)"},
+ {Name: "env", Description: "Add/override environment variable with VAR=value"},
+ {Name: "no-thresholds", Description: "Don't run thresholds"},
+ {Name: "no-summary", Description: "Don't show the summary at the end of the test"},
+ {Name: "summary-export", Description: "Output the end-of-test summary report to JSON file"},
+ {Name: "out", Description: "Uri for an external metrics database"},
+ {Name: "linger", Description: "Keep the API server alive past test end"},
+ {Name: "no-usage-report", Description: "Don't send anonymous stats to the developers"},
+ {Name: "scale", Description: "Scale a running test"},
+ {Name: "max", Description: "Max available virtual users"},
+ {Name: "stats", Description: "Show test metrics"},
+ },
+ Options: []core.Option{
+ {Name: "--address", Description: "Address of the API server"},
+ {Name: "--batch", Description: "Max parallel batch reqs (default 20)"},
+ {Name: "--batch-per-host", Description: "Max parallel batch reqs per host (default 6)"},
+ {Name: "--vus", Description: "Number of virtual users (default 1)"},
+ {Name: "--duration", Description: "Test duration limit"},
+ {Name: "--iterations", Description: "Script total iteration limit (among all VUs)"},
+ {Name: "--stage", Description: "Add a stage, as `[duration]:[target]`"},
+ {Name: "--execution-segment", Description: "Add a stage, as `[duration]:[target]`"},
+ {Name: "--execution-segment-sequence", Description: "The execution segment sequence"},
+ {Name: "--paused", Description: "Start the test in a paused state"},
+ {Name: "--no-setup", Description: "Don't run setup()"},
+ {Name: "--no-teardown", Description: "Don't run teardown()"},
+ {Name: "--max-redirects", Description: "Follow at most n redirects (default 10)"},
+ {Name: "--rps", Description: "Limit requests per second"},
+ {Name: "--user-agent", Description: "Skip verification of TLS certificates"},
+ {Name: "--no-connection-reuse", Description: "Disable keep-alive connections"},
+ {Name: "--no-vu-connection-reuse", Description: "Don't reuse connections between iterations"},
+ {Name: "--min-iteration-duration", Description: "Minimum amount of time k6 will take executing a single iteration"},
+ {Name: "--throw", Description: "Throw warnings (like failed http requests) as errors"},
+ {Name: "--blacklist-ip", Description: "Blacklist an ip range from being called"},
+ {Name: "--block-hostnames", Description: "Add a tag to be applied to all samples, as `[name]=[value]`"},
+ {Name: "--console-output", Description: "Redirects the console logging to the provided output file"},
+ {Name: "--discard-response-bodies", Description: "Read but don't process or save HTTP response bodies"},
+ {Name: "--local-ips", Description: "DNS resolver configuration"},
+ {Name: "--include-system-env-vars", Description: "Pass the real system environment variables to the runtime (default true)"},
+ {Name: "--compatibility-mode", Description: "Add/override environment variable with VAR=value"},
+ {Name: "--no-thresholds", Description: "Don't run thresholds"},
+ {Name: "--no-summary", Description: "Don't show the summary at the end of the test"},
+ {Name: "--summary-export", Description: "Output the end-of-test summary report to JSON file"},
+ {Name: "--out", Description: "Uri for an external metrics database"},
+ {Name: "--linger", Description: "Keep the API server alive past test end"},
+ {Name: "--no-usage-report", Description: "Don't send anonymous stats to the developers"},
+ {Name: "-h", Description: "Help for scale"},
+ {Name: "-m", Description: "Max available virtual users"},
+ {Name: "-u", Description: "Number of virtual users (default 1)"},
+ {Name: "-v", Description: "Enable verbose logging"},
+ {Name: "-q", Description: "Disable progress updates"},
+ {Name: "-a", Description: "JSON config file"},
+ {Name: "--log-format", Description: "Log output format"},
+ {Name: "--log-output", Description: "Change the output for k6 logs"},
+ },
+ })
+}
diff --git a/commands/ops/k9s.go b/commands/ops/k9s.go
new file mode 100644
index 0000000..ee9e6f4
--- /dev/null
+++ b/commands/ops/k9s.go
@@ -0,0 +1,43 @@
+package ops
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "k9s",
+ Description: "Kubernetes namespace",
+ Subcommands: []core.Subcommand{
+ {Name: "help", Description: "Help about any command"},
+ {Name: "info", Description: "Print configuration info"},
+ {Name: "version", Description: "Print version/build info"},
+ },
+ Options: []core.Option{
+ {Name: "-h", Description: "Help for info"},
+ {Name: "-s", Description: "Prints K9s version info in short format"},
+ {Name: "-A", Description: "Launch K9s in all namespaces"},
+ {Name: "--as", Description: "Username to impersonate for the operation"},
+ {Name: "--as-group", Description: "Group to impersonate for the operation"},
+ {Name: "--certificate-authority", Description: "Path to a cert file for the certificate authority"},
+ {Name: "--client-key", Description: "Path to a client key file for TLS"},
+ {Name: "-c", Description: "Overrides the default resource to load when the application launches"},
+ {Name: "--context", Description: "The name of the kubeconfig context to use"},
+ {Name: "--crumbsless", Description: "Turn K9s crumbs off"},
+ {Name: "--headless", Description: "Turn K9s header off"},
+ {Name: "--insecure-skip-tls-verify", Description: "If true, the server's caCertFile will not be checked for validity"},
+ {Name: "--kubeconfig", Description: "Path to the kubeconfig file to use for CLI requests"},
+ {Name: "--logFile", Description: "Specify the log file"},
+ {Name: "-l", Description: "Specify a log level (info, warn, debug, trace, error) (default 'info')"},
+ {Name: "--logoless", Description: "Turn K9s logo off"},
+ {Name: "-n", Description: "If present, the namespace scope for this CLI request"},
+ {Name: "--readonly", Description: "Sets readOnly mode by overriding readOnly configuration setting"},
+ {Name: "-r", Description: "Specify the default refresh rate as an integer (sec) (default 2)"},
+ {Name: "--request-timeout", Description: "The length of time to wait before giving up on a single server request"},
+ {Name: "--screen-dump-dir", Description: "Sets a path to a dir for a screen dumps"},
+ {Name: "--token", Description: "Bearer token for authentication to the API server"},
+ {Name: "--user", Description: "The name of the kubeconfig user to use"},
+ {Name: "--write", Description: "Sets write mode by overriding the readOnly configuration setting"},
+ },
+ })
+}
diff --git a/commands/ops/kind.go b/commands/ops/kind.go
new file mode 100644
index 0000000..5070820
--- /dev/null
+++ b/commands/ops/kind.go
@@ -0,0 +1,56 @@
+package ops
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "kind",
+ Description: "Cluster",
+ Subcommands: []core.Subcommand{
+ {Name: "Build", Description: "Build one of [node-image]"},
+ {Name: "node-image", Description: "Builds a node image"},
+ {Name: "architecture", Description: "Architecture to build for, defaults to the host architecture"},
+ {Name: "base image", Description: "Name:tag of the base image to use for the build"},
+ {Name: "name:tag", Description: "Name:tag of the resulting image to be built"},
+ {Name: "path", Description: "Path to the Kubernetes source directory"},
+ {Name: "type", Description: "Build type, default is docker"},
+ {Name: "create", Description: "Creates a cluster"},
+ {Name: "cluster", Description: "Creates a cluster"},
+ {Name: "completion", Description: "Generates shell completion scripts"},
+ {Name: "bash", Description: "Output shell completions for bash"},
+ {Name: "fish", Description: "Output shell completions for fish"},
+ {Name: "zsh", Description: "Output shell completions for zsh"},
+ {Name: "delete", Description: "Deletes one or more clusters"},
+ {Name: "clusters", Description: "Delete Clusters"},
+ {Name: "export", Description: "Exports a cluster's kubeconfig"},
+ {Name: "kubeconfig", Description: "Exports a cluster's kubeconfig"},
+ {Name: "logs", Description: "Exports logs to a tempdir or [output-dir] if specified"},
+ {Name: "get", Description: "Gets one of [clusters, nodes, kubeconfig]"},
+ {Name: "nodes", Description: "Lists existing kind nodes by their name"},
+ {Name: "load", Description: "Loads images into node from an archive or image on host"},
+ {Name: "docker-image", Description: "Loads docker images from host into all or specified nodes by name"},
+ {Name: "image-archive", Description: "Loads docker images from archive into all or specified nodes by name"},
+ {Name: "version", Description: "Prints the kind CLI version"},
+ },
+ Options: []core.Option{
+ {Name: "--arch", Description: "Architecture to build for, defaults to the host architecture"},
+ {Name: "--base-image", Description: "Base image to use for the node image"},
+ {Name: "--image", Description: "Name:tag of the resulting image to be built"},
+ {Name: "--kube-root", Description: "Path to the Kubernetes source directory"},
+ {Name: "--type", Description: "Type of node image to build"},
+ {Name: "--config", Description: "Path to a kind config file"},
+ {Name: "--kubeconfig", Description: "Sets kubeconfig path instead of $KUBECONFIG or $HOME/.kube/config"},
+ {Name: "--name", Description: "Cluster name"},
+ {Name: "--retain", Description: "Retain nodes for debugging when cluster creation fails"},
+ {Name: "--wait", Description: "Wait for control-plane node to be ready"},
+ {Name: "-A", Description: "Delete all clusters"},
+ {Name: "--internal", Description: "Use internal address instead of externalt"},
+ {Name: "--nodes", Description: "Comma separated list of nodes to load images into"},
+ {Name: "-h", Description: "Help for kind"},
+ {Name: "-q", Description: "Silence all stderr output"},
+ {Name: "-v", Description: "Info log verbosity, higher value produces more output"},
+ },
+ })
+}
diff --git a/commands/ops/knex.go b/commands/ops/knex.go
new file mode 100644
index 0000000..d1c4d3d
--- /dev/null
+++ b/commands/ops/knex.go
@@ -0,0 +1,42 @@
+package ops
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "knex",
+ Description: "SQL query builder for JavaScript",
+ Subcommands: []core.Subcommand{
+ {Name: "init", Description: "Create a fresh knexfile"},
+ {Name: "migrate:make", Description: "Create a named migration file"},
+ {Name: "migrate:latest", Description: "Run all migrations that have not yet been run"},
+ {Name: "migrate:up", Description: "Run the next or the specified migration that has not yet been run"},
+ {Name: "migrate:rollback", Description: "Rollback the last batch of migrations performed"},
+ {Name: "migrate:down", Description: "Undo the last or the specified migration that was already run"},
+ {Name: "migrate:currentVersion", Description: "View the current version for the migration"},
+ {Name: "migrate:list|migrate:status", Description: "List all migrations files with status"},
+ {Name: "migrate:unlock", Description: "Forcibly unlocks the migrations lock table"},
+ {Name: "seed:make", Description: "Create a named seed file"},
+ {Name: "seed:run", Description: "Run seed files"},
+ {Name: "help", Description: "Display help for command"},
+ },
+ Options: []core.Option{
+ {Name: "--version", Description: "Output the version number"},
+ {Name: "--debug", Description: "Run with debugging"},
+ {Name: "--knexfile", Description: "Specify the knexfile path"},
+ {Name: "--knexpath", Description: "Specify the path to knex instance"},
+ {Name: "--cwd", Description: "Specify the working directory"},
+ {Name: "--client", Description: "Set DB client without a knexfile"},
+ {Name: "--connection", Description: "Set DB connection without a knexfile"},
+ {Name: "--migrations-directory", Description: "Set migrations directory without a knexfile"},
+ {Name: "--migrations-table-name", Description: "Set migrations table name without a knexfile"},
+ {Name: "--env", Description: "Environment, default: process.env.NODE_ENV || development"},
+ {Name: "--esm", Description: "Enable ESM interop"},
+ {Name: "--specific", Description: "Specify one seed file to execute"},
+ {Name: "--timestamp-filename-prefix", Description: "Enable a timestamp prefix on name of generated seed files"},
+ {Name: "--help", Description: "Display help for command"},
+ },
+ })
+}
diff --git a/commands/ops/kubectx.go b/commands/ops/kubectx.go
new file mode 100644
index 0000000..3b626c5
--- /dev/null
+++ b/commands/ops/kubectx.go
@@ -0,0 +1,18 @@
+package ops
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "kubectx",
+ Description: "Switch between Kubernetes-contexts",
+ Options: []core.Option{
+ {Name: "--help", Description: "Show help for kubectx"},
+ {Name: "--current", Description: "Show current context"},
+ {Name: "--unset", Description: "Unset the current context"},
+ {Name: "-d", Description: "Delete context"},
+ },
+ })
+}
diff --git a/commands/ops/kubens.go b/commands/ops/kubens.go
new file mode 100644
index 0000000..cb68132
--- /dev/null
+++ b/commands/ops/kubens.go
@@ -0,0 +1,16 @@
+package ops
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "kubens",
+ Description: "Switch between Kubernetes-namespaces",
+ Options: []core.Option{
+ {Name: "--help", Description: "Show help for kubens"},
+ {Name: "--current", Description: "Show current namespace"},
+ },
+ })
+}
diff --git a/commands/ops/limactl.go b/commands/ops/limactl.go
new file mode 100644
index 0000000..80d9748
--- /dev/null
+++ b/commands/ops/limactl.go
@@ -0,0 +1,38 @@
+package ops
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "limactl",
+ Description: "Lima: Linux virtual machines, with a focus on running containers",
+ Subcommands: []core.Subcommand{
+ {Name: "completion", Description: "Generate the autocompletion script for the specified shell"},
+ {Name: "copy", Description: "Copy files between host and guest"},
+ {Name: "delete", Description: "Delete an instance of Lima"},
+ {Name: "info", Description: "Show diagnostic information"},
+ {Name: "list", Description: "List instances of Lima"},
+ {Name: "prune", Description: "Prune garbage objects"},
+ {Name: "show-ssh", Description: "Show the ssh command line"},
+ {Name: "cmd", Description: "Full ssh command line"},
+ {Name: "options", Description: "Ssh option key value pairs"},
+ {Name: "config", Description: "~/.ssh/config format"},
+ {Name: "stop", Description: "Stop an instance"},
+ {Name: "validate", Description: "Validate YAML files"},
+ },
+ Options: []core.Option{
+ {Name: "-h", Description: "Debug mode"},
+ {Name: "--no-descriptions", Description: "Disable completion descriptions"},
+ {Name: "-r", Description: "Copy directories recursively"},
+ {Name: "-f", Description: "Forcibly kill the processes"},
+ {Name: "--json", Description: "JSONify output"},
+ {Name: "-q", Description: "Only show names"},
+ {Name: "--workdir", Description: "Working directory"},
+ {Name: "--tty", Description: "Stop an instance"},
+ {Name: "--check", Description: "Validate YAML files"},
+ {Name: "-v", Description: "Version for limactl"},
+ },
+ })
+}
diff --git a/commands/ops/locust.go b/commands/ops/locust.go
new file mode 100644
index 0000000..3eb5058
--- /dev/null
+++ b/commands/ops/locust.go
@@ -0,0 +1,40 @@
+package ops
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "locust",
+ Description: "Show program",
+ Options: []core.Option{
+ {Name: "-v", Description: "Show program's version number and exit"},
+ {Name: "-h", Description: "Show this help message and exit"},
+ {Name: "-f", Description: "Show program's version number and exit"},
+ {Name: "--config", Description: "Config file path"},
+ {Name: "-H", Description: "Host to load test in the following format: http://10.21.32.33"},
+ {Name: "-u", Description: "Stop after the specified amount of time, e.g. (300s, 20m, 3h, 1h30m, etc.)"},
+ {Name: "-l", Description: "Show list of possible User classes and exit"},
+ {Name: "--web-host", Description: "Host to bind the web interface to. Defaults to '*' (all interfaces)"},
+ {Name: "-P", Description: "Port on which to run web host"},
+ {Name: "--headless", Description: "Disable the web interface, and start the test immediately"},
+ {Name: "--autostart", Description: "Starts the test immediately (without disabling the web UI)"},
+ {Name: "--autoquit", Description: "Quits Locust entirely, X seconds after the run is finished"},
+ {Name: "--web-auth", Description: "Turn on Basic Auth for the web interface. e.g. username:password"},
+ {Name: "--tls-cert", Description: "Optional path to TLS certificate to use to serve over HTTPS"},
+ {Name: "--tls-key", Description: "Optional path to TLS private key to use to serve over HTTPS"},
+ {Name: "--class-picker", Description: "Set locust to run in distributed mode with this process as master"},
+ {Name: "--master-bind-host", Description: "Interfaces (hostname, ip) that locust master should bind to"},
+ {Name: "--master-bind-port", Description: "Port that locust master should bind to"},
+ {Name: "--expect-workers", Description: "Set locust to run in distributed mode with this process as worker"},
+ {Name: "--master-host", Description: "Show list of possible User classes and exit"},
+ {Name: "--csv", Description: "Store current request stats to files in CSV format"},
+ {Name: "--csv-full-history", Description: "Print stats in the console"},
+ {Name: "--only-summary", Description: "Only print the summary stats"},
+ {Name: "--reset-stats", Description: "Store HTML report to file path specified"},
+ {Name: "--skip-log-setup", Description: "Choose between DEBUG/INFO/WARNING/ERROR/CRITICAL. Default is INFO"},
+ {Name: "--logfile", Description: "Path to log file. If not set, log will go to stderr"},
+ },
+ })
+}
diff --git a/commands/ops/lpass.go b/commands/ops/lpass.go
new file mode 100644
index 0000000..3bfcf6c
--- /dev/null
+++ b/commands/ops/lpass.go
@@ -0,0 +1,89 @@
+package ops
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "lpass",
+ Description: "Command line interface for LastPass",
+ Subcommands: []core.Subcommand{
+ {Name: "login", Description: "Log in to LastPass"},
+ {Name: "USERNAME", Description: "LastPass account username (email address)"},
+ {Name: "logout", Description: "Log out of LastPass"},
+ {Name: "ls", Description: "List names in groups in a tree structure"},
+ {Name: "GROUP", Description: "Group of entries to list"},
+ {Name: "passwd", Description: "Change LastPass password and reencrypt all entries"},
+ {Name: "show", Description: "Show password or selected field"},
+ {Name: "FIELD", Description: "Show only this field"},
+ {Name: "ATTACHID", Description: "Attachment ID"},
+ {Name: "UNIQENAME|UNIQUEID", Description: "Shows entry with this unique name or ID"},
+ {Name: "mv", Description: "Move LastPass entry to a different group"},
+ {Name: "UNIQUENAME|UNIQUEID", Description: "Unique name or ID to move"},
+ {Name: "add", Description: "Add a new entry"},
+ {Name: "NOTETYPE", Description: "Type of note to add"},
+ {Name: "NAME|UNIQUEID", Description: "Name or unique ID of the entry to add"},
+ {Name: "edit", Description: "Edit existing entry"},
+ {Name: "generate", Description: "Create randomly generated password"},
+ {Name: "URL", Description: "URL to generate the password for"},
+ {Name: "LENGTH", Description: "Length of the password to create"},
+ {Name: "duplicate", Description: "Duplicate existing entry"},
+ {Name: "rm", Description: "Removes existing entry"},
+ {Name: "status", Description: "Show the LastPass login status"},
+ {Name: "sync", Description: "Sync the local cache against the LastPass server"},
+ {Name: "import", Description: "Import account information from an unencrypted CSV"},
+ {Name: "FILENAME", Description: "CSV filename to import from"},
+ {Name: "export", Description: "Export account information to an unencrypted CSV"},
+ {Name: "share", Description: "LastPass Sharing Center functionality"},
+ {Name: "userls", Description: "List the LastPass users which have access to the Shared Folders"},
+ {Name: "useradd", Description: "Add user to Shared Folders"},
+ {Name: "true", Description: "Grant read only access"},
+ {Name: "false", Description: "Grant write access"},
+ {Name: "SHARE", Description: "Entry to share"},
+ {Name: "usermod", Description: "Modify user on Shared Folders"},
+ {Name: "userdel", Description: "Remove user from Shared Folders"},
+ {Name: "create", Description: "Create new LastPass Shared Folder"},
+ {Name: "limit", Description: "Manipulate LastPass Shared Folder access"},
+ {Name: "sites", Description: "LastPass sites to manipulate"},
+ },
+ Options: []core.Option{
+ {Name: "--trust", Description: "Subsequent logins will not require multifactor authentication"},
+ {Name: "--plaintext-key", Description: "Save decryption key to the hard disk in plaintext"},
+ {Name: "--force", Description: "Skip user confirmation"},
+ {Name: "--color", Description: "Control colored output to the terminal"},
+ {Name: "--long", Description: "Show the last modification time"},
+ {Name: "-m", Description: "Show the last modified time"},
+ {Name: "-u", Description: "Show the last used time"},
+ {Name: "--sync", Description: "When the current operation syncs to server"},
+ {Name: "--clip", Description: "Copy to the clipboard"},
+ {Name: "--quiet", Description: "Display no output and only sets return code"},
+ {Name: "--expand-multi", Description: "Show information from all matching sites"},
+ {Name: "--json", Description: "Generate json output instead of human-readable text"},
+ {Name: "--all", Description: "Show all fields"},
+ {Name: "--username", Description: "Show only the username"},
+ {Name: "--password", Description: "Show only the password"},
+ {Name: "--url", Description: "Show only the URL"},
+ {Name: "--notes", Description: "Show only the notes"},
+ {Name: "--field", Description: "Show only the field"},
+ {Name: "--id", Description: "Show only the ID"},
+ {Name: "--name", Description: "Show only the name"},
+ {Name: "--attach", Description: "Show only the attachment"},
+ {Name: "--basic-regexp", Description: "Show sites matching case-insensitive regular expression"},
+ {Name: "--fixed-strings", Description: "Show sites matching this exact substring"},
+ {Name: "--non-interactive", Description: "Control colored output to the terminal"},
+ {Name: "--note-type", Description: "Add only the note"},
+ {Name: "--no-symbols", Description: "Generate password without symbols"},
+ {Name: "--background", Description: "Synchronization occurs in a daemonized process"},
+ {Name: "--keep-dupes", Description: "Keeps any duplicate entries"},
+ {Name: "--fields", Description: "CSV filename to export to"},
+ {Name: "--read-only", Description: "Control read or write access"},
+ {Name: "--hidden", Description: "Share user view permission"},
+ {Name: "--admin", Description: "Share user administer permission"},
+ {Name: "--deny", Description: "Deny or allow access"},
+ {Name: "--add", Description: "Add, remove, or clear access"},
+ {Name: "--help", Description: "Display the help for lpass"},
+ {Name: "--version", Description: "Display the version of lpass"},
+ },
+ })
+}
diff --git a/commands/ops/minikube.go b/commands/ops/minikube.go
new file mode 100644
index 0000000..da4d96f
--- /dev/null
+++ b/commands/ops/minikube.go
@@ -0,0 +1,106 @@
+package ops
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "minikube",
+ Description: "Format to print stdout in",
+ Subcommands: []core.Subcommand{
+ {Name: "start", Description: "Starts a local Kubernetes cluster"},
+ {Name: "status", Description: "Gets the status of a local Kubernetes cluster"},
+ {Name: "stop", Description: "Stops a running local Kubernetes cluster"},
+ {Name: "delete", Description: "Deletes a local Kubernetes cluster"},
+ {Name: "unpause", Description: "Unpause Kubernetes"},
+ {Name: "docker-env", Description: "Configure environment to use minikube's Docker daemon"},
+ {Name: "podman-env", Description: "Configure environment to use minikube's Podman service"},
+ {Name: "cache", Description: "Add, delete, or push a local image into minikube"},
+ {Name: "add", Description: "Add an image to local cache"},
+ {Name: "list", Description: "List all available images from the local cache"},
+ {Name: "reload", Description: "Reload cached images"},
+ {Name: "image", Description: "Manage images"},
+ {Name: "build", Description: "Build a container image in minikube"},
+ {Name: "load", Description: "Load a image into minikube"},
+ {Name: "ls", Description: "List images"},
+ {Name: "pull", Description: "Pull images"},
+ {Name: "push", Description: "Push images"},
+ {Name: "rm", Description: "Remove one or more images"},
+ {Name: "save", Description: "Save a image from minikube"},
+ {Name: "tag", Description: "Tag images"},
+ {Name: "addons", Description: "Enable or disable a minikube addon"},
+ {Name: "configure", Description: "Configures the addon w/ADDON_NAME within minikube"},
+ {Name: "disable", Description: "Disables the addon w/ADDON_NAME within minikube"},
+ {Name: "enable", Description: "Enables the addon w/ADDON_NAME within minikube"},
+ {Name: "images", Description: "List image names the addon w/ADDON_NAME used"},
+ {Name: "open", Description: "Opens the addon w/ADDON_NAME within minikube"},
+ {Name: "config", Description: "Modify persistent configuration values"},
+ {Name: "defaults", Description: "Lists all valid default values for PROPERTY_NAME"},
+ {Name: "get", Description: "Gets the value of PROPERTY_NAME from the minikube config file"},
+ {Name: "set", Description: "Sets an individual value in a minikube config file"},
+ {Name: "unset", Description: "Unsets an individual value in a minikube config file"},
+ {Name: "view", Description: "Display values currently set in the minikube config file"},
+ {Name: "profile", Description: "Get or list the current profiles (clusters)"},
+ {Name: "update-context", Description: "Update kubeconfig in case of an IP or port change"},
+ {Name: "service", Description: "Returns a URL to connect to a service"},
+ {Name: "tunnel", Description: "Connect to LoadBalancer services"},
+ {Name: "mount", Description: "Mounts the specified directory into minikube"},
+ {Name: "ssh", Description: "Log into the minikube environment (for debugging)"},
+ {Name: "kubectl", Description: "Run a kubectl binary matching the cluster version"},
+ {Name: "node", Description: "Add, remove, or list additional nodes"},
+ {Name: "cp", Description: "Copy the specified file into minikube"},
+ {Name: "ssh-key", Description: "Retrieve the ssh identity key path of the specified node"},
+ {Name: "ssh-host", Description: "Retrieve the ssh host key of the specified node"},
+ {Name: "ip", Description: "Retrieves the IP address of the specified node"},
+ {Name: "logs", Description: "Returns logs to debug a local Kubernetes cluster"},
+ {Name: "update-check", Description: "Print current and latest version number"},
+ {Name: "version", Description: "Print the version of minikube"},
+ {Name: "options", Description: "Add, remove, or list additional nodes"},
+ {Name: "completion", Description: "Generate command completion for a shell"},
+ {Name: "bash", Description: "Bash completion"},
+ },
+ Options: []core.Option{
+ {Name: "--output", Description: "Format to print stdout in"},
+ {Name: "--shell", Description: "Force environment to be configured for a specified shell"},
+ {Name: "--unset", Description: "Unset variables instead of setting them"},
+ {Name: "--addons", Description: "Enable addons. see `minikube addons list` for a list of valid addon names"},
+ {Name: "--apiserver-ips", Description: "The authoritative apiserver hostname for apiserver certificates and connectivity"},
+ {Name: "--apiserver-names", Description: "The apiserver listening port"},
+ {Name: "--auto-update-drivers", Description: "If set, automatically updates drivers to the latest version"},
+ {Name: "--base-image", Description: "The base image to use for docker/podman drivers. Intended for local development"},
+ {Name: "--cache-images", Description: "Duration until minikube certificate expiration"},
+ {Name: "--cni", Description: "CNI plug-in to use"},
+ {Name: "--container-runtime", Description: "The container runtime to be used"},
+ {Name: "--cpus", Description: "Number of CPUs allocated to Kubernetes"},
+ {Name: "--cri-socket", Description: "The cri socket path to be used"},
+ {Name: "--delete-on-failure", Description: "If set, delete the current cluster if start fails and try again"},
+ {Name: "--disable-driver-mounts", Description: "Disables the filesystem mounts provided by the hypervisors"},
+ {Name: "--disk-size", Description: "Disk size allocated to the minikube VM"},
+ {Name: "--dns-domain", Description: "The cluster dns domain name used in the Kubernetes cluster"},
+ {Name: "--dns-proxy", Description: "Enable proxy for NAT DNS requests"},
+ {Name: "--docker-env", Description: "Environment variables to pass to the Docker daemon. (format: key=value)"},
+ {Name: "--docker-opt", Description: "Specify arbitrary flags to pass to the Docker daemon. (format: key=value)"},
+ {Name: "--download-only", Description: "Choose driver"},
+ {Name: "--dry-run", Description: "Dry-run mode. Validates configuration, but does not mutate system state"},
+ {Name: "--embed-certs", Description: "If true, will embed the certs in kubeconfig"},
+ {Name: "--extra-config", Description: "Number of extra disks created and attached to the minikube VM"},
+ {Name: "--feature-gates", Description: "Force minikube to perform possibly dangerous operations"},
+ {Name: "--force-systemd", Description: "If set, force the container runtime to use systemd as cgroup manager"},
+ {Name: "--host-dns-resolver", Description: "Enable host resolver for NAT DNS requests"},
+ {Name: "--host-only-cidr", Description: "The CIDR to be used for the minikube VM"},
+ {Name: "--host-only-nic-type", Description: "NIC Type used for host only network"},
+ {Name: "--hyperkit-vpnkit-sock", Description: "Location of the VPNKit socket used for networking"},
+ {Name: "--hyperkit-vsock-ports", Description: "List of guest VSock ports that should be exposed as sockets on the host"},
+ {Name: "--hyperv-external-adapter", Description: "The hyperv virtual switch name. Defaults to first found"},
+ {Name: "--image-mirror-country", Description: "Country code of the image mirror to be used"},
+ {Name: "--image-repository", Description: "Alternative image repository to pull docker images from"},
+ {Name: "--insecure-registry", Description: "Insecure Docker registries to pass to the Docker daemon"},
+ {Name: "--install-addons", Description: "If set, install addons. Defaults to true"},
+ {Name: "--interactive", Description: "Allow user prompts for more information"},
+ {Name: "--iso-url", Description: "Locations to fetch the minikube ISO from"},
+ {Name: "--keep-context", Description: "This will keep the existing kubectl context and will create a minikube context"},
+ {Name: "--kubernetes-version", Description: "The Kubernetes version that the minikube VM will use"},
+ },
+ })
+}
diff --git a/commands/ops/mongocli.go b/commands/ops/mongocli.go
new file mode 100644
index 0000000..9673892
--- /dev/null
+++ b/commands/ops/mongocli.go
@@ -0,0 +1,106 @@
+package ops
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "mongocli",
+ Description: "CLI tool to manage your MongoDB Cloud",
+ Subcommands: []core.Subcommand{
+ {Name: "config", Description: "Configure a profile to store access settings for your MongoDB deployment"},
+ {Name: "set", Description: "Configure specific properties of a profile"},
+ {Name: "ls", Description: "List available profiles"},
+ {Name: "get", Description: "Return a specific profile"},
+ {Name: "mv", Description: "Rename a profile"},
+ {Name: "rm", Description: "Delete a profile"},
+ {Name: "atlas", Description: "MongoDB Atlas operations"},
+ {Name: "quickstart", Description: "Create and access an Atlas Cluster"},
+ {Name: "cluster", Description: "Manage clusters for your project"},
+ {Name: "create", Description: "Create one cluster in the specified project"},
+ {Name: "watch", Description: "Watch for a cluster to be available"},
+ {Name: "update", Description: "Update a MongoDB cluster"},
+ {Name: "pause", Description: "Pause a running MongoDB cluster in Atlas"},
+ {Name: "start", Description: "Start a paused MongoDB cluster in Atlas"},
+ {Name: "loadSampleData", Description: "Load sample data into a MongoDB cluster in Atlas"},
+ {Name: "index", Description: "Manage cluster rolling indexes for your project"},
+ {Name: "fts", Description: "Manage Atlas Search for your cluster"},
+ {Name: "describe", Description: "Describe a search index for a cluster"},
+ {Name: "onlinearchives", Description: "Manage online archives for your cluster"},
+ {Name: "connectionstrings", Description: "Manage MongoDB cluster connection string"},
+ {Name: "availableregions", Description: "Manage available regions for your project"},
+ {Name: "dbuser", Description: "Manage database users for your project"},
+ {Name: "cert", Description: "Manage Atlas x509 certificates for your database users"},
+ {Name: "customdbroles", Description: "Manage custom database roles for your project"},
+ {Name: "accesslists", Description: "Manage the access IP access list for your project"},
+ {Name: "datalakes", Description: "Manage Atlas Data Lakes for your project"},
+ {Name: "alert", Description: "Manage alerts for your project"},
+ {Name: "field", Description: "Manages alert configuration fields for your project"},
+ {Name: "types", Description: "Lists available field types for your alert configurations"},
+ {Name: "ack", Description: "Acknowledges one alert for the specified project"},
+ {Name: "unack", Description: "Unacknowledges one alert for the specified project"},
+ {Name: "global", Description: "Retrieves all the global alerts for the specified Ops Manager project"},
+ {Name: "backup", Description: "Manage cloud backups for your project"},
+ {Name: "snapshot", Description: "Manage cloud backup snapshots for your project"},
+ {Name: "take", Description: "Create a backup snapshot for your project and cluster"},
+ {Name: "restore", Description: "Manage cloud backup restore jobs for your project"},
+ {Name: "event", Description: "Manage events for your organization or project"},
+ {Name: "organization", Description: "Organization operations"},
+ {Name: "project", Description: "Project operations"},
+ {Name: "metric", Description: "Get metrics on the MongoDB process"},
+ {Name: "process", Description: "Get MongoDB process metrics for a given host"},
+ {Name: "disk", Description: "List available disks or disk metrics for a given host"},
+ {Name: "database", Description: "List available databases or database metrics for a given host"},
+ {Name: "performanceadvisor", Description: "Performance Advisor operations"},
+ {Name: "namespace", Description: "Retrieve namespaces for collections experiencing slow queries"},
+ {Name: "slowquerylogs", Description: "Get log lines for slow queries for a specified host"},
+ {Name: "suggestedindexes", Description: "Get suggested indexes for collections experiencing slow queries"},
+ {Name: "slowOT", Description: "Enable or disable management of the slow operation threshold for your cluster"},
+ {Name: "disable", Description: "Disable the application-managed slow operation threshold for your project"},
+ {Name: "log", Description: "Download host logs for your project"},
+ },
+ Options: []core.Option{
+ {Name: "--output", Description: "Return a specific profile"},
+ {Name: "--force", Description: "MongoDB Atlas operations"},
+ {Name: "--accessListIp", Description: "IP address to be allowed to access the deployment"},
+ {Name: "--clusterName", Description: "Name of the cluster"},
+ {Name: "--default", Description: "User's password"},
+ {Name: "--projectId", Description: "Name of your cloud service provider. Valid values are AWS, AZURE, or GCP"},
+ {Name: "--region", Description: "Indicates whether to skip accessing your deployment with MongoDB Shell"},
+ {Name: "--skipSampleData", Description: "Indicates whether to skip loading sample data into your Atlas Cluster"},
+ {Name: "--tier", Description: "Tier for each data-bearing server in the cluster"},
+ {Name: "--username", Description: "Username for authenticating to MongoDB"},
+ {Name: "--limit", Description: "Number of items per page"},
+ {Name: "--backup", Description: "If true, enables Continuous Cloud Backup for your deployment"},
+ {Name: "--biConnector", Description: "If true, enables BI Connector for Atlas on the deployment"},
+ {Name: "--diskSizeGB", Description: "Capacity, in gigabytes, of the host's root volume"},
+ {Name: "--file", Description: "File name to use, optional file with a json cluster configuration"},
+ {Name: "--mdbVersion", Description: "MongoDB version of the cluster to deploy"},
+ {Name: "--members", Description: "Number of members in the replica set"},
+ {Name: "--type", Description: "Watch for a cluster to be available"},
+ {Name: "--collection", Description: "Collection name"},
+ {Name: "--db", Description: "Database name"},
+ {Name: "--key", Description: "Field to be indexed and the type of index in the following format: field:type"},
+ {Name: "--analyzer", Description: "Analyzer to use when creating the index"},
+ {Name: "--dynamic", Description: "Indicates whether the index uses dynamic or static mappings"},
+ {Name: "--field", Description: "Static field specifications"},
+ {Name: "--indexName", Description: "Name of the index"},
+ {Name: "--archiveAfter", Description: "Name of the cluster"},
+ {Name: "--dateField", Description: "Name of an already indexed date field from the documents"},
+ {Name: "--dateFormat", Description: "Database name"},
+ {Name: "--authDB", Description: "Authentication database name"},
+ {Name: "--awsIAMType", Description: "Timestamp in ISO 8601 in UTC after which Atlas deletes the user"},
+ {Name: "--ldapType", Description: "User's password"},
+ {Name: "--scope", Description: "Array of clusters and Atlas Data Lakes that this user has access to"},
+ {Name: "--x509Type", Description: "Delete a database user for your project"},
+ {Name: "--monthsUntilExpiration", Description: "Number of months that the certificate is valid for"},
+ {Name: "--inheritedRole", Description: "List of inherited roles and the database on which the role is granted"},
+ {Name: "--append", Description: "The input action and inheritedRoles that will be appended to the existing role"},
+ {Name: "--comment", Description: "Optional description or comment for the entry"},
+ {Name: "--currentIp", Description: "ISO-8601-formatted UTC date after which Atlas removes the value from the entry"},
+ {Name: "--apiKey", Description: "Datadog API Key, Opsgenie API Key, VictorOps API key"},
+ {Name: "--enabled", Description: "If set to true, the alert configuration is enabled"},
+ },
+ })
+}
diff --git a/commands/ops/mongoimport.go b/commands/ops/mongoimport.go
new file mode 100644
index 0000000..70bcf99
--- /dev/null
+++ b/commands/ops/mongoimport.go
@@ -0,0 +1,41 @@
+package ops
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "mongoimport",
+ Description: "Import data from a JSON, CSV, or TSV file into a MongoDB instance",
+ Options: []core.Option{
+ {Name: "--help", Description: "Returns information on the options and use of mongoimport"},
+ {Name: "--verbose", Description: "Runs mongoimport in a quiet mode that attempts to limit the amount of output"},
+ {Name: "--version", Description: "Returns the mongoimport release number"},
+ {Name: "--config", Description: "Specifies the resolvable URI connection string of the MongoDB deployment"},
+ {Name: "--host", Description: "Specifies the resolvable hostname of the MongoDB deployment"},
+ {Name: "--port", Description: "Default port"},
+ {Name: "--ssl", Description: "Enables connection to a mongod or mongos that has TLS/SSL support enabled"},
+ {Name: "--sslCAFile", Description: "Specifies the .pem file that contains both the TLS/SSL certificate and key"},
+ {Name: "--sslPEMKeyPassword", Description: "Password"},
+ {Name: "--sslCRLFile", Description: "Specifies the .pem file that contains the Certificate Revocation List"},
+ {Name: "--sslAllowInvalidCertificates", Description: "Disables the validation of the hostnames in TLS/SSL certificates"},
+ {Name: "--username", Description: "Specifies the session token for MONGODB-AWS authentication mechanism"},
+ {Name: "--authenticationDatabase", Description: "Database name"},
+ {Name: "--authenticationMechanism", Description: "Default"},
+ {Name: "--gssapiServiceName", Description: "Specifies the name of the database on which to run the mongoimport"},
+ {Name: "--collection", Description: "Specifies the name of the collection to import"},
+ {Name: "--fields", Description: "Comma separated list of fields"},
+ {Name: "--fieldFile", Description: "Ignores empty fields in CSV and TSV exports"},
+ {Name: "--type", Description: "Specifies the file type to import"},
+ {Name: "--file", Description: "Specifies the location and name of a file containing the data to import"},
+ {Name: "--drop", Description: "Treats the first line of the input file as a header line"},
+ {Name: "--useArrayIndexFields", Description: "Insert the documents in the import file"},
+ {Name: "--upsertFields", Description: "Specifies a list of fields for the query portion of the import process"},
+ {Name: "--stopOnError", Description: "Indicates that the import data is in Extended JSON v1 format"},
+ {Name: "--maintainInsertionOrder", Description: "Specifies the number of insertion workers to run concurrently"},
+ {Name: "--writeConcern", Description: "Specifies the write concern for each write operation that mongoimport performs"},
+ {Name: "--bypassDocumentValidation", Description: "Enables mongoimport to bypass document validation during the operation"},
+ },
+ })
+}
diff --git a/commands/ops/mongosh.go b/commands/ops/mongosh.go
new file mode 100644
index 0000000..7d231cd
--- /dev/null
+++ b/commands/ops/mongosh.go
@@ -0,0 +1,25 @@
+package ops
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "mongosh",
+ Description: "Default Connection String; Equivalent to running mongosh without any commands",
+ Options: []core.Option{
+ {Name: "-v", Description: "View your current mongosh version"},
+ {Name: "--shell", Description: "Returns information on the options and use of the MongoDB Shell"},
+ {Name: "--authenticationDatabase", Description: "This option is available only in MongoDB Enterprise"},
+ {Name: "--gssapiServiceName", Description: "Enables retryable writes as the default for sessions in the MongoDB Shell"},
+ {Name: "--authenticationMechanism", Description: "MongoDB TLS SSL certificate authentication"},
+ {Name: "--nodb", Description: "Prevents the shell from connecting to any database instances"},
+ {Name: "--norc", Description: "Prevents the shell from sourcing and evaluating ~/.mongoshrc.js on startup"},
+ {Name: "--quiet", Description: "Default-port"},
+ {Name: "--tls", Description: "Enables connection to a mongod or mongos that has TLS SSL support enabled"},
+ {Name: "--tlsAllowInvalidHostnames", Description: "Disables the specified TLS protocols"},
+ {Name: "--tlsCAFile", Description: "Enables connection to a mongod or mongos that has TLS SSL support enabled"},
+ },
+ })
+}
diff --git a/commands/ops/multipass.go b/commands/ops/multipass.go
new file mode 100644
index 0000000..ef9b661
--- /dev/null
+++ b/commands/ops/multipass.go
@@ -0,0 +1,66 @@
+package ops
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "multipass",
+ Description: "Displays help on commandline options",
+ Subcommands: []core.Subcommand{
+ {Name: "alias", Description: "Create an alias"},
+ {Name: "definition", Description: "Alias definition in the form :"},
+ {Name: "aliases", Description: "List available aliases"},
+ {Name: "delete", Description: "Delete instances"},
+ {Name: "exec", Description: "Run a command on an instance"},
+ {Name: "name", Description: "Name of the instance to run the command on"},
+ {Name: "command", Description: "Command to execute on the instance"},
+ {Name: "find", Description: "Display available images to create instances from"},
+ {Name: "get", Description: "Get a configuration setting"},
+ {Name: "key", Description: "Path to the setting whose configured value should be obtained"},
+ {Name: "help", Description: "Display help about a command"},
+ {Name: "info", Description: "Display information about instances"},
+ {Name: "launch", Description: "Create and start an Ubuntu instance"},
+ {Name: "list", Description: "List all available instances"},
+ {Name: "mount", Description: "Mount a local directory in the instance"},
+ {Name: "source", Description: "Path to the local directory to mount"},
+ {Name: "networks", Description: "List all available networks interfaces"},
+ {Name: "purge", Description: "Purge all deleted instances permanently"},
+ {Name: "recover", Description: "Recover deleted instances"},
+ {Name: "restart", Description: "Restart instances"},
+ {Name: "set", Description: "Set a configuration setting"},
+ {Name: "key=value", Description: "A key-value pair. The key specifies a path to"},
+ {Name: "shell", Description: "Open a shell on a running instance"},
+ {Name: "start", Description: "Start instances"},
+ {Name: "stop", Description: "Stop running instances"},
+ {Name: "suspend", Description: "Suspend running instances"},
+ {Name: "transfer", Description: "Transfer files between the host and instances"},
+ {Name: "destination", Description: "The destination path, prefixed with for paths inside"},
+ {Name: "umount", Description: "Unmount a directory from an instance"},
+ {Name: "unalias", Description: "Remove an alias"},
+ {Name: "version", Description: "Show version details"},
+ },
+ Options: []core.Option{
+ {Name: "-h", Description: "Displays help on commandline options"},
+ {Name: "--help-all", Description: "Displays help including Qt specific options"},
+ {Name: "-v", Description: "Increase logging verbosity. Repeat the 'v' in the short"},
+ {Name: "--format", Description: "Output list in the requested format."},
+ {Name: "--timeout", Description: "Maximum time, in seconds, to wait for the command to"},
+ {Name: "--all", Description: "Delete all instances"},
+ {Name: "-p", Description: "Purge instances immediately"},
+ {Name: "--show-unsupported", Description: "Show unsupported cloud images as well"},
+ {Name: "--raw", Description: "Output in raw format. For now, this affects only the"},
+ {Name: "-c", Description: "Number of CPUs to allocate. Minimum: 1, default: 1"},
+ {Name: "-d", Description: "Disk space to allocate. Positive integers, in bytes, or"},
+ {Name: "-m", Description: "Amount of memory to allocate. Positive integers, in"},
+ {Name: "-n", Description: "Name for the instance. If it is 'primary' (the"},
+ {Name: "--cloud-init", Description: "Path to a user-data cloud-init configuration, or '-' for"},
+ {Name: "--network", Description: "Add a network interface to the instance, where is"},
+ {Name: "--bridged", Description: "Adds one `--network bridged` network"},
+ {Name: "-g", Description: "A mapping of group IDs for use in the mount."},
+ {Name: "-u", Description: "A mapping of user IDs for use in the mount."},
+ {Name: "-t", Description: "Time from now, in minutes, to delay shutdown of the instance"},
+ },
+ })
+}
diff --git a/commands/ops/mysql.go b/commands/ops/mysql.go
new file mode 100644
index 0000000..203e2bf
--- /dev/null
+++ b/commands/ops/mysql.go
@@ -0,0 +1,54 @@
+package ops
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "mysql",
+ Description: "Mysql is a terminal-based front-end to MySQL",
+ Options: []core.Option{
+ {Name: "--auto-rehash", Description: "Enable automatic rehashing"},
+ {Name: "--auto-vertical-output", Description: "Enable automatic vertical result set display"},
+ {Name: "--batch", Description: "Do not use history file"},
+ {Name: "--binary-as-hex", Description: "Display binary values in hexadecimal notation"},
+ {Name: "--binary-mode", Description: "Disable \\\\r\\\\n - to - \\\\n translation and treatment of \\\\0 as end-of-query"},
+ {Name: "--bind-address", Description: "Use specified network interface to connect to MySQL Server"},
+ {Name: "--character-sets-dir", Description: "Directory where character sets are installed"},
+ {Name: "--column-names", Description: "Write column names in results"},
+ {Name: "--column-type-info", Description: "Display result set metadata"},
+ {Name: "--comments", Description: "Whether to retain or strip comments in statements sent to the server"},
+ {Name: "--compress", Description: "Compress all information sent between client and server"},
+ {Name: "--compression-algorithms", Description: "Permitted compression algorithms for connections to server"},
+ {Name: "--connect-expired-password", Description: "Indicate to server that client can handle expired-password sandbox mode"},
+ {Name: "--connect-timeout", Description: "Number of seconds before connection timeout"},
+ {Name: "-D", Description: "The database to use"},
+ {Name: "--debug", Description: "Write debugging log; supported only if MySQL was built with debugging support"},
+ {Name: "--debug-check", Description: "Print debugging information when program exits"},
+ {Name: "-T", Description: "Print debugging information, memory, and CPU statistics when program exits"},
+ {Name: "--default-auth", Description: "Authentication plugin to use"},
+ {Name: "--default-character-set", Description: "Specify default character set"},
+ {Name: "--defaults-extra-file", Description: "Read named option file in addition to usual option files"},
+ {Name: "--defaults-file", Description: "Read only named option file"},
+ {Name: "--defaults-group-suffix", Description: "Option group suffix value"},
+ {Name: "--delimiter", Description: "Set the statement delimiter"},
+ {Name: "--disable-named-commands", Description: "Use DNS SRV lookup for host information"},
+ {Name: "--enable-cleartext-plugin", Description: "Enable cleartext authentication plugin"},
+ {Name: "-e", Description: "Execute the statement and quit"},
+ {Name: "-f", Description: "Continue even if an SQL error occurs"},
+ {Name: "--get-server-public-key", Description: "Request RSA public key from server"},
+ {Name: "--help", Description: "Display help message and exit"},
+ {Name: "--histignore", Description: "Patterns specifying which statements to ignore for logging"},
+ {Name: "-h", Description: "Host on which MySQL server is located"},
+ {Name: "-H", Description: "Produce HTML output"},
+ {Name: "-i", Description: "Ignore spaces after function names"},
+ {Name: "--init-command", Description: "SQL statement to execute after connecting"},
+ {Name: "--line-numbers", Description: "Write line numbers for errors"},
+ {Name: "--load-data-local-dir", Description: "Directory for files named in LOAD DATA LOCAL statements"},
+ {Name: "--local-infile", Description: "Enable or disable for LOCAL capability for LOAD DATA"},
+ {Name: "--login-path", Description: "Read login path options from .mylogin.cnf"},
+ {Name: "--max-allowed-packet", Description: "Maximum packet length to send to or receive from server"},
+ },
+ })
+}
diff --git a/commands/ops/netlify.go b/commands/ops/netlify.go
new file mode 100644
index 0000000..f3ad674
--- /dev/null
+++ b/commands/ops/netlify.go
@@ -0,0 +1,57 @@
+package ops
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "netlify",
+ Description: "Print debugging information",
+ Subcommands: []core.Subcommand{
+ {Name: "help", Description: "List available sub-commands"},
+ {Name: "subcommand", Description: "The command to display help for"},
+ },
+ Options: []core.Option{
+ {Name: "--debug", Description: "Print debugging information"},
+ {Name: "--httpProxy", Description: "Proxy server address to route requests through"},
+ {Name: "-f", Description: "Delete without prompting (useful for CI)"},
+ {Name: "--json", Description: "Output return values as JSON"},
+ {Name: "-d", Description: "Data to use"},
+ {Name: "--list", Description: "List out available API methods"},
+ {Name: "-o", Description: "Disables any features that require network access"},
+ {Name: "--context", Description: "Build context"},
+ {Name: "--dry", Description: "Dry run: show instructions without running them"},
+ {Name: "-s", Description: "Name of shell (bash|fish|zsh)"},
+ {Name: "-a", Description: "Netlify auth token to deploy with"},
+ {Name: "-b", Description: "Specify a folder to deploy"},
+ {Name: "-m", Description: "A short message to include in the deploy log"},
+ {Name: "-p", Description: "Deploy to production"},
+ {Name: "--alias", Description: "Run build command before deploying"},
+ {Name: "--prodIfUnlocked", Description: "Deploy to production if unlocked, create a draft otherwise"},
+ {Name: "--skip-functions-cache", Description: "Timeout to wait for deployment to finish"},
+ {Name: "-c", Description: "Command to run"},
+ {Name: "-l", Description: "Start a public live session"},
+ {Name: "--framework", Description: "Framework to use. Defaults to #auto which automatically detects a framework"},
+ {Name: "--targetPort", Description: "Port of target app server"},
+ {Name: "-H", Description: "Specifies a custom request method [default: GET]"},
+ {Name: "-B", Description: "Path to the publish directory"},
+ {Name: "-r", Description: "Replace all existing variables instead of merging them with the current ones"},
+ {Name: "-n", Description: "Function name"},
+ {Name: "-u", Description: "Pull template from URL"},
+ {Name: "-q", Description: "Querystring to add to your function invocation"},
+ {Name: "--identity", Description: "Simulate Netlify Identity authentication JWT"},
+ {Name: "--no-identity", Description: "Affirm unauthenticated request"},
+ {Name: "--force", Description: "Reinitialize CI hooks if the linked site is already configured to use CI"},
+ {Name: "--gitRemoteName", Description: "Link a local repo or project folder to an existing site on Netlify"},
+ {Name: "--name", Description: "Name of site to link to"},
+ {Name: "--auth", Description: "Netlify auth token"},
+ {Name: "--new", Description: "Login to new Netlify account"},
+ {Name: "--silent", Description: "Silence CLI output"},
+ {Name: "--admin", Description: "Open Netlify site"},
+ {Name: "--site", Description: "Open site"},
+ {Name: "--telemetry-disable", Description: "Opt out of sharing usage data"},
+ {Name: "--telemetry-enable", Description: "Allow your usage to help shape development"},
+ },
+ })
+}
diff --git a/commands/ops/newman.go b/commands/ops/newman.go
new file mode 100644
index 0000000..c9437c6
--- /dev/null
+++ b/commands/ops/newman.go
@@ -0,0 +1,49 @@
+package ops
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "newman",
+ Description: "Newman is a command-line collection runner for Postman",
+ Subcommands: []core.Subcommand{
+ {Name: "run", Description: "Initiate a Postman Collection run from a given URL or path"},
+ {Name: "help", Description: "Display help for command"},
+ },
+ Options: []core.Option{
+ {Name: "-e", Description: "Specify a URL or path to a Postman Environment"},
+ {Name: "-g", Description: "Specify a URL or path to a file containing Postman Globals"},
+ {Name: "-r", Description: "Specify the reporters to use for this run"},
+ {Name: "-n", Description: "Define the number of iterations to run"},
+ {Name: "-d", Description: "Specify a data file to use for iterations (either JSON or CSV)"},
+ {Name: "--folder", Description: "Exports the final environment to a file after completing the run"},
+ {Name: "--export-globals", Description: "Exports the final globals to a file after completing the run"},
+ {Name: "--export-collection", Description: "Exports the executed collection to a file after completing the run"},
+ {Name: "--postman-api-key", Description: "API Key used to load the resources from the Postman API"},
+ {Name: "--bail", Description: "Prevents Newman from automatically following 3XX redirect responses"},
+ {Name: "-x", Description: "Specify whether or not to override the default exit code for the current run"},
+ {Name: "--silent", Description: "Prevents Newman from showing output to CLI"},
+ {Name: "--disable-unicode", Description: "Forces Unicode compliant symbols to be replaced by their plain text equivalents"},
+ {Name: "--color", Description: "Enable/Disable colored output (auto|on|off)"},
+ {Name: "--delay-request", Description: "Specify the extent of delay between requests (milliseconds)"},
+ {Name: "--timeout", Description: "Specify a timeout for collection run (milliseconds)"},
+ {Name: "--timeout-request", Description: "Specify a timeout for requests (milliseconds)"},
+ {Name: "--timeout-script", Description: "Specify a timeout for scripts (milliseconds)"},
+ {Name: "--working-dir", Description: "Specify the path to the working directory"},
+ {Name: "--no-insecure-file-read", Description: "Prevents reading the files situated outside of the working directory"},
+ {Name: "-k", Description: "Disables SSL validations"},
+ {Name: "--ssl-client-cert-list", Description: "Specify the path to a client certificates configurations (JSON)"},
+ {Name: "--ssl-client-cert", Description: "Specify the path to a client certificate (PEM)"},
+ {Name: "--ssl-client-key", Description: "Specify the path to a client certificate private key"},
+ {Name: "--ssl-client-passphrase", Description: "Specify the client certificate passphrase (for protected key)"},
+ {Name: "--ssl-extra-ca-certs", Description: "Specify additionally trusted CA certificates (PEM)"},
+ {Name: "--cookie-jar", Description: "Specify the path to a custom cookie jar (serialized tough-cookie JSON)"},
+ {Name: "--export-cookie-jar", Description: "Exports the cookie jar to a file after completing the run"},
+ {Name: "--verbose", Description: "Show detailed information of collection run and each request sent"},
+ {Name: "-h", Description: "Display help for command"},
+ {Name: "-v", Description: "Output the version number"},
+ },
+ })
+}
diff --git a/commands/ops/nginx.go b/commands/ops/nginx.go
new file mode 100644
index 0000000..7745f46
--- /dev/null
+++ b/commands/ops/nginx.go
@@ -0,0 +1,23 @@
+package ops
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "nginx",
+ Description: "Nginx (pronounced",
+ Options: []core.Option{
+ {Name: "-c", Description: "Use an alternative configuration file"},
+ {Name: "-e", Description: "Set global configuration directives"},
+ {Name: "-p", Description: "Set the prefix path. The default value is %%PREFIX%%"},
+ {Name: "-q", Description: "Suppress non-error messages during configuration testing"},
+ {Name: "-T", Description: "Same as -t, but additionally dump configuration files to standard output"},
+ {Name: "-t", Description: "Print the nginx version, compiler version, and configure script parameters"},
+ {Name: "-v", Description: "Print the nginx version"},
+ {Name: "-?", Description: "Print help"},
+ {Name: "-s", Description: "Sends SIGTERM"},
+ },
+ })
+}
diff --git a/commands/ops/ngrok.go b/commands/ops/ngrok.go
new file mode 100644
index 0000000..69bbb79
--- /dev/null
+++ b/commands/ops/ngrok.go
@@ -0,0 +1,31 @@
+package ops
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "ngrok",
+ Description: "Path to log file,",
+ Subcommands: []core.Subcommand{
+ {Name: "help", Description: "Shows a list of commands or help for one command"},
+ {Name: "authtoken", Description: "Save authtoken to configuration file"},
+ {Name: "credits", Description: "Prints author and licensing information"},
+ {Name: "http", Description: "Start an HTTP tunnel"},
+ {Name: "start", Description: "Start tunnels by name from the configuration file"},
+ {Name: "tcp", Description: "Start a TCP tunnel"},
+ {Name: "tls", Description: "Start a TLS tunnel"},
+ {Name: "update", Description: "Update ngrok to the latest version"},
+ {Name: "version", Description: "Print the version string"},
+ {Name: "8080", Description: "Port"},
+ },
+ Options: []core.Option{
+ {Name: "--all", Description: "Start all tunnels in the configuration file"},
+ {Name: "--none", Description: "Start running no tunnels"},
+ {Name: "--remote-addr", Description: "Bind remote address (requires you reserve an address)"},
+ {Name: "--client-cas", Description: "Update ngrok to the latest version"},
+ {Name: "--channel", Description: "Update channel (stable, beta)"},
+ },
+ })
+}
diff --git a/commands/ops/nvm.go b/commands/ops/nvm.go
new file mode 100644
index 0000000..a81a1da
--- /dev/null
+++ b/commands/ops/nvm.go
@@ -0,0 +1,42 @@
+package ops
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "nvm",
+ Description: "Node version",
+ Subcommands: []core.Subcommand{
+ {Name: "uninstall", Description: "Uninstall a version"},
+ {Name: "use", Description: "Modify PATH to use . Uses .nvmrc if available and version is omitted"},
+ {Name: "exec", Description: "Run on . Uses .nvmrc if available and version is omitted"},
+ {Name: "current", Description: "Display currently activated version of Node"},
+ {Name: "ls", Description: "List installed versions, matching a given if provided"},
+ {Name: "version", Description: "Resolve the given description to a single local version"},
+ {Name: "version-remote", Description: "Resolve the given description to a single remote version"},
+ {Name: "deactivate", Description: "Undo effects of `nvm` on current shell"},
+ {Name: "pattern or name", Description: "Pattern or name"},
+ {Name: "unalias", Description: "Deletes the alias named "},
+ {Name: "install-latest-npm", Description: "Attempt to upgrade to the latest working `npm` on the current node version"},
+ {Name: "reinstall-packages", Description: "Reinstall global `npm` packages contained in to current version"},
+ {Name: "unload", Description: "Unload `nvm` from shell"},
+ {Name: "dir", Description: "Display path to the cache directory for nvm"},
+ {Name: "clear", Description: "Empty cache directory for nvm"},
+ },
+ Options: []core.Option{
+ {Name: "--no-colors", Description: "Suppress colored output"},
+ {Name: "--no-alias", Description: "Suppress `nvm alias` output"},
+ {Name: "--silent", Description: "Silences stdout/stderr output"},
+ {Name: "--lts", Description: "Uses automatic LTS (long-term support) alias `lts/*`, if available"},
+ {Name: "-s", Description: "Skip binary download, install from source only"},
+ {Name: "--reinstall-packages-from", Description: "When installing, reinstall packages installed in "},
+ {Name: "--skip-default-packages", Description: "When installing, skip the default-packages file if it exists"},
+ {Name: "--latest-npm", Description: "Disable the progress bar on any downloads"},
+ {Name: "--alias", Description: "Uninstall a version"},
+ {Name: "--help", Description: "Show help page"},
+ {Name: "--version", Description: "Print out the installed version of nvm"},
+ },
+ })
+}
diff --git a/commands/ops/oci.go b/commands/ops/oci.go
new file mode 100644
index 0000000..6c1dc07
--- /dev/null
+++ b/commands/ops/oci.go
@@ -0,0 +1,70 @@
+package ops
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "oci",
+ Description: "Oracle Cloud Infrastructure CLI",
+ Subcommands: []core.Subcommand{
+ {Name: "compute", Description: "Manage Compute resources like instances and images"},
+ {Name: "instance", Description: "Manage Compute instances"},
+ {Name: "launch", Description: "Launch a new compute instance"},
+ {Name: "terminate", Description: "Terminate a compute instance"},
+ {Name: "start", Description: "Start a stopped instance"},
+ {Name: "stop", Description: "Stop a running instance"},
+ {Name: "image", Description: "Manage Custom Images"},
+ {Name: "list", Description: "List available compute images"},
+ {Name: "network", Description: "Manage Virtual Cloud Network resources"},
+ {Name: "vcn", Description: "Manage Virtual Cloud Networks"},
+ {Name: "create", Description: "Create a new VCN"},
+ {Name: "db", Description: "Manage Database resources"},
+ {Name: "autonomous-database", Description: "Manage Autonomous Databases"},
+ {Name: "os", Description: "Object Storage commands"},
+ {Name: "bucket", Description: "Manage buckets"},
+ {Name: "iam", Description: "Manage Identity and Access Management resources"},
+ {Name: "user", Description: "Manage users"},
+ {Name: "policy", Description: "Manage IAM policies"},
+ {Name: "group", Description: "Manage IAM groups"},
+ {Name: "compartment", Description: "Manage compartments"},
+ {Name: "kms", Description: "Manage Key Management resources"},
+ {Name: "key", Description: "Manage encryption keys"},
+ {Name: "monitoring", Description: "Manage Monitoring and Alerts"},
+ {Name: "alarm", Description: "Manage monitoring alarms"},
+ {Name: "budget", Description: "Manage Budgets and Cost Controls"},
+ },
+ Options: []core.Option{
+ {Name: "--availability-domain", Description: "The availability domain of the instance"},
+ {Name: "--compartment-id", Description: "The OCID of the compartment"},
+ {Name: "--shape", Description: "The shape of the instance"},
+ {Name: "--instance-id", Description: "The OCID of the instance"},
+ {Name: "--cidr-block", Description: "The CIDR block of the VCN"},
+ {Name: "--db-name", Description: "The database name"},
+ {Name: "--cpu-core-count", Description: "Number of CPU cores"},
+ {Name: "--name", Description: "The name of the bucket"},
+ {Name: "--description", Description: "Description for the user"},
+ {Name: "--statements", Description: "Policy statements"},
+ {Name: "--display-name", Description: "Display name of the key"},
+ {Name: "--key-shape", Description: "Shape of the key"},
+ {Name: "--metric-compartment-id", Description: "Compartment OCID containing the metric"},
+ {Name: "--amount", Description: "The amount for the budget"},
+ {Name: "--reset-period", Description: "The reset period for the budget"},
+ {Name: "--help", Description: "Show help for oci"},
+ {Name: "--profile", Description: "The profile to load from the config file"},
+ {Name: "--config-file", Description: "The path to the config file"},
+ {Name: "--region", Description: "The region to make calls against"},
+ {Name: "--output", Description: "The output format"},
+ {Name: "--debug", Description: "Turn on debug logging"},
+ {Name: "--auth", Description: "The type of auth to use"},
+ {Name: "--key-file", Description: "The path to the private key file"},
+ {Name: "--wait-for-state", Description: "Wait until resource reaches a given state"},
+ {Name: "--wait-interval-seconds", Description: "Check interval seconds for --wait-for-state"},
+ {Name: "--max-wait-seconds", Description: "Maximum time to wait"},
+ {Name: "--raw-output", Description: "Output raw response from OCI API"},
+ {Name: "--output-format", Description: "The output format for commands"},
+ {Name: "--query", Description: "JMESPath query to filter the output"},
+ },
+ })
+}
diff --git a/commands/ops/okteto.go b/commands/ops/okteto.go
new file mode 100644
index 0000000..6990281
--- /dev/null
+++ b/commands/ops/okteto.go
@@ -0,0 +1,85 @@
+package ops
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "okteto",
+ Description: "Context",
+ Subcommands: []core.Subcommand{
+ {Name: "analytics", Description: "Enable / Disable analytics"},
+ {Name: "build", Description: "Build (and optionally push) a Docker image"},
+ {Name: "completion", Description: "Generate the autocompletion script for the specified shell"},
+ {Name: "bash", Description: "Generate the autocompletion script for bash"},
+ {Name: "fish", Description: "Generate the autocompletion script for fish"},
+ {Name: "powershell", Description: "Generate the autocompletion script for powershell"},
+ {Name: "zsh", Description: "Generate the autocompletion script for zsh"},
+ {Name: "ctx", Description: "Set the default context"},
+ {Name: "delete", Description: "Delete a context"},
+ {Name: "ls", Description: "List available contexts"},
+ {Name: "show", Description: "Print the current context"},
+ {Name: "use", Description: "Set the default context"},
+ {Name: "doctor", Description: "Generate a zip file with the okteto logs"},
+ {Name: "down", Description: "Deactivate your development container"},
+ {Name: "exec", Description: "Execute a command in your development container"},
+ {Name: "init", Description: "Automatically generate your okteto manifest file"},
+ {Name: "kubeconfig", Description: "Download credentials for the Kubernetes cluster selected via 'okteto context'"},
+ {Name: "ns", Description: "Configure the current namespace of the okteto context"},
+ {Name: "create", Description: "Create a namespace"},
+ {Name: "pipeline", Description: "Pipeline management commands"},
+ {Name: "deploy", Description: "Deploy an okteto pipeline"},
+ {Name: "destroy", Description: "Destroy an okteto pipeline"},
+ {Name: "preview", Description: "Preview environment management commands"},
+ {Name: "endpoints", Description: "Show endpoints for a preview environment"},
+ {Name: "list", Description: "List all preview environments"},
+ {Name: "push", Description: "Build, push and redeploy source code to the target app"},
+ {Name: "restart", Description: "Restart the deployments listed in the services field of the okteto manifest"},
+ {Name: "stack", Description: "Stack management commands"},
+ {Name: "status", Description: "Status of the synchronization process"},
+ {Name: "up", Description: "Activate your development container"},
+ {Name: "update", Description: "Update okteto version"},
+ {Name: "version", Description: "View the version of the okteto binary"},
+ {Name: "help", Description: "Help about any command"},
+ },
+ Options: []core.Option{
+ {Name: "--loglevel", Description: "Amount of information outputted (debug, info, warn, error)"},
+ {Name: "--output", Description: "Output format (tty, plain, json)"},
+ {Name: "--disable", Description: "Disable analytics"},
+ {Name: "--help", Description: "Help for analytics"},
+ {Name: "--build-arg", Description: "Set build-time variables"},
+ {Name: "--cache-from", Description: "Cache source images"},
+ {Name: "--file", Description: "Name of the Dockerfile (Default is 'PATH/Dockerfile')"},
+ {Name: "--namespace", Description: "Do not use cache when building the image"},
+ {Name: "--progress", Description: "Show plain/tty build output"},
+ {Name: "--secret", Description: "Secret files exposed to the build. Format: id=mysecret,src=/local/secret"},
+ {Name: "--tag", Description: "Name and optionally a tag in the 'name:tag' format (it is automatically pushed)"},
+ {Name: "--target", Description: "Set the target build stage to build"},
+ {Name: "--no-descriptions", Description: "Disable completion descriptions"},
+ {Name: "--builder", Description: "Url of the builder service"},
+ {Name: "--okteto", Description: "Only shows okteto cluster options"},
+ {Name: "--token", Description: "API token for authentication"},
+ {Name: "--context", Description: "Context where the up command was executing"},
+ {Name: "--volumes", Description: "Remove persistent volume"},
+ {Name: "--overwrite", Description: "Overwrite existing manifest file"},
+ {Name: "--members", Description: "Members of the namespace, it can the username or email"},
+ {Name: "--personal", Description: "Load personal account"},
+ {Name: "--branch", Description: "The branch to deploy (defaults to the current branch)"},
+ {Name: "--repository", Description: "The repository to deploy (defaults to the current repository)"},
+ {Name: "--skip-if-exists", Description: "Set a pipeline variable (can be set more than once)"},
+ {Name: "--wait", Description: "Wait until the pipeline finishes (defaults to false)"},
+ {Name: "--name", Description: "Name of the pipeline (defaults to the git config name)"},
+ {Name: "--timeout", Description: "Destroy persistent volumes created by the pipeline (defaults to false)"},
+ {Name: "--scope", Description: "The URL of the original pull/merge request"},
+ {Name: "--deploy", Description: "Create deployment when the app doesn't exist in a namespace"},
+ {Name: "--no-cache", Description: "Do not use cache when building the image"},
+ {Name: "--build", Description: "Build images before starting any Stack service"},
+ {Name: "--info", Description: "Show syncthing links for troubleshooting the synchronization service"},
+ {Name: "--watch", Description: "Watch for changes"},
+ {Name: "--pull", Description: "Force dev image pull"},
+ {Name: "--remote", Description: "Configures remote execution on the specified port"},
+ {Name: "--reset", Description: "Reset the file synchronization database"},
+ },
+ })
+}
diff --git a/commands/ops/op.go b/commands/ops/op.go
new file mode 100644
index 0000000..41338fd
--- /dev/null
+++ b/commands/ops/op.go
@@ -0,0 +1,88 @@
+package ops
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "op",
+ Description: "Official 1Password CLI",
+ Subcommands: []core.Subcommand{
+ {Name: "account", Description: "Manage your locally configured 1Password accounts"},
+ {Name: "add", Description: "Add an account to sign in to for the first time"},
+ {Name: "get", Description: "Get details about your account"},
+ {Name: "list", Description: "List users and accounts set up on this device"},
+ {Name: "forget", Description: "Remove a 1Password account from this device"},
+ {Name: "connect", Description: "Manage Connect instances and Connect tokens in your 1Password account"},
+ {Name: "group", Description: "Manage group access to Secrets Automation"},
+ {Name: "revoke", Description: "Revoke a group's access to manage Secrets Automation"},
+ {Name: "server", Description: "Manage Connect servers"},
+ {Name: "create", Description: "Set up a Connect server"},
+ {Name: "token", Description: "Manage Connect tokens"},
+ {Name: "vault", Description: "Manage connect server vault access"},
+ {Name: "document", Description: "Perform CRUD operations on Document items in your vaults"},
+ {Name: "edit", Description: "Edit a document item"},
+ {Name: "delete", Description: "Delete or archive a document item"},
+ {Name: "events-api", Description: "Manage Events API integrations in your 1Password account"},
+ {Name: "user", Description: "Manage users in groups"},
+ {Name: "item", Description: "Perform CRUD operations on the 1Password items in your vaults"},
+ {Name: "share", Description: "Share an item"},
+ {Name: "provision", Description: "Provision a user in the authenticated account"},
+ {Name: "confirm", Description: "Confirm a user"},
+ {Name: "suspend", Description: "Suspend a user"},
+ {Name: "reactivate", Description: "Reactivate a suspended user"},
+ {Name: "grant", Description: "Grant a group permissions to a vault"},
+ {Name: "completion", Description: "Generate shell completion information"},
+ {Name: "inject", Description: "Inject secrets into a config file"},
+ {Name: "read", Description: "Read a secret using the secrets reference syntax"},
+ {Name: "run", Description: "Pass secrets as environment variables to a process"},
+ {Name: "signin", Description: "Sign in to a 1Password account"},
+ {Name: "signout", Description: "Sign out of a 1Password account"},
+ {Name: "update", Description: "Check for and download updates"},
+ {Name: "whoami", Description: "Get information about a signed-in account"},
+ },
+ Options: []core.Option{
+ {Name: "--address", Description: "The sign-in address for your account"},
+ {Name: "--email", Description: "The email address associated with your account"},
+ {Name: "--raw", Description: "Only return the session token"},
+ {Name: "--shorthand", Description: "Set the short account name"},
+ {Name: "--all", Description: "Forget all authenticated accounts"},
+ {Name: "--all-servers", Description: "Grant access to all current and future servers in the authenticated account"},
+ {Name: "--group", Description: "The group to receive access"},
+ {Name: "--expires-in", Description: "Set how long the Connect token is valid for in (s)econds, (m)inutes, or (h)ours"},
+ {Name: "--server", Description: "Issue a token for this server"},
+ {Name: "--name", Description: "Change the token's name"},
+ {Name: "--file-name", Description: "Set the file's name"},
+ {Name: "--tags", Description: "Set the tags to the specified (comma-separated) values"},
+ {Name: "--title", Description: "Set the document item's title"},
+ {Name: "--include-archive", Description: "Save the document to the file path instead of stdout"},
+ {Name: "--archive", Description: "Move the document to the Archive"},
+ {Name: "--role", Description: "Specify the user's role as a member or manager. Default: member"},
+ {Name: "--description", Description: "Set the group's description"},
+ {Name: "--user", Description: "List groups that a user belongs to"},
+ {Name: "-f", Description: "Do not prompt for confirmation"},
+ {Name: "--category", Description: "Set the item's category"},
+ {Name: "--dry-run", Description: "Perform a dry run of the command and output a preview of the resulting item"},
+ {Name: "--generate-password", Description: "Give the item a randomly generated password"},
+ {Name: "--template", Description: "Specify the filepath to read an item template from"},
+ {Name: "--url", Description: "Set the URL associated with the item"},
+ {Name: "--fields", Description: "Output the primary one-time password for this item"},
+ {Name: "--share-link", Description: "Get a shareable link for the item"},
+ {Name: "--categories", Description: "Only list items in these categories (comma-separated)"},
+ {Name: "--emails", Description: "Email addresses to share with"},
+ {Name: "--expiry", Description: "Look for the item in this vault"},
+ {Name: "--language", Description: "Confirm a user"},
+ {Name: "--fingerprint", Description: "Get the user's public key fingerprint"},
+ {Name: "--me", Description: "Get the authenticated user's details"},
+ {Name: "--deauthorize-devices-after", Description: "Deauthorize the user's devices after a time (rounded down to seconds)"},
+ {Name: "--no-input", Description: "Do not prompt for input on interactive terminal"},
+ {Name: "--permissions", Description: "The permissions to grant to the group"},
+ {Name: "--allow-admins-to-manage", Description: "Set whether admins can manage the vault. Default: false"},
+ {Name: "--icon", Description: "Change the vault's icon"},
+ {Name: "--travel-mode", Description: "Read from stdin"},
+ {Name: "--file-mode", Description: "Do not prompt for confirmation"},
+ {Name: "-n", Description: "Do not print a new line after the secret"},
+ },
+ })
+}
diff --git a/commands/ops/opa.go b/commands/ops/opa.go
new file mode 100644
index 0000000..e1c23cb
--- /dev/null
+++ b/commands/ops/opa.go
@@ -0,0 +1,75 @@
+package ops
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "opa",
+ Description: "Open Policy Agent (OPA)",
+ Subcommands: []core.Subcommand{
+ {Name: "bench", Description: "Benchmark a Rego query"},
+ {Name: "build", Description: "Build an OPA bundle"},
+ {Name: "check", Description: "Check Rego source files"},
+ {Name: "completion", Description: "Generate the autocompletion script for the specified shell"},
+ {Name: "bash", Description: "Generate the autocompletion script for bash"},
+ {Name: "fish", Description: "Generate the autocompletion script for fish"},
+ {Name: "powershell", Description: "Generate the autocompletion script for powershell"},
+ {Name: "zsh", Description: "Generate the autocompletion script for zsh"},
+ {Name: "deps", Description: "Analyze Rego query dependencies"},
+ {Name: "eval", Description: "Evaluate a Rego query"},
+ {Name: "exec", Description: "Execute against input files"},
+ {Name: "fmt", Description: "Format Rego source files"},
+ {Name: "inspect", Description: "Inspect OPA bundle(s)"},
+ {Name: "parse", Description: "Parse Rego source file"},
+ {Name: "run", Description: "Start OPA in interactive or server mode"},
+ {Name: "sign", Description: "Generate an OPA bundle signature"},
+ {Name: "test", Description: "Execute Rego test cases"},
+ {Name: "version", Description: "Print the version of OPA"},
+ {Name: "help", Description: "Help about any command"},
+ },
+ Options: []core.Option{
+ {Name: "--benchmem", Description: "Report memory allocations with benchmark results"},
+ {Name: "--bundle", Description: "Set bundle file(s) or directory path(s). This flag can be repeated"},
+ {Name: "--count", Description: "Number of times to repeat each benchmark"},
+ {Name: "--data", Description: "Set policy or data file(s). This flag can be repeated"},
+ {Name: "--fail", Description: "Exits with non-zero exit code on undefined/empty result and errors"},
+ {Name: "--format", Description: "Set output format"},
+ {Name: "--ignore", Description: "Set query import(s). This flag can be repeated"},
+ {Name: "--input", Description: "Set input file path"},
+ {Name: "--metrics", Description: "Report query performance metrics"},
+ {Name: "--package", Description: "Set query package"},
+ {Name: "--partial", Description: "Perform partial evaluation"},
+ {Name: "--schema", Description: "Set schema file path or directory path"},
+ {Name: "--stdin", Description: "Read query from stdin"},
+ {Name: "--stdin-input", Description: "Read input document from stdin"},
+ {Name: "--target", Description: "Set the runtime to exercise"},
+ {Name: "--unknowns", Description: "Set paths to treat as unknown during partial evaluation"},
+ {Name: "--help", Description: "Help for bench"},
+ {Name: "--capabilities", Description: "Set capabilities.json file path"},
+ {Name: "--claims-file", Description: "Enable debug output"},
+ {Name: "--entrypoint", Description: "Set slash separated entrypoint path"},
+ {Name: "--exclude-files-verify", Description: "Set file names to exclude during bundle verification"},
+ {Name: "--output", Description: "Set the output filename"},
+ {Name: "--revision", Description: "Set output bundle revision"},
+ {Name: "--scope", Description: "Scope to use for bundle signature verification"},
+ {Name: "--signing-alg", Description: "Name of the signing algorithm"},
+ {Name: "--signing-key", Description: "Set the output bundle target type"},
+ {Name: "--verification-key", Description: "Name assigned to the verification key used for bundle verification"},
+ {Name: "--strict", Description: "Enable compiler strict mode"},
+ {Name: "--no-descriptions", Description: "Disable completion descriptions"},
+ {Name: "--coverage", Description: "Report coverage"},
+ {Name: "--disable-early-exit", Description: "Disable 'early exit' optimizations"},
+ {Name: "--disable-indexing", Description: "Disable indexing optimizations"},
+ {Name: "--disable-inlining", Description: "Set paths of documents to exclude from inlining"},
+ {Name: "--explain", Description: "Enable query explanations"},
+ {Name: "--fail-defined", Description: "Exits with non-zero exit code on defined/non-empty result and errors"},
+ {Name: "--instrument", Description: "Enable query instrumentation metrics (implies --metrics)"},
+ {Name: "--pretty-limit", Description: "Set limit after which pretty output gets truncated"},
+ {Name: "--profile", Description: "Perform expression profiling"},
+ {Name: "--profile-limit", Description: "Set number of profiling results to show"},
+ {Name: "--profile-sort", Description: "Set sort order of expression profiler results"},
+ },
+ })
+}
diff --git a/commands/ops/osqueryi.go b/commands/ops/osqueryi.go
new file mode 100644
index 0000000..3cb365f
--- /dev/null
+++ b/commands/ops/osqueryi.go
@@ -0,0 +1,54 @@
+package ops
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "osqueryi",
+ Description: "Your OS as a high-performance relational database",
+ Options: []core.Option{
+ {Name: "--flagfile", Description: "Line-delimited file of additional flags"},
+ {Name: "--D", Description: "Run as a daemon process"},
+ {Name: "--S", Description: "Run as a shell process"},
+ {Name: "--alarm_timeout", Description: "Seconds to allow for shutdown. Minimum is 10"},
+ {Name: "--carver_block_size", Description: "Size of blocks used for POSTing data back to remote endpoints"},
+ {Name: "--carver_compression", Description: "Compress archives using zstd prior to upload (default false)"},
+ {Name: "--carver_continue_endpoint", Description: "TLS/HTTPS endpoint that receives carved content after session creation"},
+ {Name: "--carver_disable_function", Description: "Disable the osquery file carver function (default true)"},
+ {Name: "--carver_expiry", Description: "Seconds to store successful carve result metadata (in carves table)"},
+ {Name: "--carver_start_endpoint", Description: "TLS/HTTPS init endpoint for forensic carver"},
+ {Name: "--config_accelerated_refresh", Description: "Interval to wait if reading a configuration fails"},
+ {Name: "--config_check", Description: "Check the format of an osquery config and exit"},
+ {Name: "--config_dump", Description: "Dump the contents of the configuration, then exit"},
+ {Name: "--config_enable_backup", Description: "Backup config and use it when refresh fails"},
+ {Name: "--config_path", Description: "Path to JSON config file"},
+ {Name: "--config_plugin", Description: "Config plugin name"},
+ {Name: "--config_refresh", Description: "Optional interval in seconds to re-read configuration"},
+ {Name: "--config_tls_endpoint", Description: "TLS/HTTPS endpoint for config retrieval"},
+ {Name: "--config_tls_max_attempts", Description: "Number of attempts to retry a TLS config request"},
+ {Name: "--daemonize", Description: "Attempt to daemonize (POSIX only)"},
+ {Name: "--database_dump", Description: "Dump the contents of the backing store"},
+ {Name: "--database_path", Description: "If using a disk-based backing store, specify a path"},
+ {Name: "--disable_carver", Description: "Disable the osquery file carver (default true)"},
+ {Name: "--disable_enrollment", Description: "Disable enrollment functions on related config/logger plugins"},
+ {Name: "--disable_extensions", Description: "Disable extension API"},
+ {Name: "--disable_reenrollment", Description: "Disable re-enrollment attempts if related plugins return invalid"},
+ {Name: "--disable_tables", Description: "Comma-delimited list of table names to be disabled"},
+ {Name: "--disable_watchdog", Description: "Disable userland watchdog process"},
+ {Name: "--enable_extensions_watchdog", Description: "Enable userland watchdog for extensions processes"},
+ {Name: "--enable_tables", Description: "Comma-delimited list of table names to be enabled"},
+ {Name: "--enroll_always", Description: "On startup, send a new enrollment request"},
+ {Name: "--enroll_secret_env", Description: "Name of environment variable holding enrollment-auth secret"},
+ {Name: "--enroll_secret_path", Description: "Path to an optional client enrollment-auth secret"},
+ {Name: "--enroll_tls_endpoint", Description: "TLS/HTTPS endpoint for client enrollment"},
+ {Name: "--extensions_autoload", Description: "Optional path to a list of autoloaded & managed extensions"},
+ {Name: "--extensions_interval", Description: "Seconds delay between connectivity checks"},
+ {Name: "--extensions_require", Description: "Comma-separated list of required extensions"},
+ {Name: "--extensions_socket", Description: "Path to the extensions UNIX domain socket"},
+ {Name: "--extensions_timeout", Description: "Seconds to wait for autoloaded extensions"},
+ {Name: "--force", Description: "Force osqueryd to kill previously-running daemons"},
+ },
+ })
+}
diff --git a/commands/ops/pass.go b/commands/ops/pass.go
new file mode 100644
index 0000000..11eab7c
--- /dev/null
+++ b/commands/ops/pass.go
@@ -0,0 +1,43 @@
+package ops
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "pass",
+ Description: "Pass - stores, retrieves, generates, and synchronizes passwords securely",
+ Subcommands: []core.Subcommand{
+ {Name: "init", Description: "Initialize new password storage and use gpg-id for encryption"},
+ {Name: "gpg-id", Description: "The gpg-id you want to use to encrypt your password store"},
+ {Name: "insert", Description: "Insert a new password into the password store called pass-name"},
+ {Name: "pass-name", Description: "The password name"},
+ {Name: "git", Description: "Password store git functions"},
+ {Name: "version", Description: "Show version information"},
+ {Name: "help", Description: "Show usage message"},
+ {Name: "cp", Description: "Copies the password or directory named old-path to new-path"},
+ {Name: "old-path", Description: "The old password name or directory"},
+ {Name: "new-path", Description: "The new password name or directory"},
+ {Name: "mv", Description: "Renames the password or directory named old-path to new-path"},
+ {Name: "rm", Description: "Remove the password named pass-name from the password store"},
+ {Name: "generate", Description: "Generate a new password of length pass-length and insert into pass-name"},
+ {Name: "pass-length", Description: "The length of the password"},
+ {Name: "ls", Description: "List names of passwords inside the tree at subfolder by using the tree"},
+ {Name: "password sub-directory", Description: "The password sub directory you want to list"},
+ {Name: "find", Description: "List names of passwords inside the tree that match pass-names"},
+ {Name: "show", Description: "Decrypt and print a password"},
+ },
+ Options: []core.Option{
+ {Name: "--clip", Description: "Copy the password to the clipboard"},
+ {Name: "--qrcode", Description: "Display a QRcode of the password"},
+ {Name: "--help", Description: "Show help for pass"},
+ {Name: "--path", Description: "Insert a new password into the password store called pass-name"},
+ {Name: "--echo", Description: "Don't prompt before overwriting an existing password"},
+ {Name: "--force", Description: "Do not interactively prompt before moving"},
+ {Name: "--recursive", Description: "Delete pass-name recursively if it is a directory"},
+ {Name: "--no-symbols", Description: "Do not use any non-alphanumeric characters in the generated password"},
+ {Name: "--in-place", Description: "Overwrite the existing password"},
+ },
+ })
+}
diff --git a/commands/ops/pg_dump.go b/commands/ops/pg_dump.go
new file mode 100644
index 0000000..97a1a6c
--- /dev/null
+++ b/commands/ops/pg_dump.go
@@ -0,0 +1,54 @@
+package ops
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "pg_dump",
+ Description: "Dumps a database as a text file or to other formats",
+ Options: []core.Option{
+ {Name: "--help", Description: "Show help for pg_dump"},
+ {Name: "--file", Description: "Output file or directory name"},
+ {Name: "--format", Description: "Output file format"},
+ {Name: "--jobs", Description: "Number of parallel job to dump"},
+ {Name: "--verbose", Description: "Verbose mode"},
+ {Name: "--version", Description: "Output version information"},
+ {Name: "--compress", Description: "Compression level for compressed formats"},
+ {Name: "--lock-wait-timeout", Description: "Fail after waiting for a table lock"},
+ {Name: "--no-sync", Description: "Do not wait for changes to be written safely to disk"},
+ {Name: "--data-only", Description: "Dump only the data, not the schema"},
+ {Name: "--blobs", Description: "Include large objects in dump"},
+ {Name: "--no-blobs", Description: "Exclude large objects in dump"},
+ {Name: "--clean", Description: "Clean (drop) database objects before recreating"},
+ {Name: "--create", Description: "Include commands to create database in dump"},
+ {Name: "--extension", Description: "Dump the specified extension(s) only"},
+ {Name: "--encoding", Description: "Dump the data in encoding "},
+ {Name: "--schema", Description: "Dump the specified schema(s) only"},
+ {Name: "--exclude-schema", Description: "Do NOT dump the specified schema(s)"},
+ {Name: "--no-owner", Description: "Skip restoration of object ownership in plain-text format"},
+ {Name: "--schema-only", Description: "Dump only the schema, no data"},
+ {Name: "--superuser", Description: "Superuser user name to use in plain-text format"},
+ {Name: "--table", Description: "Dump the specified table(s) only"},
+ {Name: "--exclude-table", Description: "Do NOT dump the specified table(s)"},
+ {Name: "--no-privileges", Description: "Do not dump privileges (grant/revoke)"},
+ {Name: "--binary-upgrade", Description: "For use by upgrade utilities only"},
+ {Name: "--column-inserts", Description: "Dump data as INSERT commands with column names"},
+ {Name: "--disable-dollar-quoting", Description: "Disable dollar quoting, use SQL standard quoting"},
+ {Name: "--disable-triggers", Description: "Disable triggers during data-only restore"},
+ {Name: "--enable-row-security", Description: "Enable row security (dump only content user has access to)"},
+ {Name: "--exclude-table-data", Description: "Do NOT dump data for the specified table(s)"},
+ {Name: "--extra-float-digits", Description: "Override default setting for extra_float_digits"},
+ {Name: "--if-exists", Description: "Use IF EXISTS when dropping objects"},
+ {Name: "--include-foreign-data", Description: "Include data of foreign tables on foreign servers matching PATTERN"},
+ {Name: "--inserts", Description: "Dump data as INSERT commands, rather than COPY"},
+ {Name: "--load-via-partition-root", Description: "Load partitions via the root table"},
+ {Name: "--no-comments", Description: "Do not dump comments"},
+ {Name: "--no-publications", Description: "Do not dump publications"},
+ {Name: "--no-security-labels", Description: "Do not dump security label assignments"},
+ {Name: "--no-subscriptions", Description: "Do not dump subscriptions"},
+ {Name: "--no-synchronized-snapshots", Description: "Do not use synchronized snapshots in parallel jobs"},
+ },
+ })
+}
diff --git a/commands/ops/pgcli.go b/commands/ops/pgcli.go
new file mode 100644
index 0000000..5d06b8f
--- /dev/null
+++ b/commands/ops/pgcli.go
@@ -0,0 +1,32 @@
+package ops
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "pgcli",
+ Description: "Host address of the postgres database",
+ Options: []core.Option{
+ {Name: "-h", Description: "Host address of the postgres database"},
+ {Name: "-p", Description: "Port number at which the postgres instance is listening"},
+ {Name: "-U", Description: "Username to connect to the postgres database"},
+ {Name: "-u", Description: "Username to connect to the postgres database"},
+ {Name: "-W", Description: "Force password prompt"},
+ {Name: "-w", Description: "Never prompt for password"},
+ {Name: "--single-connection", Description: "Do not use a separate connection for completions"},
+ {Name: "-v", Description: "Version of pgcli"},
+ {Name: "-d", Description: "Database name to connect to"},
+ {Name: "--pgclirc", Description: "Location of pgclirc file"},
+ {Name: "-D", Description: "Use DSN configured into the [alias_dsn] section of pgclirc file"},
+ {Name: "--list-dsn", Description: "List of DSN configured into the [alias_dsn] section of pgclirc file"},
+ {Name: "--row-limit", Description: "Set threshold for row limit prompt. Use 0 to disable prompt"},
+ {Name: "--less-chatty", Description: "Skip intro on startup and goodbye on exit"},
+ {Name: "--prompt", Description: "List available databases, then exit"},
+ {Name: "--auto-vertical-output", Description: "Warn before running a destructive query"},
+ {Name: "--ssh-tunnel", Description: "Open an SSH tunnel to the given address and connect to the database from it"},
+ {Name: "--help", Description: "Show this message and exit"},
+ },
+ })
+}
diff --git a/commands/ops/pm2.go b/commands/ops/pm2.go
new file mode 100644
index 0000000..8ddce43
--- /dev/null
+++ b/commands/ops/pm2.go
@@ -0,0 +1,102 @@
+package ops
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "pm2",
+ Description: "Outputs the version number",
+ Subcommands: []core.Subcommand{
+ {Name: "start", Description: "Starts and daemonizes an app"},
+ {Name: "trigger", Description: "Deploy your json"},
+ {Name: "deploy", Description: "Deploy your json"},
+ {Name: "startOrRestart", Description: "Start or restart JSON file"},
+ {Name: "startOrReload", Description: "Start or gracefully reload JSON file"},
+ {Name: "pid", Description: "Return pid of the specified app or all"},
+ {Name: "startOrGracefulReload", Description: "Start or gracefully reolad JSON file"},
+ {Name: "stop", Description: "Stop a process"},
+ {Name: "restart", Description: "Restart a process"},
+ {Name: "scale", Description: "Scale up/down a process in cluster mode depending on the `number` param"},
+ {Name: "snapshot", Description: "Snapshot PM2 memory"},
+ {Name: "profile", Description: "Profile CPU"},
+ {Name: "reload", Description: "Reload processes (for apps using HTTP/HTTPS)"},
+ {Name: "gracefulReload", Description: "Gracefully reload a process. Send a โshutdownโ message to close all connections"},
+ {Name: "id", Description: "Get process id by name"},
+ {Name: "delete", Description: "Stops and deletes a process from pm2 process list"},
+ {Name: "sendSignal", Description: "Send a system signal to the target process"},
+ {Name: "ping", Description: "Ping pm2 daemon - if not it will launch up"},
+ {Name: "updatePM2", Description: "Update in-memory PM2 with local PM2"},
+ {Name: "update", Description: "(alias) update in-memory PM2 with local PM2"},
+ {Name: "install", Description: "Install or update a module and run it forever"},
+ {Name: "module:generate", Description: "Generate a sample module in current folder"},
+ {Name: "uninstall", Description: "Stop and uninstall a module"},
+ {Name: "publish", Description: "Publish the module you are currently on"},
+ {Name: "set", Description: "Sets the specified config"},
+ {Name: "multiset", Description: "Multiset eg `key1 val1 key2 val2`"},
+ {Name: "get", Description: "Get value for the specified key"},
+ {Name: "conf", Description: "Get / set module config values"},
+ {Name: "config", Description: "Get / set module config values"},
+ {Name: "unset", Description: "Clears the specified config key"},
+ {Name: "report", Description: "Give a full pm2 report for https://github.com/Unitech/pm2/issues"},
+ {Name: "link", Description: "Linking action to keymetrics.io"},
+ {Name: "unlink", Description: "Linking action to keymetrics.io"},
+ {Name: "unmonitor", Description: "Unmonitor target process"},
+ {Name: "monitor", Description: "onitor target process"},
+ {Name: "open", Description: "Open dashboard in browser"},
+ {Name: "register", Description: "Create an account on keymetrics"},
+ {Name: "login", Description: "Login to keymetrics and link current PM2"},
+ {Name: "web", Description: "Launch a health API on 0.0.0.0:9615"},
+ {Name: "dump", Description: "Dump all processes for resurrecting them later"},
+ {Name: "send", Description: "Send stdin to pm id"},
+ {Name: "attach", Description: "Attach stdin/stdout to application identified by pm id"},
+ {Name: "resurrect", Description: "Resurrect previously dumped processes"},
+ {Name: "unstartup", Description: "Disable and clear auto startup"},
+ {Name: "startup", Description: "Setup script for pm2 at boot"},
+ {Name: "logrotate", Description: "Copy default logrotate configuration"},
+ {Name: "ecosystem", Description: "Generate a process conf file"},
+ {Name: "reset", Description: "Reset counters for process"},
+ {Name: "describe", Description: "Describe all parameters of a process id"},
+ {Name: "desc", Description: "(alias) Describe all parameters of a process id"},
+ },
+ Options: []core.Option{
+ {Name: "-V", Description: "Outputs the version number"},
+ {Name: "-v", Description: "Gets version"},
+ {Name: "-s", Description: "Hides all messages"},
+ {Name: "-m", Description: "Displays a compacted list without formatting"},
+ {Name: "-f", Description: "Forces actions"},
+ {Name: "--disable-logs", Description: "Do not write logs"},
+ {Name: "-n", Description: "Sets a name for script"},
+ {Name: "-i", Description: "Launches [number] instances (for networked app)(load balanced)"},
+ {Name: "--parallel", Description: "Number of parallel actions (for restart/reload)"},
+ {Name: "-l", Description: "Specifies entire log file (error and out are both included)"},
+ {Name: "-o", Description: "Specifies out log file"},
+ {Name: "-e", Description: "Specifies error log file"},
+ {Name: "-p", Description: "Specify pid file"},
+ {Name: "-k", Description: "Delays before sending final SIGKILL signal to process"},
+ {Name: "--listen-timeout", Description: "Listen timeout on application reload"},
+ {Name: "--max-memory-restart", Description: "Specify max memory amount used to autorestart (in octet or use syntax like 100M)"},
+ {Name: "--restart-delay", Description: "Specify a delay between restarts (in milliseconds)"},
+ {Name: "--env", Description: "Specify environment to get specific env variables"},
+ {Name: "--log-type", Description: "Specify log output style (raw by default, json optional)"},
+ {Name: "-x", Description: "Execute a program using fork system"},
+ {Name: "--max-restarts", Description: "Only Restart the script COUNT times"},
+ {Name: "-u", Description: "Defines user when generating startup script"},
+ {Name: "--uid", Description: "Runs target script with rights"},
+ {Name: "--gid", Description: "Runs target script with rights"},
+ {Name: "--cwd", Description: "Runs target script as "},
+ {Name: "--hp", Description: "Defines home path when generating startup script"},
+ {Name: "--wait-ip", Description: "Overrides systemd script to wait for full internet connectivity to launch pm2"},
+ {Name: "--service-name", Description: "Defines service name when generating startup script"},
+ {Name: "-c", Description: "Restarts a running process based on a cron pattern"},
+ {Name: "-w", Description: "Writes configuration in local folder"},
+ {Name: "--interpreter", Description: "The interpreter pm2 should use for executing app (bash, pythonโฆ)"},
+ {Name: "--interpreter-args", Description: "Interprets options (alias of --node-args)"},
+ {Name: "--log-date-format", Description: "Adds custom prefix timestamp to logs"},
+ {Name: "--no-daemon", Description: "Runs pm2 daemon in the foreground if it doesn't exist already"},
+ {Name: "-a", Description: "Updates environment on restart/reload (-a <=> apply)"},
+ {Name: "-h", Description: "Outputs usage information"},
+ },
+ })
+}
diff --git a/commands/ops/pod.go b/commands/ops/pod.go
new file mode 100644
index 0000000..7953a2b
--- /dev/null
+++ b/commands/ops/pod.go
@@ -0,0 +1,57 @@
+package ops
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "pod",
+ Description: "CocoaPods, the Cocoa library package manager",
+ Subcommands: []core.Subcommand{
+ {Name: "name", Description: "The name of the podspec file within the Git Repository"},
+ },
+ Options: []core.Option{
+ {Name: "--project-directory", Description: "The path to the root of the project directory"},
+ {Name: "--allow-root", Description: "Allows CocoaPods to run as root"},
+ {Name: "--all", Description: "Remove all the cached pods without asking"},
+ {Name: "--short", Description: "Only print the path relative to the cache root"},
+ {Name: "--update", Description: "Run `pod repo update` before listing"},
+ {Name: "--stats", Description: "Show additional stats (like GitHub watchers and forks)"},
+ {Name: "--regex", Description: "Interpret the `QUERY` as a regular expression"},
+ {Name: "--show-all", Description: "Pick from all versions of the given podspec"},
+ {Name: "--quick", Description: "Lint skips checks that would require to download and build the spec"},
+ {Name: "--allow-warnings", Description: "Lint validates even if warnings are present"},
+ {Name: "--subspec", Description: "Lint validates only the given subspec"},
+ {Name: "--no-subspecs", Description: "Lint skips validation of subspecs"},
+ {Name: "--no-clean", Description: "Lint leaves the build directory intact for inspection"},
+ {Name: "--fail-fast", Description: "Lint stops on the first failing platform or subspec"},
+ {Name: "--use-libraries", Description: "Lint uses static libraries to install the spec"},
+ {Name: "--use-modular-headers", Description: "Lint uses modular headers during installation"},
+ {Name: "--use-static-frameworks", Description: "Lint uses static frameworks during installation"},
+ {Name: "--sources", Description: "Lint skips checks that apply only to public specs"},
+ {Name: "--swift-version", Description: "Lint skips validating that the pod can be imported"},
+ {Name: "--skip-tests", Description: "Lint skips building and running tests during validation"},
+ {Name: "--test-specs", Description: "List of test specs to run"},
+ {Name: "--analyze", Description: "Validate with the Xcode Static Analysis tool"},
+ {Name: "--configuration", Description: "Build using the given configuration (defaults to Release)"},
+ {Name: "--repo-update", Description: "Force running `pod repo update` before install"},
+ {Name: "--deployment", Description: "Disallow any changes to the Podfile or the Podfile.lock during installation"},
+ {Name: "--clean-install", Description: "The path to the root of the project directory"},
+ {Name: "--no-repo-update", Description: "Skip running `pod repo update` before install"},
+ {Name: "--full", Description: "Search by name author, and description"},
+ {Name: "--template-url", Description: "The URL of the git repo containing a compatible template"},
+ {Name: "--external-podspecs", Description: "Lint skips validating that the pod can be imported"},
+ {Name: "--simple", Description: "Search only by name"},
+ {Name: "--web", Description: "Searches on cocoapods.org"},
+ {Name: "--ios", Description: "Restricts the search to Pods supported on iOS"},
+ {Name: "--osx", Description: "Restricts the search to Pods supported on macOS"},
+ {Name: "--watchos", Description: "Restricts the search to Pods supported on watchOS"},
+ {Name: "--tvos", Description: "Restricts the search to Pods supported on tvOS"},
+ {Name: "--no-pager", Description: "Do not pipe search results into a pager"},
+ {Name: "--no-private", Description: "Lint includes checks that apply only to public repos"},
+ {Name: "--skip-import-validation", Description: "Lint skips validating that the pod can be imported"},
+ {Name: "--commit-message", Description: "Convert the podspec to JSON before pushing it to the repo"},
+ },
+ })
+}
diff --git a/commands/ops/podman.go b/commands/ops/podman.go
new file mode 100644
index 0000000..b733c25
--- /dev/null
+++ b/commands/ops/podman.go
@@ -0,0 +1,92 @@
+package ops
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "podman",
+ Description: "Build an image using instructions from Containerfiles",
+ Subcommands: []core.Subcommand{
+ {Name: "events", Description: "Show podman system events"},
+ {Name: "info", Description: "Display podman system information"},
+ {Name: "inspect", Description: "Display the configuration of object denoted by ID"},
+ {Name: "login", Description: "Log in to a container registry"},
+ {Name: "logout", Description: "Log out of a container registry"},
+ {Name: "search", Description: "Search registry for image"},
+ {Name: "TERM", Description: "Search term"},
+ {Name: "version", Description: "Display the Podman version information"},
+ {Name: "container", Description: "Manage containers"},
+ {Name: "prune", Description: "Remove all stopped containers"},
+ {Name: "image", Description: "Manage images"},
+ {Name: "network", Description: "Manage networks"},
+ {Name: "connect", Description: "Connect a container to a network"},
+ {Name: "create", Description: "Create a network"},
+ {Name: "disconnect", Description: "Disconnect a container from a network"},
+ {Name: "ls", Description: "List networks"},
+ {Name: "rm", Description: "Remove one or more networks"},
+ {Name: "secret", Description: "Manage secrets"},
+ {Name: "system", Description: "Manage podman"},
+ {Name: "df", Description: "Show podman disk usage"},
+ {Name: "volume", Description: "Manage volumes"},
+ {Name: "generate", Description: "Generate structured data based on containers, pods or volumes"},
+ {Name: "healthcheck", Description: "Manage health checks on containers"},
+ {Name: "help", Description: "Help about any command"},
+ {Name: "init", Description: "Initialize one or more containers"},
+ {Name: "kube", Description: "Play containers, pods or volumes from a structured file"},
+ {Name: "machine", Description: "Manage a virtual machine"},
+ {Name: "list", Description: "List machines"},
+ {Name: "os", Description: "Manage a Podman virtual machine's OS"},
+ {Name: "set", Description: "Set a virtual machine setting"},
+ {Name: "ssh", Description: "SSH into an existing machine"},
+ {Name: "start", Description: "Start an existing machine"},
+ {Name: "stop", Description: "Stop an existing machine"},
+ {Name: "manifest", Description: "Manipulate manifest lists and image indexes"},
+ {Name: "pod", Description: "Manage pods"},
+ {Name: "untag", Description: "Remove a name from a local image"},
+ },
+ Options: []core.Option{
+ {Name: "--add-host", Description: "Add a custom host-to-IP mapping (host:ip)"},
+ {Name: "--build-arg", Description: "Set build-time variables"},
+ {Name: "--cache-from", Description: "Images to consider as cache sources"},
+ {Name: "--disable-content-trust", Description: "Skip image verification (default true)"},
+ {Name: "-f", Description: "Name of the Dockerfile (Default is 'PATH/Dockerfile')"},
+ {Name: "--iidfile", Description: "Write the image ID to the file"},
+ {Name: "--isolation", Description: "Container isolation technology"},
+ {Name: "--label", Description: "Set metadata for an image"},
+ {Name: "--network", Description: "Do not use cache when building the image"},
+ {Name: "-o", Description: "Output destination (format: type=local,dest=path)"},
+ {Name: "--platform", Description: "Set platform if server is multi-platform capable"},
+ {Name: "--progress", Description: "Always attempt to pull a newer version of the image"},
+ {Name: "-q", Description: "Suppress the build output and print image ID on success"},
+ {Name: "--secret", Description: "Squash newly built layers into a single new layer"},
+ {Name: "--ssh", Description: "Name and optionally a tag in the 'name:tag' format"},
+ {Name: "--target", Description: "Set the target build stage to build"},
+ {Name: "--detach-keys", Description: "Override the key sequence for detaching a container"},
+ {Name: "--no-stdin", Description: "Do not attach STDIN"},
+ {Name: "--sig-proxy", Description: "Proxy all received signals to the process (default true)"},
+ {Name: "-it", Description: "Launch an interactive session"},
+ {Name: "-l", Description: "Remove the specified link"},
+ {Name: "-v", Description: "Remove the anonymous volumes associated with the container"},
+ {Name: "-a", Description: "Attach to STDIN, STDOUT or STDERR"},
+ {Name: "--blkio-weight", Description: "Block IO (relative weight), between 10 and 1000, or 0 to disable (default 0)"},
+ {Name: "--blkio-weight-device", Description: "Block IO weight (relative device weight) (default [])"},
+ {Name: "--cap-add", Description: "Add Linux capabilities"},
+ {Name: "--cap-drop", Description: "Drop Linux capabilities"},
+ {Name: "--cgroup-parent", Description: "Optional parent cgroup for the container"},
+ {Name: "--cgroupns", Description: "Write the container ID to the file"},
+ {Name: "--cpu-period", Description: "Limit CPU CFS (Completely Fair Scheduler) period"},
+ {Name: "--cpu-quota", Description: "Limit CPU CFS (Completely Fair Scheduler) quota"},
+ {Name: "--cpu-rt-period", Description: "Limit CPU real-time period in microseconds"},
+ {Name: "--cpu-rt-runtime", Description: "Limit CPU real-time runtime in microseconds"},
+ {Name: "-c", Description: "CPU shares (relative weight)"},
+ {Name: "--cpus", Description: "Number of CPUs"},
+ {Name: "--cpuset-cpus", Description: "CPUs in which to allow execution (0-3, 0,1)"},
+ {Name: "--cpuset-mems", Description: "MEMs in which to allow execution (0-3, 0,1)"},
+ {Name: "-d", Description: "Run container in background and print container ID"},
+ {Name: "--device", Description: "Add a host device to the container"},
+ {Name: "--device-cgroup-rule", Description: "Add a rule to the cgroup allowed devices list"},
+ },
+ })
+}
diff --git a/commands/ops/pscale.go b/commands/ops/pscale.go
new file mode 100644
index 0000000..42ba853
--- /dev/null
+++ b/commands/ops/pscale.go
@@ -0,0 +1,79 @@
+package ops
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "pscale",
+ Description: "The client ID for the PlanetScale CLI application",
+ Subcommands: []core.Subcommand{
+ {Name: "audit-log", Description: "List audit logs"},
+ {Name: "list", Description: "List all audit logs of an organization"},
+ {Name: "auth", Description: "Login and logout via the PlanetScale API"},
+ {Name: "login", Description: "Authenticate with the PlanetScale API"},
+ {Name: "logout", Description: "Log out of the PlanetScale API"},
+ {Name: "backup", Description: "Create, list, show, and delete branch backups"},
+ {Name: "create", Description: "Backup a branch's data and schema"},
+ {Name: "delete", Description: "Delete a branch backup"},
+ {Name: "restore", Description: "Restore a backup to a new branch"},
+ {Name: "show", Description: "Show a specific backup of a branch"},
+ {Name: "branch", Description: "Create, delete, diff, and manage branches"},
+ {Name: "diff", Description: "Show the diff of a branch"},
+ {Name: "promote", Description: "Promote a new branch from a database"},
+ {Name: "refresh-schema", Description: "Refresh the schema for a database branch"},
+ {Name: "schema", Description: "Show the schema of a branch"},
+ {Name: "switch", Description: "Switches the current project to use the specified branch"},
+ {Name: "completion", Description: "Generate completion script for your shell"},
+ {Name: "connect", Description: "Create a secure connection to a database and branch for a local client"},
+ {Name: "database", Description: "Create, read, delete, and dump/restore databases"},
+ {Name: "dump", Description: "Backup and dump your database"},
+ {Name: "restore-dump", Description: "Restore your database from a local dump directory"},
+ {Name: "deploy-request", Description: "Create, review, diff, and manage deploy requests"},
+ {Name: "close", Description: "Close a deploy request"},
+ {Name: "deploy", Description: "Deploy a specific deploy request"},
+ {Name: "review", Description: "Review a deploy request (approve, comment, etc...)"},
+ {Name: "help", Description: "Help about any command"},
+ {Name: "org", Description: "List, show, and switch organizations"},
+ {Name: "password", Description: "Create, list, and delete branch passwords"},
+ {Name: "region", Description: "List regions"},
+ {Name: "service-token", Description: "Create, list, and manage access for service tokens"},
+ {Name: "add-access", Description: "Ddd access to a service token in the organization"},
+ {Name: "delete-access", Description: "Delete access granted to a service token in the organization"},
+ {Name: "show-access", Description: "Fetch a service token and it's accesses"},
+ {Name: "shell", Description: "Open a MySQL shell instance to a database and branch"},
+ {Name: "signup", Description: "Signup for a new PlanetScale account"},
+ },
+ Options: []core.Option{
+ {Name: "--client-id", Description: "The client ID for the PlanetScale CLI application"},
+ {Name: "--client-secret", Description: "The client ID for the PlanetScale CLI application"},
+ {Name: "--database", Description: "The database this project is using"},
+ {Name: "--force", Description: "Show help"},
+ {Name: "--local-addr", Description: "The organization for the current user"},
+ {Name: "--port", Description: "Region for the database"},
+ {Name: "--remote-addr", Description: "Open in web browser"},
+ {Name: "--api-token", Description: "The API token to use for authenticating against the PlanetScale API"},
+ {Name: "--api-url", Description: "Config file (default is $HOME/.config/planetscale/pscale.yml)"},
+ {Name: "--debug", Description: "Enable debug mode"},
+ {Name: "--format", Description: "Disable color output"},
+ {Name: "--service-token", Description: "Service Token for authenticating"},
+ {Name: "--service-token-name", Description: "The Service Token name for authenticating"},
+ {Name: "--from", Description: "Branch to be created from"},
+ {Name: "--restore", Description: "Backup to restore into the branch"},
+ {Name: "--web", Description: "Create a branch in your web browser"},
+ {Name: "--create", Description: "If enabled, will automatically create the branch if it does not exist"},
+ {Name: "--parent-branch", Description: "Generate completion script for your shell"},
+ {Name: "--execute", Description: "Run this command after successfully connecting to the database"},
+ {Name: "--execute-env-url", Description: "Create, read, delete, and dump/restore databases"},
+ {Name: "--notes", Description: "Notes for the database"},
+ {Name: "--output", Description: "Comma separated string of tables to dump. By default all tables are dumped"},
+ {Name: "--dir", Description: "Directory that contains the files to be used for restoration (required)"},
+ {Name: "--deploy-to", Description: "Branch to deploy the branch. By default it's set to 'main'"},
+ {Name: "--approve", Description: "Approve a deploy request"},
+ {Name: "--comment", Description: "Comment on a deploy request"},
+ {Name: "--save-config", Description: "Create, list, and delete branch passwords"},
+ {Name: "--version", Description: "Show pscale version"},
+ },
+ })
+}
diff --git a/commands/ops/psql.go b/commands/ops/psql.go
new file mode 100644
index 0000000..cdc1eda
--- /dev/null
+++ b/commands/ops/psql.go
@@ -0,0 +1,17 @@
+package ops
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "psql",
+ Description: "Psql is a terminal-based front-end to PostgreSQL",
+ Options: []core.Option{
+ {Name: "-a", Description: "Put all query output into file filename. This is equivalent to the command \\\\o"},
+ {Name: "-p", Description: "Print the psql version and exit"},
+ {Name: "-w", Description: "Show help about psql and exit"},
+ },
+ })
+}
diff --git a/commands/ops/pulumi.go b/commands/ops/pulumi.go
new file mode 100644
index 0000000..6671697
--- /dev/null
+++ b/commands/ops/pulumi.go
@@ -0,0 +1,105 @@
+package ops
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "pulumi",
+ Description: "The name of the stack to operate on. Defaults to the current stack",
+ Subcommands: []core.Subcommand{
+ {Name: "about", Description: "Print information about the Pulumi environment"},
+ {Name: "cancel", Description: "Cancel a stackโs currently running update, if any"},
+ {Name: "config", Description: "Manage configuration"},
+ {Name: "cp", Description: "Copy config to another stack"},
+ {Name: "get", Description: "Get a single configuration value"},
+ {Name: "refresh", Description: "Update the local configuration based on the most recent deployment of the stack"},
+ {Name: "rm", Description: "Remove configuration value"},
+ {Name: "rm-all", Description: "Remove multiple configuration values"},
+ {Name: "set", Description: "Set configuration value"},
+ {Name: "set-all", Description: "Set multiple configuration values"},
+ {Name: "console", Description: "Opens the current stack in the Pulumi Console"},
+ {Name: "destroy", Description: "Destroy an existing stack and its resources"},
+ {Name: "import", Description: "Import resources into an existing stack"},
+ {Name: "login", Description: "Log in to the Pulumi service"},
+ {Name: "logout", Description: "Log out of the Pulumi service"},
+ {Name: "logs", Description: "[PREVIEW] Show aggregated resource logs for a stack"},
+ {Name: "new", Description: "Create a new Pulumi project"},
+ {Name: "org", Description: "Manage Organization configuration"},
+ {Name: "get-default", Description: "Get the default org for the current backend"},
+ {Name: "set-default", Description: "Set the default organization for the current backend"},
+ {Name: "plugin", Description: "Manage language and resource provider plugins"},
+ {Name: "install", Description: "Install one or more plugins"},
+ {Name: "ls", Description: "List plugins"},
+ {Name: "policy", Description: "Manage resource policies"},
+ {Name: "disable", Description: "Disable a Policy Pack for a Pulumi organization"},
+ {Name: "enable", Description: "Enable a Policy Pack for a Pulumi organization"},
+ {Name: "group", Description: "Manage policy groups"},
+ {Name: "publish", Description: "Publish a Policy Pack to the Pulumi service"},
+ {Name: "validate-config", Description: "Validate a Policy Pack configuration"},
+ {Name: "preview", Description: "Show a preview of updates to a stackโs resources"},
+ {Name: "schema", Description: "Analyze package schemas"},
+ {Name: "check", Description: "Check a Pulumi package schema for errors"},
+ {Name: "stack", Description: "Manage stacks"},
+ {Name: "change-secrets-provider", Description: "Change the secrets provider for the current stack"},
+ {Name: "export", Description: "Export a stackโs deployment to standard out"},
+ {Name: "graph", Description: "Export a stackโs dependency graph to a file"},
+ {Name: "history", Description: "[PREVIEW] Display history for a stack"},
+ {Name: "init", Description: "Create an empty stack with the given name, ready for updates"},
+ {Name: "output", Description: "Show a stackโs output properties"},
+ {Name: "rename", Description: "Rename an existing stack"},
+ {Name: "select", Description: "Switch the current workspace to the given stack"},
+ {Name: "tag", Description: "Manage stack tags"},
+ {Name: "state", Description: "Edit the current stackโs state"},
+ {Name: "delete", Description: "Deletes a resource from a stackโs state"},
+ {Name: "unprotect", Description: "Unprotect resources in a stackโs state"},
+ {Name: "up", Description: "Deploy code and/or resource changes"},
+ {Name: "version", Description: "Print Pulumiโs version number"},
+ {Name: "watch", Description: "[PREVIEW] Continuously update the resources in a stack"},
+ {Name: "whoami", Description: "Displays the username of the currently logged in user"},
+ },
+ Options: []core.Option{
+ {Name: "-s", Description: "The name of the stack to operate on. Defaults to the current stack"},
+ {Name: "-y", Description: "Skip confirmation prompts, and proceed with cancellation anyway"},
+ {Name: "-j", Description: "Emit output as JSON"},
+ {Name: "--config-file", Description: "Optional message to associate with the destroy operation"},
+ {Name: "-p", Description: "Display operation as a rich diff showing the overall change"},
+ {Name: "-d", Description: "Print detailed debugging output during resource operations"},
+ {Name: "-l", Description: "Use Pulumi in local-only mode"},
+ {Name: "-f", Description: "Do not perform a preview before performing the destroy"},
+ {Name: "-t", Description: "The key contains a path to a property in a map or list to set"},
+ {Name: "--path", Description: "Parse the keys as paths in a map or list rather than raw strings"},
+ {Name: "--suppress-permalink", Description: "Suppress display of the state permalink"},
+ {Name: "--secrets-provider", Description: "Run pulumi as if it had been started in another directory"},
+ {Name: "--disable-integrity-checking", Description: "Disable integrity checking of checkpoint files"},
+ {Name: "-e", Description: "Enable emojis in the output"},
+ {Name: "--logflow", Description: "Flow log settings to child processes (like plugins)"},
+ {Name: "--logtostderr", Description: "Log to stderr instead of to files"},
+ {Name: "--non-interactive", Description: "Disable interactive mode for all commands"},
+ {Name: "--profiling", Description: "Enable verbose logging (e.g., v=3); anything >3 is very verbose"},
+ {Name: "-r", Description: "Refresh the state of the stack's resources before this update"},
+ {Name: "--show-config", Description: "Show configuration keys and variables"},
+ {Name: "--show-replacement-steps", Description: "Show detailed resource replacement creates and deletes instead of a single step"},
+ {Name: "--show-sames", Description: "Suppress display of stack outputs (in case they contain sensitive values)"},
+ {Name: "--target-dependents", Description: "Print information about the Pulumi environment"},
+ {Name: "--plaintext", Description: "Save the value as plaintext (unencrypted)"},
+ {Name: "--secret", Description: "Encrypt the value instead of storing it in plaintext"},
+ {Name: "--show-secrets", Description: "Show secret values when listing config instead of displaying blinded values"},
+ {Name: "--exclude-protected", Description: "Do not destroy protected resources. Destroy all other resources"},
+ {Name: "-o", Description: "The path to the file that will contain the generated resource declarations"},
+ {Name: "--parent", Description: "Suppress display of stack outputs (in case they contain sensitive values)"},
+ {Name: "-c", Description: "A cloud URL to log in to"},
+ {Name: "--default-org", Description: "Log out of the Pulumi service"},
+ {Name: "--all", Description: "Logout of all backends"},
+ {Name: "--config-path", Description: "Config keys contain a path to a property in a map or list to set"},
+ {Name: "--dir", Description: "Forces content to be generated even if it would change existing files"},
+ {Name: "-g", Description: "The project name; if not specified, a prompt will request it"},
+ {Name: "--exact", Description: "Force installation of an exact version match (usually >= is accepted)"},
+ {Name: "--reinstall", Description: "Reinstall a plugin even if it already exists"},
+ {Name: "--server", Description: "A URL to download plugins from"},
+ {Name: "-a", Description: "Remove all plugins"},
+ {Name: "--policy-group", Description: "Enable a Policy Pack for a Pulumi organization"},
+ },
+ })
+}
diff --git a/commands/ops/qodana.go b/commands/ops/qodana.go
new file mode 100644
index 0000000..098ca7f
--- /dev/null
+++ b/commands/ops/qodana.go
@@ -0,0 +1,36 @@
+package ops
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "qodana",
+ Description: "Run Qodana as fast as possible, with minimum effort required",
+ Subcommands: []core.Subcommand{
+ {Name: "init", Description: "Configure project for Qodana"},
+ {Name: "scan", Description: "Scan a project with Qodana"},
+ {Name: "show", Description: "Show Qodana report"},
+ {Name: "view", Description: "View SARIF files in CLI"},
+ },
+ Options: []core.Option{
+ {Name: "-h", Description: "Show help page for command"},
+ {Name: "-v", Description: "Version for Qodana"},
+ {Name: "-i", Description: "Scan a project with Qodana"},
+ {Name: "-a", Description: "Unique report identifier (GUID) to be used by Qodana Cloud"},
+ {Name: "-b", Description: "Override cache directory (default /JetBrains//cache)"},
+ {Name: "-c", Description: "Override the docker image to be used for the analysis"},
+ {Name: "--clear-cache", Description: "Clear the local Qodana cache before running the analysis"},
+ {Name: "--disable-sanity", Description: "Skip running the inspections configured by the sanity profile"},
+ {Name: "-e", Description: "Override linter to use"},
+ {Name: "--port", Description: "Port to serve the report on (default 8080)"},
+ {Name: "--print-problems", Description: "Print all found problems by Qodana in the CLI output"},
+ {Name: "-n", Description: "Profile name defined in the project"},
+ {Name: "-p", Description: "Path to the profile file"},
+ {Name: "--script", Description: "Serve HTML report on port"},
+ {Name: "--skip-pull", Description: "Skip pulling the latest Qodana container"},
+ {Name: "-d", Description: "Show Qodana report"},
+ },
+ })
+}
diff --git a/commands/ops/railway.go b/commands/ops/railway.go
new file mode 100644
index 0000000..b0bdf6d
--- /dev/null
+++ b/commands/ops/railway.go
@@ -0,0 +1,59 @@
+package ops
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "railway",
+ Description: "CLI for managing Railway Apps",
+ Subcommands: []core.Subcommand{
+ {Name: "add", Description: "Add a plugin to your project"},
+ {Name: "completion", Description: "Generate shell-completions"},
+ {Name: "shell", Description: "The shell to generate completions for"},
+ {Name: "connect", Description: "Connect to a plugin"},
+ {Name: "plugin", Description: "The plugin to connect to"},
+ {Name: "delete", Description: "Delete a project"},
+ {Name: "project-id", Description: "The project to delete"},
+ {Name: "docs", Description: "Open Railway Documentation in default browser"},
+ {Name: "down", Description: "Remove the most recent deployment"},
+ {Name: "environment", Description: "Change your environment"},
+ {Name: "help", Description: "Get help about any command"},
+ {Name: "command", Description: "The command to get help about"},
+ {Name: "init", Description: "Create a new railway project"},
+ {Name: "link", Description: "Connect to an existing railway project"},
+ {Name: "list", Description: "List all railway projects"},
+ {Name: "login", Description: "Login to railway"},
+ {Name: "logout", Description: "Logout of railway"},
+ {Name: "logs", Description: "Show logs for the most-recent deployment"},
+ {Name: "Number of lines", Description: "The number of lines to output"},
+ {Name: "open", Description: "Open the project"},
+ {Name: "live", Description: "Open the live project"},
+ {Name: "metrics", Description: "Open project metrics"},
+ {Name: "settings", Description: "Open project settings"},
+ {Name: "run", Description: "Run a local command using variables from the active environment"},
+ {Name: "status", Description: "View the status of railway project"},
+ {Name: "unlink", Description: "Disconnects the current directory from a Railway project"},
+ {Name: "up", Description: "Deploy to railway"},
+ {Name: "path", Description: "Path to deploy to"},
+ {Name: "variables", Description: "Work with environment variables"},
+ {Name: "variable", Description: "The name of the variable you want to delete"},
+ {Name: "get", Description: "Get variable value"},
+ {Name: "set", Description: "Set variable value"},
+ {Name: "value", Description: "Value of the variable"},
+ {Name: "version", Description: "Get the version of railway's CLI"},
+ {Name: "whoami", Description: "Get the logged in user"},
+ },
+ Options: []core.Option{
+ {Name: "-e", Description: "Environment to delete from"},
+ {Name: "--browserless", Description: "Login without opening a browser"},
+ {Name: "-n", Description: "Output a specific number of lines"},
+ {Name: "-s", Description: "Define specific service"},
+ {Name: "-d", Description: "Detach from build logs"},
+ {Name: "--help", Description: "Show help for railway"},
+ {Name: "--version", Description: "Show railway version"},
+ {Name: "--verbose", Description: "Enable verbose output"},
+ },
+ })
+}
diff --git a/commands/ops/rbenv.go b/commands/ops/rbenv.go
new file mode 100644
index 0000000..ac36314
--- /dev/null
+++ b/commands/ops/rbenv.go
@@ -0,0 +1,30 @@
+package ops
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "rbenv",
+ Description: "List all available rbenv commands",
+ Subcommands: []core.Subcommand{
+ {Name: "commands", Description: "List all available rbenv commands"},
+ {Name: "global", Description: "Set or show the global Ruby version"},
+ {Name: "install", Description: "Install a Ruby version using ruby-build"},
+ {Name: "local", Description: "Set or show the local application-specific Ruby version"},
+ {Name: "rehash", Description: "Rehash rbenv shims (run this after installing executables)"},
+ {Name: "shell", Description: "Set or show the shell-specific Ruby version"},
+ {Name: "uninstall", Description: "Uninstall a specific Ruby version"},
+ {Name: "versions", Description: "List installed Ruby versions"},
+ {Name: "whence", Description: "List all Ruby versions that contain the given executable"},
+ {Name: "which", Description: "Display the full path to an executable"},
+ },
+ Options: []core.Option{
+ {Name: "--unset", Description: "List all available rbenv commands"},
+ {Name: "--sh", Description: "Set or show the global Ruby version"},
+ {Name: "--version", Description: "Show version of ruby-build"},
+ {Name: "-f", Description: "If the version does not exist, do not display an error message"},
+ },
+ })
+}
diff --git a/commands/ops/robot.go b/commands/ops/robot.go
new file mode 100644
index 0000000..fdff96c
--- /dev/null
+++ b/commands/ops/robot.go
@@ -0,0 +1,54 @@
+package ops
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "robot",
+ Description: "Tag",
+ Options: []core.Option{
+ {Name: "-h", Description: "Print usage instructions"},
+ {Name: "--rpa", Description: "Parse only files with this extension when executing a directory"},
+ {Name: "-N", Description: "Set a name of the top level suite"},
+ {Name: "-D", Description: "Set a documentation of the top level suite"},
+ {Name: "-M", Description: "Set metadata of the top level suite"},
+ {Name: "-G", Description: "Sets given tag to all executed tests"},
+ {Name: "-t", Description: "Alias to --test. Especially applicable with --rpa"},
+ {Name: "-s", Description: "Select suites by name"},
+ {Name: "-i", Description: "Select test cases by tag"},
+ {Name: "-e", Description: "Select test cases not to run by tag"},
+ {Name: "-R", Description: "Select failed tests from an earlier output file to be re-executed"},
+ {Name: "-S", Description: "Select failed suites from an earlier output file to be re-executed"},
+ {Name: "--runemptysuite", Description: "Executes suite even if it contains no tests"},
+ {Name: "--skip", Description: "Tests having given tag will be skipped"},
+ {Name: "--skiponfailure", Description: "Tests having given tag will be skipped if they fail"},
+ {Name: "-v", Description: "Set variables in the test data"},
+ {Name: "-V", Description: "Python or YAML file file to read variables from"},
+ {Name: "-d", Description: "XUnit compatible result file. Not created unless this option is specified"},
+ {Name: "-b", Description: "Debug file written during execution. Not created unless this option is specified"},
+ {Name: "-T", Description: "Split the log file into smaller pieces that open in browsers transparently"},
+ {Name: "--logtitle", Description: "Title for the generated log file. The default title is ` Log.`"},
+ {Name: "--reporttitle", Description: "Title for the generated report file. The default title is ` Report`"},
+ {Name: "--reportbackground", Description: "Default number of lines"},
+ {Name: "--maxassignlength", Description: "Default number of characters"},
+ {Name: "-L", Description: "Threshold level for logging"},
+ {Name: "--suitestatlevel", Description: "How many levels to show in `Statistics by Suite` in log and report"},
+ {Name: "--tagstatinclude", Description: "Include only matching tags in `Statistics by Tag` in log and report"},
+ {Name: "--tagstatexclude", Description: "Exclude matching tags from `Statistics by Tag`"},
+ {Name: "--tagstatcombine", Description: "Add documentation to tags matching the given pattern"},
+ {Name: "--tagstatlink", Description: "Matching keywords will be automatically expanded in the log file"},
+ {Name: "--removekeywords", Description: "Remove keyword data from the generated log file"},
+ {Name: "--flattenkeywords", Description: "Flattens matching keywords in the generated log file"},
+ {Name: "--listener", Description: "Stops test execution if any test fails"},
+ {Name: "--exitonerror", Description: "Causes teardowns to be skipped if test execution is stopped prematurely"},
+ {Name: "--randomize", Description: "Randomizes the test execution order"},
+ {Name: "--prerunmodifier", Description: "Class to programmatically modify the suite structure before execution"},
+ {Name: "--prerebotmodifier", Description: "How to report execution on the console"},
+ {Name: "-.", Description: "Shortcut for `--console dotted`"},
+ {Name: "--quiet", Description: "Shortcut for `--console quiet`"},
+ {Name: "-W", Description: "Width of the console output. Default is 78"},
+ },
+ })
+}
diff --git a/commands/ops/serverless.go b/commands/ops/serverless.go
new file mode 100644
index 0000000..2e287a3
--- /dev/null
+++ b/commands/ops/serverless.go
@@ -0,0 +1,60 @@
+package ops
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "serverless",
+ Description: "AWS profile to use with the command",
+ Subcommands: []core.Subcommand{
+ {Name: "deploy", Description: "Deploy a Serverless service"},
+ {Name: "info", Description: "Display information about the service"},
+ {Name: "invoke", Description: "Invoke a deployed function"},
+ {Name: "logs", Description: "Output the logs of a deployed function"},
+ {Name: "metrics", Description: "Show metrics for a specific function"},
+ {Name: "remove", Description: "Remove Serverless service and all resources"},
+ {Name: "rollback", Description: "Rollback the Serverless service to a specific deployment"},
+ {Name: "studio", Description: "Develop a Serverless application in the cloud"},
+ {Name: "test", Description: "Run HTTP tests"},
+ {Name: "package", Description: "Package a Serverless service"},
+ {Name: "plugin", Description: "Handle plugins"},
+ {Name: "print", Description: "Print your compiled and resolved config file"},
+ {Name: "create", Description: "Create new Serverless service"},
+ {Name: "dashboard", Description: "Open the Serverless dashboard"},
+ {Name: "generate-event", Description: "Generate event"},
+ {Name: "login", Description: "Login or sign up for Serverless"},
+ {Name: "logout", Description: "Logout from Serverless"},
+ {Name: "output", Description: "Get/list value of dashboard deployment profile parameter"},
+ {Name: "param", Description: "Get/list value of dashboard service output"},
+ {Name: "slstats", Description: "Enable or disable stats"},
+ },
+ Options: []core.Option{
+ {Name: "--aws-profile", Description: "AWS profile to use with the command"},
+ {Name: "--function", Description: "Name of the function"},
+ {Name: "--region", Description: "Region of the service"},
+ {Name: "--use-local-credentials", Description: "Path to serverless config file"},
+ {Name: "--app", Description: "Dashboard app"},
+ {Name: "--org", Description: "Dashboard org"},
+ {Name: "--help", Description: "Show help"},
+ {Name: "--version", Description: "Show version info"},
+ {Name: "--stage", Description: "Stage of the service"},
+ {Name: "--verbose", Description: "Show all stack events during deployment"},
+ {Name: "--package", Description: "Path of the deployment package"},
+ {Name: "--conceal", Description: "Hide secrets from the output (e.g. API Gateway key values)"},
+ {Name: "--qualifier", Description: "Version number or alias to invoke"},
+ {Name: "--path", Description: "Path to JSON or YAML file holding input data"},
+ {Name: "--type", Description: "Type of invocation"},
+ {Name: "--log", Description: "Trigger logging data output"},
+ {Name: "--data", Description: "Input data"},
+ {Name: "--raw", Description: "Flag to pass input data as a raw string"},
+ {Name: "--context", Description: "Context of the service"},
+ {Name: "--contextPath", Description: "Path to JSON or YAML file holding context data"},
+ {Name: "--env", Description: "Override environment variables. e.g. --env VAR1=val1 --env VAR2=val2"},
+ {Name: "--force", Description: "Forces a deployment to take place"},
+ {Name: "--update-config", Description: "Forces a deployment to take place"},
+ {Name: "--aws-s3-accelerate", Description: "Enables S3 Transfer Acceleration making uploading artifacts much faster"},
+ },
+ })
+}
diff --git a/commands/ops/sfdx.go b/commands/ops/sfdx.go
new file mode 100644
index 0000000..3ecb366
--- /dev/null
+++ b/commands/ops/sfdx.go
@@ -0,0 +1,106 @@
+package ops
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "sfdx",
+ Description: "Analyze (lint) Aura component code",
+ Subcommands: []core.Subcommand{
+ {Name: "force:lightning:lint", Description: "Analyze (lint) Aura component code"},
+ {Name: "fig-completion", Description: "Generate a Fig completion spec"},
+ {Name: "commands", Description: "List all the commands"},
+ {Name: "plugins", Description: "List installed plugins"},
+ {Name: "plugins:inspect", Description: "Displays installation properties of a plugin"},
+ {Name: "plugin", Description: "Plugin to inspect"},
+ {Name: "plugins:install", Description: "Installs a plugin into the CLI"},
+ {Name: "plugins:link", Description: "Links a plugin into the CLI for development"},
+ {Name: "path", Description: "Path to plugin"},
+ {Name: "plugins:uninstall", Description: "Removes a plugin from the CLI"},
+ {Name: "plugins:update", Description: "Update installed plugins"},
+ {Name: "autocomplete", Description: "Display autocomplete installation instructions"},
+ {Name: "shell", Description: "Shell type"},
+ {Name: "update", Description: "Update the sfdx CLI"},
+ {Name: "which", Description: "Show which plugin a command is in"},
+ {Name: "force:cmdt:create", Description: "Creates a new custom metadata type in the current project"},
+ {Name: "force:cmdt:field:create", Description: "Generate a custom metadata field based on the field type provided"},
+ {Name: "force:cmdt:generate", Description: "Generates a custom metadata type and all its records for the provided sObject"},
+ {Name: "force:cmdt:record:create", Description: "Create a new record for a given custom metadata type in the current project"},
+ {Name: "force:cmdt:record:insert", Description: "Create new custom metadata type records from a CSV file"},
+ {Name: "alias:list", Description: "List username aliases for the Salesforce CLI"},
+ {Name: "alias:set", Description: "Set username aliases for the Salesforce CLI"},
+ {Name: "alias:unset", Description: "Unsets aliases for the Salesforce CLI"},
+ {Name: "force:apex:execute", Description: "Executes anonymous Apex code"},
+ {Name: "force:apex:log:get", Description: "Fetch debug logs"},
+ {Name: "force:apex:log:list", Description: "Display a list of IDs and general information about debug logs"},
+ {Name: "force:apex:test:report", Description: "Display test results for a specific asynchronous test run"},
+ {Name: "force:apex:test:run", Description: "Invoke Apex tests"},
+ {Name: "config:get", Description: "Get config var values for given names"},
+ {Name: "config:unset", Description: "Unsets the local and global configuration variables for the Salesforce CLI"},
+ {Name: "force:data:bulk:delete", Description: "Bulk delete records from a csv file"},
+ {Name: "force:data:bulk:status", Description: "View the status of a bulk data load job or batch"},
+ {Name: "force:data:bulk:upsert", Description: "Bulk upsert records from a CSV file"},
+ {Name: "force:data:record:create", Description: "Creates and inserts a record"},
+ {Name: "force:data:record:delete", Description: "Deletes a single record"},
+ {Name: "force:data:record:get", Description: "Displays a single record"},
+ {Name: "force:data:record:update", Description: "Updates a single record"},
+ {Name: "force:data:soql:query", Description: "Execute a SOQL query"},
+ {Name: "force:data:tree:export", Description: "Export data from an org"},
+ {Name: "force:data:tree:import", Description: "Import data into an org"},
+ {Name: "auth:accesstoken:store", Description: "Authorize an org using an existing Salesforce access token"},
+ {Name: "auth:device:login", Description: "Authorize an org using a device code"},
+ {Name: "auth:jwt:grant", Description: "Authorize an org using the JWT flow"},
+ {Name: "auth:list", Description: "List auth connection information"},
+ {Name: "auth:logout", Description: "Log out from authorized orgs"},
+ {Name: "auth:sfdxurl:store", Description: "Authorize an org using an SFDX auth URL"},
+ {Name: "auth:web:login", Description: "Authorize an org using the web login flow"},
+ {Name: "force:limits:api:display", Description: "Display current orgโs limits"},
+ {Name: "force:limits:recordcounts:display", Description: "Display record counts for the specified standard and custom objects"},
+ {Name: "force:org:display", Description: "Get the description for the current or target org"},
+ },
+ Options: []core.Option{
+ {Name: "--json", Description: "Format output as json"},
+ {Name: "--loglevel", Description: "Logging level for this command invocation"},
+ {Name: "-i", Description: "Pattern used to ignore some folders"},
+ {Name: "--files", Description: "Pattern used to include specific files"},
+ {Name: "--config", Description: "Path to a custom ESLint configuration file"},
+ {Name: "--verbose", Description: "Report warnings in addition to errors"},
+ {Name: "--exit", Description: "Exit with error code 1 if there are lint issues"},
+ {Name: "-h", Description: "Show CLI help"},
+ {Name: "-o", Description: "Filepath to export completion spec (do not specify file extension)"},
+ {Name: "-l", Description: "List all the commands"},
+ {Name: "-j", Description: "Display unfiltered api data in json format"},
+ {Name: "--hidden", Description: "Show hidden commands"},
+ {Name: "--columns", Description: "Only show provided columns (comma-separated)"},
+ {Name: "--sort", Description: "Property to sort by (prepend '-' for descending)"},
+ {Name: "--filter", Description: "Filter property by partial string matching, ex: name=foo"},
+ {Name: "--csv", Description: "Output is csv format [alias: --output=csv]"},
+ {Name: "--output", Description: "Output in a more machine friendly format"},
+ {Name: "-x", Description: "Show extra columns"},
+ {Name: "--no-truncate", Description: "Do not truncate output to fit screen"},
+ {Name: "--no-header", Description: "Hide table header from output"},
+ {Name: "--core", Description: "Show core plugins"},
+ {Name: "-v", Description: "Plugin to inspect"},
+ {Name: "-r", Description: "Refresh cache (ignores displaying instructions)"},
+ {Name: "--from-local", Description: "Interactively choose an already installed version"},
+ {Name: "-n", Description: "Unique object name for the custom metadata type"},
+ {Name: "-p", Description: "Plural version of the label value; if blank, uses label"},
+ {Name: "-d", Description: "Directory to store the newly-created custom metadata type files"},
+ {Name: "-f", Description: "Type of field"},
+ {Name: "-s", Description: "Number of decimal places to use for Number or Percent fields"},
+ {Name: "-u", Description: "Username or alias for the target org; overrides default target org"},
+ {Name: "--apiversion", Description: "Override the api version used for api requests made by this command"},
+ {Name: "-t", Description: "API name of the custom metadata type to create a record for"},
+ {Name: "-c", Description: "Retrieves code coverage results"},
+ {Name: "-w", Description: "Invoke Apex tests"},
+ {Name: "-g", Description: "Set config var globally (to be used from any directory)"},
+ {Name: "-b", Description: "The ID of the batch whose status you want to view"},
+ {Name: "--perflog", Description: "Get API performance data"},
+ {Name: "-q", Description: "SOQL query to execute"},
+ {Name: "--confighelp", Description: "Authorize an org using an existing Salesforce access token"},
+ {Name: "-a", Description: "Set an alias for the authenticated org"},
+ },
+ })
+}
diff --git a/commands/ops/sftp.go b/commands/ops/sftp.go
new file mode 100644
index 0000000..e2e1b3e
--- /dev/null
+++ b/commands/ops/sftp.go
@@ -0,0 +1,31 @@
+package ops
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "sftp",
+ Description: "OpenSSH secure file transfer",
+ Options: []core.Option{
+ {Name: "--help", Description: "Show help for sftp"},
+ {Name: "-4", Description: "Forces scp to use IPv4 addresses only"},
+ {Name: "-6", Description: "Forces scp to use IPv6 addresses only"},
+ {Name: "-A", Description: "The buffer size"},
+ {Name: "-b", Description: "The batch file"},
+ {Name: "-C", Description: "Compression enable. Passes the -C flag to ssh(1) to enable compression"},
+ {Name: "-c", Description: "The selected cipher specification"},
+ {Name: "-D", Description: "Path to the SFTP server"},
+ {Name: "-F", Description: "The selected ssh config"},
+ {Name: "-f", Description: "Requests that files be flushed to disk immediately after transfer"},
+ {Name: "-i", Description: "Specified identity file"},
+ {Name: "-J", Description: "Scp destination"},
+ {Name: "-l", Description: "Limits the used bandwidth, specified in Kbit/s"},
+ {Name: "-N", Description: "Disables quiet mode, e.g. to override the implicit quiet mode set by the -b flag"},
+ {Name: "-o", Description: "Preserves modification times, access times, and modes from the original file"},
+ {Name: "-q", Description: "The number of requests"},
+ {Name: "-r", Description: "Path to the SFTP server"},
+ },
+ })
+}
diff --git a/commands/ops/space.go b/commands/ops/space.go
new file mode 100644
index 0000000..36d5827
--- /dev/null
+++ b/commands/ops/space.go
@@ -0,0 +1,45 @@
+package ops
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "space",
+ Description: "Deta Space CLI for mananging Deta Space projects",
+ Subcommands: []core.Subcommand{
+ {Name: "completion", Description: "Generate the autocompletion script for the specified shell"},
+ {Name: "bash", Description: "Generate the autocompletion script for bash"},
+ {Name: "fish", Description: "Generate the autocompletion script for fish"},
+ {Name: "powershell", Description: "Generate the autocompletion script for powershell"},
+ {Name: "zsh", Description: "Generate the autocompletion script for zsh"},
+ {Name: "link", Description: "Link code to project"},
+ {Name: "login", Description: "Login to space"},
+ {Name: "new", Description: "Create new project"},
+ {Name: "open", Description: "Open current project in browser"},
+ {Name: "push", Description: "Push code for project"},
+ {Name: "release", Description: "Create release for a project"},
+ {Name: "validate", Description: "Validate spacefile in dir"},
+ {Name: "version", Description: "Space CLI version"},
+ {Name: "upgrade", Description: "Upgrade Space CLI version"},
+ {Name: "help", Description: "Help about any command"},
+ },
+ Options: []core.Option{
+ {Name: "--no-descriptions", Description: "Disable completion descriptions"},
+ {Name: "--dir", Description: "Src of project to link"},
+ {Name: "--id", Description: "Project id of project to link"},
+ {Name: "--blank", Description: "Create blank project"},
+ {Name: "--name", Description: "Project name"},
+ {Name: "--open", Description: "Open builder instance/project in browser after push"},
+ {Name: "--skip-logs", Description: "Skip following logs after push"},
+ {Name: "--tag", Description: "Tag to identify this push"},
+ {Name: "--confirm", Description: "Release latest revision"},
+ {Name: "--listed", Description: "Listed on discovery"},
+ {Name: "--notes", Description: "Release notes"},
+ {Name: "--rid", Description: "Revision id for release"},
+ {Name: "--version", Description: "Version for the release"},
+ {Name: "--help", Description: "Display help"},
+ },
+ })
+}
diff --git a/commands/ops/sqlite3.go b/commands/ops/sqlite3.go
new file mode 100644
index 0000000..e320496
--- /dev/null
+++ b/commands/ops/sqlite3.go
@@ -0,0 +1,42 @@
+package ops
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "sqlite3",
+ Description: "A command line interface for SQLite version 3",
+ Options: []core.Option{
+ {Name: "-append", Description: "Append the database to the end of the file"},
+ {Name: "-ascii", Description: "Set output mode to 'ascii'"},
+ {Name: "-bail", Description: "Stop after hitting an error"},
+ {Name: "-batch", Description: "Force batch I/O"},
+ {Name: "-column", Description: "Set output mode to 'column'"},
+ {Name: "-cmd", Description: "Set output mode to 'csv'"},
+ {Name: "-echo", Description: "Print commands before execution"},
+ {Name: "-init", Description: "Read/process named file"},
+ {Name: "-header", Description: "Turn headers on"},
+ {Name: "-noheader", Description: "Turn headers off"},
+ {Name: "-help", Description: "Show help message"},
+ {Name: "-html", Description: "Set output mode to HTML"},
+ {Name: "-interactive", Description: "Force interactive I/O"},
+ {Name: "-line", Description: "Set output mode to 'line'"},
+ {Name: "-list", Description: "Set output mode to 'list'"},
+ {Name: "-lookaside", Description: "Use N entries of SZ bytes for lookaside memory"},
+ {Name: "-memtrace", Description: "Trace all memory allocations and deallocations"},
+ {Name: "-mmap", Description: "Default mmap size set to N"},
+ {Name: "-newline", Description: "Set output row separator"},
+ {Name: "-nofollow", Description: "Refuse to open symbolic links to database files"},
+ {Name: "-nullvalue", Description: "Set text string for NULL values"},
+ {Name: "-pagecache", Description: "Use N slots of SZ bytes each for page cache memory"},
+ {Name: "-quote", Description: "Set output mode to 'quote'"},
+ {Name: "-readonly", Description: "Open the database read-only"},
+ {Name: "-separator", Description: "Set output column separator"},
+ {Name: "-stats", Description: "Print memory stats before each finalize"},
+ {Name: "-version", Description: "Show SQLite version"},
+ {Name: "-vfs", Description: "Use NAME as the default VFS"},
+ },
+ })
+}
diff --git a/commands/ops/src.go b/commands/ops/src.go
new file mode 100644
index 0000000..867f9be
--- /dev/null
+++ b/commands/ops/src.go
@@ -0,0 +1,45 @@
+package ops
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "src",
+ Description: "Interact with Sourcegraph from the command line",
+ Subcommands: []core.Subcommand{
+ {Name: "apply", Description: "Apply batch"},
+ {Name: "exec", Description: "Execute batch"},
+ {Name: "new", Description: "New batch"},
+ {Name: "preview", Description: "Preview batch"},
+ {Name: "repositories", Description: "Repositories to batch"},
+ {Name: "validate", Description: "Validate batch"},
+ {Name: "edit", Description: "Edit config"},
+ {Name: "get", Description: "Get configs"},
+ {Name: "list", Description: "List configs"},
+ {Name: "upload", Description: "Upload LSIF dump"},
+ {Name: "create", Description: "Create an organization"},
+ {Name: "delete", Description: "Delete an organization"},
+ {Name: "members", Description: "List organization members"},
+ {Name: "tag", Description: "Tag user"},
+ },
+ Options: []core.Option{
+ {Name: "-display", Description: "Log GraphQL requests and responses to stdout"},
+ {Name: "-explain-json", Description: "Explain the JSON output schema and exit"},
+ {Name: "-get-curl", Description: "Skip validation of TLD certificates against trusted chains"},
+ {Name: "-json", Description: "Whether or not to output results as JSON"},
+ {Name: "-less", Description: "Pipe output to `less -R` (only if stdout is terminal, and not json flag)"},
+ {Name: "-stream", Description: "Log the trace ID for requests"},
+ {Name: "-user-agent-telemetry", Description: "Sourcegraph API Access"},
+ {Name: "-insecure-skip-verify", Description: "Skip validation of TLS certificates against trusted chains"},
+ {Name: "-query", Description: "Log the trace ID for requests"},
+ {Name: "-trace", Description: "Log the trace ID for requests"},
+ {Name: "-addr", Description: "Address on which to server (end with : for unused port)"},
+ {Name: "-list", Description: "List found repository names"},
+ {Name: "-context", Description: "Comma-separated list of key=value pairs to add to the script execution context"},
+ {Name: "-dump-requests", Description: "Log GraphQL requests and responses to stdout"},
+ {Name: "-secrets", Description: "Log the trace ID for requests"},
+ },
+ })
+}
diff --git a/commands/ops/ssh_keygen.go b/commands/ops/ssh_keygen.go
new file mode 100644
index 0000000..43b1178
--- /dev/null
+++ b/commands/ops/ssh_keygen.go
@@ -0,0 +1,53 @@
+package ops
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "ssh-keygen",
+ Description: "Generates, manages and converts authentication keys for ssh",
+ Options: []core.Option{
+ {Name: "-A", Description: "When saving a private key, this option specifies the number of KDF"},
+ {Name: "-B", Description: "Show the bubblebabble digest of specified private or public key file"},
+ {Name: "-b", Description: "Specifies the number of bits in the key to create"},
+ {Name: "-C", Description: "Provides a new comment"},
+ {Name: "-c", Description: "Requests changing the comment in the private and public key files"},
+ {Name: "-D", Description: "Download the public keys provided by the PKCS#11"},
+ {Name: "-E", Description: "Specifies the hash algorithm used"},
+ {Name: "-e", Description: "Read a OpenSSH key file and print to stdout"},
+ {Name: "-F", Description: "Search for the specified hostname (with optional port number)"},
+ {Name: "-f", Description: "Specifies the filename of the key file"},
+ {Name: "-g", Description: "Use generic DNS format when printing fingerprint resource records"},
+ {Name: "-H", Description: "Hash a known_hosts file"},
+ {Name: "-h", Description: "Create a host certificate instead of a user"},
+ {Name: "-I", Description: "Specify the key identity when signing a public key"},
+ {Name: "-i", Description: "Read an unencrypted private (or public) key file"},
+ {Name: "-K", Description: "Download resident keys from a FIDO authenticator"},
+ {Name: "-k", Description: "Generate a KRL file"},
+ {Name: "-L", Description: "Generate a KRL file"},
+ {Name: "-l", Description: "Show fingerprint of specified public key file"},
+ {Name: "-M", Description: "Use for Moduli generation"},
+ {Name: "-m", Description: "Specify a key format for key generation"},
+ {Name: "-N", Description: "Provides the new passphrase"},
+ {Name: "-n", Description: "Principals to be included in a certificate when signing a key"},
+ {Name: "-O", Description: "Specify a key/value option"},
+ {Name: "-P", Description: "Provides the (old) passphrase"},
+ {Name: "-p", Description: "Test whether keys have been revoked in a KRL"},
+ {Name: "-q", Description: "Silence ssh-keygen"},
+ {Name: "-R", Description: "Removes all keys belonging to hostname"},
+ {Name: "-r", Description: "Hostname for the specified public key file"},
+ {Name: "-s", Description: "Certify (sign) a public key using the specified CA key"},
+ {Name: "-t", Description: "Specifies the type of key to create"},
+ {Name: "-U", Description: "Update a KRL"},
+ {Name: "-V", Description: "Specify a validity interval when signing a certificate"},
+ {Name: "-v", Description: "Verbose mode"},
+ {Name: "-w", Description: "Path to library to be used when creating FIDO authenticator-hosted keys"},
+ {Name: "-Y", Description: "Find the principal(s) associated with the public key of a signature"},
+ {Name: "-y", Description: "Read a private OpenSSH format file and print an OpenSSH public key to stdout"},
+ {Name: "-Z", Description: "Cipher to use for encryption"},
+ {Name: "-z", Description: "Serial number to distinguish this certificate"},
+ },
+ })
+}
diff --git a/commands/ops/stripe.go b/commands/ops/stripe.go
new file mode 100644
index 0000000..8bece4f
--- /dev/null
+++ b/commands/ops/stripe.go
@@ -0,0 +1,102 @@
+package ops
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "stripe",
+ Description: "Stripe CLI - build, test, and manage your Stripe integrations right from your terminal",
+ Subcommands: []core.Subcommand{
+ {Name: "login", Description: "Connects to your Stripe account"},
+ {Name: "logout", Description: "Disconnects your Stripe account"},
+ {Name: "config", Description: "Manage Stripe CLI configuration", Subcommands: []core.Subcommand{
+ {Name: "list", Description: "List all configured options"},
+ {Name: "set", Description: "Set a value for the specified configuration option"},
+ {Name: "unset", Description: "Remove a key-value pair from the config file"},
+ }},
+ {Name: "completion", Description: "Generates shell autocompletions"},
+ {Name: "status", Description: "Displays Stripe's system status and service availability"},
+ {Name: "open", Description: "Opens Stripe dashboard pages in your web browser", Subcommands: []core.Subcommand{
+ {Name: "login", Description: "Open the login page"},
+ {Name: "dashboard", Description: "Open the dashboard"},
+ {Name: "api", Description: "Open API reference docs"},
+ {Name: "webhooks", Description: "Open webhooks dashboard"},
+ {Name: "logs", Description: "Open logs dashboard"},
+ {Name: "settings", Description: "Open account settings"},
+ }},
+ {Name: "listen", Description: "Receives webhook events from Stripe locally"},
+ {Name: "trigger", Description: "Trigger webhook events", Subcommands: []core.Subcommand{
+ {Name: "account.updated", Description: "Occurs whenever an account status or property has changed"},
+ {Name: "account.external_account.created", Description: "Occurs whenever an external account is created"},
+ {Name: "account.external_account.deleted", Description: "Occurs whenever an external account is deleted"},
+ {Name: "account.external_account.updated", Description: "Occurs whenever an external account is updated"},
+ {Name: "application_fee.created", Description: "Occurs whenever an application fee is created on a charge"},
+ {Name: "application_fee.refund.updated", Description: "Occurs whenever an application fee refund is updated"},
+ {Name: "billing_portal.configuration.created", Description: "Occurs whenever a portal configuration is created"},
+ {Name: "billing_portal.configuration.updated", Description: "Occurs whenever a portal configuration is updated"},
+ {Name: "capability.updated", Description: "Occurs whenever a capability has new requirements or a new status"},
+ {Name: "charge.expired", Description: "Occurs whenever an uncaptured charge expires"},
+ {Name: "charge.pending", Description: "Occurs whenever a pending charge is created"},
+ {Name: "charge.updated", Description: "Occurs whenever a charge description or metadata is updated"},
+ {Name: "charge.dispute.funds_withdrawn", Description: "Occurs when funds are removed from your account due to a dispute"},
+ {Name: "charge.dispute.updated", Description: "Occurs when the dispute is updated (usually with evidence)"},
+ {Name: "charge.refund.updated", Description: "Occurs whenever a refund is updated, on selected payment methods"},
+ {Name: "checkout.session.async_payment_failed", Description: "Occurs when a payment intent using a delayed payment method fails"},
+ {Name: "coupon.created", Description: "Occurs whenever a coupon is created"},
+ {Name: "coupon.deleted", Description: "Occurs whenever a coupon is deleted"},
+ {Name: "coupon.updated", Description: "Occurs whenever a coupon is updated"},
+ {Name: "credit_note.created", Description: "Occurs whenever a credit note is created"},
+ {Name: "credit_note.updated", Description: "Occurs whenever a credit note is updated"},
+ {Name: "credit_note.voided", Description: "Occurs whenever a credit note is voided"},
+ {Name: "customer.discount.created", Description: "Occurs whenever a coupon is attached to a customer"},
+ {Name: "customer.discount.deleted", Description: "Occurs whenever a coupon is removed from a customer"},
+ }},
+ {Name: "logs", Description: "Interact with Stripe request logs", Subcommands: []core.Subcommand{
+ {Name: "tail", Description: "Stream request logs from Stripe"},
+ }},
+ {Name: "get", Description: "Make a GET request to the Stripe API"},
+ {Name: "post", Description: "Make a POST request to the Stripe API"},
+ {Name: "delete", Description: "Make a DELETE request to the Stripe API"},
+ },
+ Options: []core.Option{
+ {Name: "--api-key", Description: "Sets your API key to use for the command"},
+ {Name: "--color", Description: "Enables or disables color output"},
+ {Name: "--config", Description: "Sets your config file"},
+ {Name: "--device-name", Description: "Runs command on behalf of another device"},
+ {Name: "-h", Description: "Provides the help documentation for commands, flags, and arguments"},
+ {Name: "--log-level", Description: "Set the level of detail for log messages"},
+ {Name: "-v", Description: "Prints the version of the Stripe CLI"},
+ {Name: "-s", Description: "Shows response HTTP headers"},
+ {Name: "-c", Description: "Skips the warning prompt and automatically confirms the command being entered"},
+ {Name: "--dark-style", Description: "Uses a darker color scheme"},
+ {Name: "-d", Description: "Additional data to send with an API request"},
+ {Name: "-e", Description: "Response attributes to expand inline"},
+ {Name: "-i", Description: "Makes a live request"},
+ {Name: "--stripe-account", Description: "Specify the Stripe account to use for this request"},
+ {Name: "--filter-account", Description: "Filters request logs by the source and destination account"},
+ {Name: "--filter-http-method", Description: "Filters request logs by HTTP method"},
+ {Name: "--filter-ip-address", Description: "Filters request logs by IP address"},
+ {Name: "--filter-request-path", Description: "Filters request logs that directly match any Stripe path"},
+ {Name: "--filter-request-status", Description: "Filters request logs by the response status"},
+ {Name: "--filter-source", Description: "Filters request logs by the source of each request"},
+ {Name: "--filter-status-code", Description: "Filters request logs by HTTP status code"},
+ {Name: "--filter-status-code-type", Description: "Filters request logs by the type of HTTP status code"},
+ {Name: "--format", Description: "Specify the output format for request logs"},
+ {Name: "--hide-spinner", Description: "Hides the loading spinner when polling"},
+ {Name: "--poll", Description: "Keeps polling for status updates"},
+ {Name: "--poll-rate", Description: "The number of seconds (min 5) to wait between status updates"},
+ {Name: "--verbose", Description: "Shows the status of all Stripe systems"},
+ {Name: "--live", Description: "Opens the Dashboard for your live integrations"},
+ {Name: "--connect-headers", Description: "A comma-separated list of custom HTTP headers to any connected accounts"},
+ {Name: "-f", Description: "The URL that webhook events will be forwarded to"},
+ {Name: "-H", Description: "A comma-separated list of custom HTTP headers to forward"},
+ {Name: "-l", Description: "Receive events used in the latest API version"},
+ {Name: "-a", Description: "Listen for all webhook events based on existing webhook endpoints"},
+ {Name: "-j", Description: "Print JSON objects to stdout"},
+ {Name: "--skip-verify", Description: "Skip certificate verification when forwarding to HTTPS endpoints"},
+ {Name: "--account", Description: "Resend the event to the given Stripe account"},
+ },
+ })
+}
diff --git a/commands/ops/supabase.go b/commands/ops/supabase.go
new file mode 100644
index 0000000..03f32dc
--- /dev/null
+++ b/commands/ops/supabase.go
@@ -0,0 +1,86 @@
+package ops
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "supabase",
+ Description: "Supabase CLI",
+ Subcommands: []core.Subcommand{
+ {Name: "completion", Description: "Generate the autocompletion script for the specified shell"},
+ {Name: "bash", Description: "Generate the autocompletion script for bash"},
+ {Name: "fish", Description: "Generate the autocompletion script for fish"},
+ {Name: "powershell", Description: "Generate the autocompletion script for powershell"},
+ {Name: "zsh", Description: "Generate the autocompletion script for zsh"},
+ {Name: "db", Description: "Manage local Postgres databases"},
+ {Name: "branch", Description: "Manage local database branches"},
+ {Name: "create", Description: "Create a branch"},
+ {Name: "delete", Description: "Delete a branch"},
+ {Name: "list", Description: "List branches"},
+ {Name: "switch", Description: "Switch the active branch"},
+ {Name: "diff", Description: "Diffs the local database for schema changes"},
+ {Name: "dump", Description: "Dumps data or schemas from the remote database"},
+ {Name: "lint", Description: "Checks local database for typing error"},
+ {Name: "pull", Description: "Pull schema from the remote database"},
+ {Name: "push", Description: "Push new migrations to the remote database"},
+ {Name: "remote", Description: "Manage remote databases"},
+ {Name: "changes", Description: "Show changes on the remote database"},
+ {Name: "commit", Description: "Commit remote changes as a new migration"},
+ {Name: "reset", Description: "Resets the local database to current migrations"},
+ {Name: "functions", Description: "Manage Supabase Edge functions"},
+ {Name: "deploy", Description: "Deploy a Function to Supabase"},
+ {Name: "new", Description: "Create a new Function locally"},
+ {Name: "serve", Description: "Serve a Function locally"},
+ {Name: "gen", Description: "Run code generation tools"},
+ {Name: "types", Description: "Generate types from Postgres schema"},
+ {Name: "typescript", Description: "Generate types for TypeScript"},
+ {Name: "init", Description: "Initialize a local project"},
+ {Name: "link", Description: "Link to a Supabase project"},
+ {Name: "login", Description: "Authenticate using an access token"},
+ {Name: "migration", Description: "Manage database migration scripts"},
+ {Name: "repair", Description: "Repair the migration history table"},
+ {Name: "squash", Description: "Squash migrations to a single file"},
+ {Name: "up", Description: "Apply pending migrations to local database"},
+ {Name: "orgs", Description: "Manage Supabase organizations"},
+ {Name: "projects", Description: "Manage Supabase projects"},
+ {Name: "secrets", Description: "Manage Supabase secrets"},
+ {Name: "set", Description: "Set a secret(s) on Supabase"},
+ {Name: "unset", Description: "Unset a secret(s) on Supabase"},
+ {Name: "start", Description: "Start containers for Supabase local development"},
+ {Name: "status", Description: "Show status of local Supabase containers"},
+ {Name: "stop", Description: "Stop all local Supabase containers"},
+ {Name: "help", Description: "Help about any command"},
+ },
+ Options: []core.Option{
+ {Name: "--no-descriptions", Description: "Disable completion descriptions"},
+ {Name: "--file", Description: "Saves schema diff to a file"},
+ {Name: "--schema", Description: "List of schema to include"},
+ {Name: "--use-migra", Description: "Use migra to generate schema diff"},
+ {Name: "--data-only", Description: "Dumps only data records"},
+ {Name: "--db-url", Description: "Prints the pg_dump script that would be executed"},
+ {Name: "-h", Description: "Help for dump"},
+ {Name: "--keep-comments", Description: "Keeps commented lines from pg_dump output"},
+ {Name: "--linked", Description: "Dumps from the linked project. (default true)"},
+ {Name: "--local", Description: "Dumps from the local database"},
+ {Name: "--password", Description: "Password to your remote Postgres database"},
+ {Name: "--role-only", Description: "Dumps only cluster roles"},
+ {Name: "--use-copy", Description: "Uses copy statements in place of inserts"},
+ {Name: "--level", Description: "Error level to emit"},
+ {Name: "--dry-run", Description: "Print the migrations that would be applied, but don't actually apply them"},
+ {Name: "--project-ref", Description: "Project ref of the Supabase project"},
+ {Name: "--no-verify-jwt", Description: "Disable JWT verification for the Function"},
+ {Name: "--env-file", Description: "Path to an env file to be populated to the Function environment"},
+ {Name: "--status", Description: "Version status to update"},
+ {Name: "--version", Description: "Squash up to the specified version"},
+ {Name: "--db-password", Description: "Database password of the project"},
+ {Name: "--interactive", Description: "Enables interactive mode"},
+ {Name: "--org-id", Description: "Organization ID to create the project in"},
+ {Name: "--plan", Description: "Select a plan that suits your needs"},
+ {Name: "--region", Description: "Select a region close to you for the best performance"},
+ {Name: "--debug", Description: "Output debug logs to stderr"},
+ {Name: "--help", Description: "Display help"},
+ },
+ })
+}
diff --git a/commands/ops/surreal.go b/commands/ops/surreal.go
new file mode 100644
index 0000000..7a44659
--- /dev/null
+++ b/commands/ops/surreal.go
@@ -0,0 +1,45 @@
+package ops
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "surreal",
+ Description: "Database authentication password to use when connecting [default: root]",
+ Subcommands: []core.Subcommand{
+ {Name: "help", Description: "Print this message or the help of the given subcommand(s)"},
+ {Name: "start", Description: "Start the database server"},
+ {Name: "path", Description: "Database path used for storing data [env: DB_PATH=] [default: memory]"},
+ {Name: "key", Description: "Encryption key to use for on-disk encryption [env: KEY=]"},
+ {Name: "kvs-ca", Description: "Path to the CA file used when connecting to the remote KV store [env: KVS_CA=]"},
+ {Name: "pass", Description: "The master password for the database [env: PASS=]"},
+ {Name: "strict", Description: "Whether strict mode is enabled on this database instance [env: STRICT=]"},
+ {Name: "user", Description: "The master username for the database [env: USER=] [default: root]"},
+ {Name: "web-crt", Description: "Path to the certificate file for encrypted client connections [env: WEB_CRT=]"},
+ {Name: "web-key", Description: "Path to the private key file for encrypted client connections [env: WEB_KEY=]"},
+ {Name: "backup", Description: "Backup data to or from an existing database"},
+ {Name: "from", Description: "Path to the remote database or file from which to export"},
+ {Name: "into", Description: "Path to the remote database or file into which to import"},
+ {Name: "import", Description: "Import a SurrealQL script into an existing database"},
+ {Name: "export", Description: "Export an existing database as a SurrealQL script"},
+ {Name: "version", Description: "Output the command-line tool version information"},
+ {Name: "sql", Description: "Start an SQL REPL in your terminal with pipe support"},
+ },
+ Options: []core.Option{
+ {Name: "--pass", Description: "Database authentication password to use when connecting [default: root]"},
+ {Name: "--user", Description: "Database authentication username to use when connecting [default: root]"},
+ {Name: "--conn", Description: "Remote database server url to connect to [default: https://cloud.surrealdb.com]"},
+ {Name: "--ns", Description: "Print this message or the help of the given subcommand(s)"},
+ {Name: "--addr", Description: "Encryption key to use for on-disk encryption [env: KEY=]"},
+ {Name: "--kvs-ca", Description: "Path to the CA file used when connecting to the remote KV store [env: KVS_CA=]"},
+ {Name: "--kvs-crt", Description: "The master password for the database [env: PASS=]"},
+ {Name: "--strict", Description: "Whether strict mode is enabled on this database instance [env: STRICT=]"},
+ {Name: "--web-crt", Description: "Path to the certificate file for encrypted client connections [env: WEB_CRT=]"},
+ {Name: "--web-key", Description: "Path to the private key file for encrypted client connections [env: WEB_KEY=]"},
+ {Name: "--pretty", Description: "Whether database responses should be pretty printed"},
+ {Name: "--help", Description: "Print help information"},
+ },
+ })
+}
diff --git a/commands/ops/tailscale.go b/commands/ops/tailscale.go
new file mode 100644
index 0000000..d93b16c
--- /dev/null
+++ b/commands/ops/tailscale.go
@@ -0,0 +1,70 @@
+package ops
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "tailscale",
+ Description: "Connect to Tailscale, logging in if needed",
+ Subcommands: []core.Subcommand{
+ {Name: "up", Description: "Connect to Tailscale, logging in if needed"},
+ {Name: "down", Description: "Disconnect from Tailscale"},
+ {Name: "logout", Description: "Disconnect from Tailscale and expire current node key"},
+ {Name: "netcheck", Description: "Print an analysis of local network conditions"},
+ {Name: "ip", Description: "Show Tailscale IP addresses"},
+ {Name: "status", Description: "Show state of tailscaled and its connections"},
+ {Name: "ping", Description: "Ping a host at the Tailscale layer, see how it routed"},
+ {Name: "nc", Description: "Connect to a port on a host, connected to stdin/stdout"},
+ {Name: "ssh", Description: "SSH to a Tailscale machine"},
+ {Name: "version", Description: "Print Tailscale version"},
+ {Name: "web", Description: "Run a web server for controlling Tailscale"},
+ {Name: "file", Description: "Send or receive files"},
+ {Name: "cp", Description: "Copy file(s) to a host"},
+ {Name: "get", Description: "Move files out of the Tailscale file inbox"},
+ {Name: "bugreport", Description: "Print a shareable identifier to help diagnose issues"},
+ {Name: "cert", Description: "Get TLS certs"},
+ {Name: "help", Description: "Print help message"},
+ },
+ Options: []core.Option{
+ {Name: "--accept-dns", Description: "Accept DNS configuration from the admin panel"},
+ {Name: "--accept-routes", Description: "Accept routes advertised by other Tailscale nodes"},
+ {Name: "--advertise-exit-node", Description: "Offer to be an exit node for internet traffic for the tailnet"},
+ {Name: "--advertise-routes", Description: "Allow direct access to the local network when routing traffic via an exit node"},
+ {Name: "--force-reauth", Description: "Force reauthentication"},
+ {Name: "--host-routes", Description: "Install host routes to other Tailscale nodes"},
+ {Name: "--hostname", Description: "Hostname to use instead of the one provided by the OS"},
+ {Name: "--json", Description: "Output in JSON format"},
+ {Name: "--login-server", Description: "Login server to use"},
+ {Name: "--operator", Description: "Unix username to allow to operate on tailscaled without sudo"},
+ {Name: "--qr", Description: "Show QR code for login URLs"},
+ {Name: "--reset", Description: "Reset unspecified settings to their default values"},
+ {Name: "--shields-up", Description: "Don't allow incoming connections"},
+ {Name: "--ssh", Description: "Run an SSH server, permitting access per tailnet admin's declared policy"},
+ {Name: "--help", Description: "Show help message"},
+ {Name: "--every", Description: "If non-zero, do an incremental report with the given frequency"},
+ {Name: "--format", Description: "Output format"},
+ {Name: "--verbose", Description: "Verbose logs"},
+ {Name: "--1", Description: "Only print one IP address"},
+ {Name: "--4", Description: "Only print IPv4 address"},
+ {Name: "--6", Description: "Only print IPv6 address"},
+ {Name: "--active", Description: "Filter output to only peers with active sessions"},
+ {Name: "--browser", Description: "Open a browser in web mode"},
+ {Name: "--listen", Description: "Listen address for web mode; use port 0 for automatic (default 127.0.0.1:8384)"},
+ {Name: "--peers", Description: "Show status of peers"},
+ {Name: "--self", Description: "Show status of local machine"},
+ {Name: "--web", Description: "Run webserver with HTML showing status"},
+ {Name: "--c", Description: "Max number of pings to send"},
+ {Name: "--timeout", Description: "Timeout before giving up on a ping"},
+ {Name: "--tsmp", Description: "Do a TSMP-level ping (through IP + wireguard, but not involving host OS stack)"},
+ {Name: "--until-direct", Description: "Stop once a direct path is established"},
+ {Name: "--daemon", Description: "Also print local node's daemon version"},
+ {Name: "--cgi", Description: "Run as CGI script"},
+ {Name: "--cert-file", Description: "Stdout"},
+ {Name: "--key-file", Description: "Stdout"},
+ {Name: "--serve-demo", Description: "Show help message"},
+ {Name: "--socket", Description: "Path to tailscaled's unix socket"},
+ },
+ })
+}
diff --git a/commands/ops/terraform.go b/commands/ops/terraform.go
new file mode 100644
index 0000000..d56e2d2
--- /dev/null
+++ b/commands/ops/terraform.go
@@ -0,0 +1,39 @@
+package ops
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "terraform",
+ Description: "Workspace",
+ Subcommands: []core.Subcommand{
+ {Name: "show", Description: "Display the current workspace"},
+ {Name: "list", Description: "List the workspace"},
+ {Name: "delete", Description: "Delete the specified workspace"},
+ {Name: "select", Description: "Change the current working workspace"},
+ },
+ Options: []core.Option{
+ {Name: "-lock", Description: "Lock the state file when locking is supported. Defaults to true"},
+ {Name: "-force", Description: "Delete the workspace even if its state is not empty. Defaults to false"},
+ {Name: "-lock-timeout", Description: "Duration to retry a state lock. Default 0s"},
+ {Name: "-input", Description: "Ask for input for variables if not directly set"},
+ {Name: "-no-color", Description: "Disables output with coloring"},
+ {Name: "-help", Description: "Show this help output, or the help for a specified subcommand"},
+ {Name: "-chdir", Description: "Switch to a different working directory before executing the given subcommand"},
+ {Name: "-version", Description: "Show the current Terraform version"},
+ {Name: "-upgrade", Description: "Check whether the configuration is valid"},
+ {Name: "-compact-warnings", Description: "If set, generates a plan to destroy all the known resources"},
+ {Name: "-detailed-exitcode", Description: "Return a detailed exit code when the command exits"},
+ {Name: "-out", Description: "The path to save the generated execution plan"},
+ {Name: "-parallelism", Description: "Update the state prior to checking for differences"},
+ {Name: "-state", Description: "A Resource Address to target. This flag can be used multiple times"},
+ {Name: "-var", Description: "Set variables in the Terraform configuration from a variable file"},
+ {Name: "-update", Description: "Generate a Graphviz graph of the steps in an operation"},
+ {Name: "-allow-missing", Description: "Remove the 'tainted' state from a resource instance"},
+ {Name: "-install-autocomplete", Description: "Install bash/zsh tab completion"},
+ {Name: "-uninstall-autocomplete", Description: "Uninstall bash/zsh tab completion"},
+ },
+ })
+}
diff --git a/commands/ops/terragrunt.go b/commands/ops/terragrunt.go
new file mode 100644
index 0000000..48e8e72
--- /dev/null
+++ b/commands/ops/terragrunt.go
@@ -0,0 +1,50 @@
+package ops
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "terragrunt",
+ Description: "Workspace",
+ Subcommands: []core.Subcommand{
+ {Name: "show", Description: "Display the current workspace"},
+ {Name: "list", Description: "List the workspace"},
+ {Name: "delete", Description: "Delete the specified workspace"},
+ {Name: "select", Description: "Change the current working workspace"},
+ },
+ Options: []core.Option{
+ {Name: "-lock", Description: "Lock the state file when locking is supported. Defaults to true"},
+ {Name: "-force", Description: "Delete the workspace even if its state is not empty. Defaults to false"},
+ {Name: "-lock-timeout", Description: "Duration to retry a state lock. Default 0s"},
+ {Name: "-input", Description: "Ask for input for variables if not directly set"},
+ {Name: "-no-color", Description: "Disables output with coloring"},
+ {Name: "-h", Description: "Show this help output, or the help for a specified subcommand"},
+ {Name: "-v", Description: "Show the current Terragrunt version"},
+ {Name: "--terragrunt-config", Description: "Path to the Terragrunt config file. Default is terragrunt.hcl"},
+ {Name: "--terragrunt-tfpath", Description: "Path to the Terraform binary. Default is terraform (on PATH)"},
+ {Name: "--terragrunt-no-auto-init", Description: "Don't automatically re-run command in case of transient errors"},
+ {Name: "--terragrunt-non-interactive", Description: "Assume 'yes' for all prompts"},
+ {Name: "--terragrunt-working-dir", Description: "The path to the Terraform templates. Default is current directory"},
+ {Name: "--terragrunt-download-dir", Description: "*-all commands continue processing components even if a dependency fails"},
+ {Name: "--terragrunt-iam-role", Description: "Unix-style glob of directories to exclude when running *-all commands"},
+ {Name: "--terragrunt-include-dir", Description: "Unix-style glob of directories to include when running *-all commands"},
+ {Name: "--terragrunt-strict-include", Description: "*-all commands will be run disregarding the dependencies"},
+ {Name: "--terragrunt-parallelism", Description: "*-all commands parallelism set to at most N modules"},
+ {Name: "--terragrunt-debug", Description: "Write terragrunt-debug.tfvars to working folder to help root-cause issues"},
+ {Name: "--terragrunt-log-level", Description: "Enable check mode in the hclfmt command"},
+ {Name: "--terragrunt-hclfmt-file", Description: "The path to a single hcl file that the hclfmt command should run on"},
+ {Name: "--terragrunt-override-attr", Description: "Prepare your working directory for other commands"},
+ {Name: "-upgrade", Description: "Check whether the configuration is valid"},
+ {Name: "-compact-warnings", Description: "If set, generates a plan to destroy all the known resources"},
+ {Name: "-detailed-exitcode", Description: "Return a detailed exit code when the command exits"},
+ {Name: "-out", Description: "The path to save the generated execution plan"},
+ {Name: "-parallelism", Description: "Update the state prior to checking for differences"},
+ {Name: "-state", Description: "A Resource Address to target. This flag can be used multiple times"},
+ {Name: "-var", Description: "Set variables in the Terraform configuration from a variable file"},
+ {Name: "-update", Description: "Generate a Graphviz graph of the steps in an operation"},
+ {Name: "-allow-missing", Description: "Remove the 'tainted' state from a resource instance"},
+ },
+ })
+}
diff --git a/commands/ops/tfenv.go b/commands/ops/tfenv.go
new file mode 100644
index 0000000..bdc69ba
--- /dev/null
+++ b/commands/ops/tfenv.go
@@ -0,0 +1,26 @@
+package ops
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "tfenv",
+ Description: "Version",
+ Subcommands: []core.Subcommand{
+ {Name: "install", Description: "Install a specific version of Terraform"},
+ {Name: "version", Description: "Possible Terraform Version"},
+ {Name: "use", Description: "Switch to a version to use"},
+ {Name: "uninstall", Description: "Uninstall a specific version of Terraform"},
+ {Name: "list", Description: "List all installed versions"},
+ {Name: "list-remote", Description: "List all installable versions"},
+ {Name: "version-name", Description: "Print current version"},
+ {Name: "init", Description: "Update environment to use tfenv correctly"},
+ },
+ Options: []core.Option{
+ {Name: "-v", Description: "View your current tfenv version"},
+ {Name: "--help", Description: "View commands"},
+ },
+ })
+}
diff --git a/commands/ops/tfsec.go b/commands/ops/tfsec.go
new file mode 100644
index 0000000..bb4db73
--- /dev/null
+++ b/commands/ops/tfsec.go
@@ -0,0 +1,41 @@
+package ops
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "tfsec",
+ Description: "Terraform workspaces",
+ Options: []core.Option{
+ {Name: "--concise-output", Description: "Reduce the amount of output and no statistics"},
+ {Name: "--config-file", Description: "Config file to use during run"},
+ {Name: "--custom-check-dir", Description: "Explicitly the custom checks dir location"},
+ {Name: "--debug", Description: "Enable debug logging (same as verbose)"},
+ {Name: "-G", Description: "Disable grouping of similar results"},
+ {Name: "-e", Description: "Provide comma-separated list of rule IDs to exclude from run"},
+ {Name: "--exclude-downloaded-modules", Description: "Remove results for downloaded modules in .terraform folder"},
+ {Name: "--exclude-path", Description: "Filter results to return specific checks only (supports comma-delimited input)"},
+ {Name: "--force-all-dirs", Description: "Don't search for tf files, include everything below provided directory"},
+ {Name: "-f", Description: "Help for tfsec"},
+ {Name: "--ignore-hcl-errors", Description: "Stop and report an error if an HCL parse error is encountered"},
+ {Name: "--include-ignored", Description: "Include ignored checks in the result output"},
+ {Name: "--include-passed", Description: "Include passed checks in the result output"},
+ {Name: "--migrate-ignores", Description: "Migrate ignore codes to the new ID structure"},
+ {Name: "-m", Description: "The minimum severity to report. One of CRITICAL, HIGH, MEDIUM, LOW"},
+ {Name: "--no-color", Description: "Disable colored output (American style!)"},
+ {Name: "--no-colour", Description: "Disable coloured output"},
+ {Name: "--no-ignores", Description: "Do not apply any ignore rules - normally ignored checks will fail"},
+ {Name: "--no-module-downloads", Description: "Do not download remote modules"},
+ {Name: "-O", Description: "Print a JSON representation of the input supplied to rego policies"},
+ {Name: "--rego-policy-dir", Description: "Directory to load rego policies from (recursively)"},
+ {Name: "--run-statistics", Description: "View statistics table of current findings"},
+ {Name: "--single-thread", Description: "Run checks using a single thread"},
+ {Name: "-s", Description: "Runs checks but suppresses error code"},
+ {Name: "--tfvars-file", Description: "Update to latest version"},
+ {Name: "--verbose", Description: "Enable verbose logging (same as debug)"},
+ {Name: "-v", Description: "Show version information and exit"},
+ },
+ })
+}
diff --git a/commands/ops/tkn.go b/commands/ops/tkn.go
new file mode 100644
index 0000000..8198ff5
--- /dev/null
+++ b/commands/ops/tkn.go
@@ -0,0 +1,96 @@
+package ops
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "tkn",
+ Description: "CLI for tekton pipelines",
+ Subcommands: []core.Subcommand{
+ {Name: "tkb", Description: "Manage Tekton Bundles"},
+ {Name: "list", Description: "List and print a Tekton bundle's contents"},
+ {Name: "push", Description: "Create or replace a Tekton bundle"},
+ {Name: "chains", Description: "Manage Chains"},
+ {Name: "payload", Description: "Print Tekton Chains' payload for a specific taskrun"},
+ {Name: "signature", Description: "Print Tekton Chains' signature for a specific taskrun"},
+ {Name: "ct", Description: "Manage ClusterTasks"},
+ {Name: "create", Description: "Create a ClusterTask from Task"},
+ {Name: "rm", Description: "Delete ClusterTasks in a cluster"},
+ {Name: "desc", Description: "Describe a ClusterTask"},
+ {Name: "ls", Description: "Lists ClusterTasks"},
+ {Name: "logs", Description: "Show ClusterTask logs"},
+ {Name: "start", Description: "Start ClusterTasks"},
+ {Name: "ctb", Description: "Manage ClusterTriggerBindings"},
+ {Name: "completion", Description: "Prints shell completion scripts"},
+ {Name: "el", Description: "Manage EventListeners"},
+ {Name: "hub", Description: "Interact with tekton hub"},
+ {Name: "check-upgrade", Description: "Check for upgrades of resources if present"},
+ {Name: "task", Description: "Check updates for Task installed via Hub CLI"},
+ {Name: "downgrade", Description: "Downgrade an installed resource"},
+ {Name: "get", Description: "Get resource manifest by its name, kind, catalog, and version"},
+ {Name: "pipeline", Description: "Get Pipeline by name, catalog and version"},
+ {Name: "info", Description: "Display info of resource by its name, kind, catalog, and version"},
+ {Name: "install", Description: "Install a resource from a catalog by its kind, name and version"},
+ {Name: "reinstall", Description: "Reinstall a resource by its kind and name"},
+ {Name: "search", Description: "Search resource by a combination of name, kind, categories, platforms, and tags"},
+ {Name: "upgrade", Description: "Upgrade an installed resource"},
+ {Name: "p", Description: "Manage pipelines"},
+ {Name: "export", Description: "Export Pipeline"},
+ {Name: "sign", Description: "Sign Tekton Pipeline"},
+ {Name: "verify", Description: "Verify Tekton Pipeline"},
+ {Name: "pr", Description: "Manage PipelineRuns"},
+ {Name: "cancel", Description: "Cancel a PipelineRun in a namespace"},
+ {Name: "res", Description: "Manage pipeline resources"},
+ {Name: "t", Description: "Manage Tasks"},
+ {Name: "tr", Description: "Manage TaskRuns"},
+ {Name: "tb", Description: "Manage TriggerBindings"},
+ {Name: "tt", Description: "Manage TriggerTemplates"},
+ {Name: "version", Description: "Prints version information"},
+ {Name: "help", Description: "Help about any command"},
+ },
+ Options: []core.Option{
+ {Name: "--allow-missing-template-keys", Description: "A directory to cache Tekton bundles in"},
+ {Name: "--no-cache", Description: "A Bearer token to authenticate against the repository"},
+ {Name: "--remote-password", Description: "If set to true, skips TLS check when connecting to the registry"},
+ {Name: "--remote-username", Description: "If true, keep the managedFields when printing objects in JSON or YAML format"},
+ {Name: "--template", Description: "Create or replace a Tekton bundle"},
+ {Name: "--filenames", Description: "A Bearer token to authenticate against the repository"},
+ {Name: "--kubeconfig", Description: "Kubectl config file (default: $HOME/.kube/config)"},
+ {Name: "--namespace", Description: "Namespace to use (default: from $KUBECONFIG)"},
+ {Name: "--no-color", Description: "Disable coloring (default: false)"},
+ {Name: "--nocolour", Description: "Disable colouring (default: false)"},
+ {Name: "--skip-verify", Description: "Skip verifying the payload'signature"},
+ {Name: "--chains-namespace", Description: "Namespace in which chains is installed"},
+ {Name: "--context", Description: "Name of the kubeconfig context to use (default: kubectl config current-context)"},
+ {Name: "--from", Description: "Create a ClusterTask from Task in a particular namespace"},
+ {Name: "--all", Description: "Delete all ClusterTasks (default: false)"},
+ {Name: "--output", Description: "If true, keep the managedFields when printing objects in JSON or YAML format"},
+ {Name: "--follow", Description: "Stream live logs"},
+ {Name: "--last", Description: "Show logs for last TaskRun"},
+ {Name: "--limit", Description: "Lists number of TaskRuns"},
+ {Name: "--timestamps", Description: "Show logs with timestamp"},
+ {Name: "--dry-run", Description: "Preview TaskRun without running it"},
+ {Name: "--inputresource", Description: "Pass the input resource name and ref as name=ref"},
+ {Name: "--labels", Description: "Pass labels as label=value"},
+ {Name: "--outputresource", Description: "Pass the output resource name and ref as name=ref"},
+ {Name: "--param", Description: "Local or remote file containing a PodTemplate definition"},
+ {Name: "--prefix-name", Description: "Pass the serviceaccount name"},
+ {Name: "--showlog", Description: "Show logs right after starting the ClusterTask"},
+ {Name: "--skip-optional-workspace", Description: "Skips the prompt for optional workspaces"},
+ {Name: "--timeout", Description: "Timeout for TaskRun"},
+ {Name: "--use-param-defaults", Description: "Use default parameter values without prompting for input"},
+ {Name: "--use-taskrun", Description: "Specify a TaskRun name to use its values to re-run the TaskRun"},
+ {Name: "--workspace", Description: "Pass one or more workspaces to map to the corresponding physical volumes"},
+ {Name: "--all-namespaces", Description: "List EventListeners from all namespaces"},
+ {Name: "--tail", Description: "Number of most recent log lines to show. Specify -1 for all logs from each pod"},
+ {Name: "--to", Description: "Version of Resource"},
+ {Name: "--as-clustertask", Description: "Get the Task as ClusterTask"},
+ {Name: "--version", Description: "Version of Resource"},
+ {Name: "--categories", Description: "Accepts a comma separated list of categories"},
+ {Name: "--kinds", Description: "Accepts a comma separated list of kinds"},
+ {Name: "--match", Description: "Accept type of search. 'exact' or 'contains'"},
+ },
+ })
+}
diff --git a/commands/ops/trivy.go b/commands/ops/trivy.go
new file mode 100644
index 0000000..abb7921
--- /dev/null
+++ b/commands/ops/trivy.go
@@ -0,0 +1,62 @@
+package ops
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "trivy",
+ Description: "Skip updating built-in policies [$TRIVY_SKIP_POLICY_UPDATE]",
+ Subcommands: []core.Subcommand{
+ {Name: "image", Description: "Scan an image"},
+ {Name: "filesystem", Description: "Scan local filesystem for language-specific dependencies and config files"},
+ {Name: "rootfs", Description: "Scan rootfs"},
+ {Name: "sbom", Description: "Generate SBOM for an artifact"},
+ {Name: "repository", Description: "Scan remote repository"},
+ {Name: "client", Description: "Client mode"},
+ {Name: "server", Description: "Server mode"},
+ {Name: "config", Description: "Scan config files"},
+ {Name: "plugin", Description: "Manage plugins"},
+ {Name: "install", Description: "Install a plugin"},
+ {Name: "uninstall", Description: "Uninstall plugin"},
+ {Name: "list", Description: "List installed plugin"},
+ {Name: "info", Description: "Information about a plugin"},
+ {Name: "run", Description: "Run a plugin on the fly"},
+ {Name: "update", Description: "Update an existing plugin"},
+ {Name: "help", Description: "Shows a list of commands or help for one command"},
+ {Name: "version", Description: "Print the version"},
+ },
+ Options: []core.Option{
+ {Name: "--skip-policy-update", Description: "Skip updating built-in policies [$TRIVY_SKIP_POLICY_UPDATE]"},
+ {Name: "--removed-pkgs", Description: "Input file path instead of image name [$TRIVY_INPUT]"},
+ {Name: "--config-policy", Description: "Clear image caches without scanning [$TRIVY_CLEAR_CACHE]"},
+ {Name: "--ignorefile", Description: "Timeout (default: 5m0s) [$TRIVY_TIMEOUT]"},
+ {Name: "--offline-scan", Description: "Do not issue API requests to identify dependencies [$TRIVY_OFFLINE_SCAN]"},
+ {Name: "--skip-files", Description: "Specify the file paths to skip traversal [$TRIVY_SKIP_FILES]"},
+ {Name: "--skip-dirs", Description: "Allow insecure server connections when using SSL [$TRIVY_INSECURE]"},
+ {Name: "--severity", Description: "Output file name [$TRIVY_OUTPUT]"},
+ {Name: "--skip-db-update", Description: "Skip updating vulnerability database [$TRIVY_SKIP_UPDATE, $TRIVY_SKIP_DB_UPDATE]"},
+ {Name: "--cache-backend", Description: "Output template [$TRIVY_TEMPLATE]"},
+ {Name: "--format", Description: "Exit code when vulnerabilities were found (default: 0) [$TRIVY_EXIT_CODE]"},
+ {Name: "--vuln-type", Description: "Specify the Rego file to evaluate each vulnerability [$TRIVY_IGNORE_POLICY]"},
+ {Name: "--list-all-pkgs", Description: "Suppress progress bar [$TRIVY_NO_PROGRESS]"},
+ {Name: "--token", Description: "For authentication in client/server mode [$TRIVY_TOKEN]"},
+ {Name: "--token-header", Description: "Custom headers in client/server mode [$TRIVY_CUSTOM_HEADERS]"},
+ {Name: "--insecure", Description: "Allow insecure server connections when using SSL [$TRIVY_INSECURE]"},
+ {Name: "--listen", Description: "Display only fixed vulnerabilities [$TRIVY_IGNORE_UNFIXED]"},
+ {Name: "--remote", Description: "Remove all caches and database [$TRIVY_RESET]"},
+ {Name: "--light", Description: "Deprecated [$TRIVY_LIGHT]"},
+ {Name: "--server", Description: "Server address [$TRIVY_SERVER]"},
+ {Name: "--artifact-type", Description: "Scan remote repository"},
+ {Name: "--quiet", Description: "Suppress progress bar and log output [$TRIVY_QUIET]"},
+ {Name: "--file-patterns", Description: "Specify file patterns [$TRIVY_FILE_PATTERNS"},
+ {Name: "--include-non-failures", Description: "Enable more verbose trace output for custom queries [$TRIVY_TRACE]"},
+ {Name: "--trace", Description: "Enable more verbose trace output for custom queries [$TRIVY_TRACE]"},
+ {Name: "--debug", Description: "Enable debug output [$TRIVY_DEBUG]"},
+ {Name: "--cache-dir", Description: "Cache directory [$TRIVY_CACHE_DIR]"},
+ {Name: "--help", Description: "Show help"},
+ {Name: "--version", Description: "Print the version"},
+ },
+ })
+}
diff --git a/commands/ops/tsuru.go b/commands/ops/tsuru.go
new file mode 100644
index 0000000..c7a67bd
--- /dev/null
+++ b/commands/ops/tsuru.go
@@ -0,0 +1,84 @@
+package ops
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "tsuru",
+ Description: "Plan",
+ Subcommands: []core.Subcommand{
+ {Name: "app", Description: "App commands"},
+ {Name: "build", Description: "Builds a tsuru app image respecting"},
+ {Name: "create", Description: "Creates a new app using the given name and platform"},
+ {Name: "platform", Description: "Platform of the app"},
+ {Name: "deploy", Description: "Deploys set of files and/or directories to tsuru server"},
+ {Name: "list", Description: "List information about deploys for an application"},
+ {Name: "rebuild", Description: "Rebuild and deploy the last app image"},
+ {Name: "rollback", Description: "Deploys an existing image for an app"},
+ {Name: "y", Description: "Answer yes to all questions"},
+ {Name: "update", Description: "Locks an existing image of an app"},
+ {Name: "grant", Description: "Allows a team to access an application"},
+ {Name: "team", Description: "Team name"},
+ {Name: "info", Description: "Shows information about an app"},
+ {Name: "log", Description: "Shows the logs of an app"},
+ {Name: "no-data", Description: "No date information"},
+ {Name: "metadata", Description: "Manage metadata for an app"},
+ {Name: "get", Description: "Retrieves metadata for an application"},
+ {Name: "set", Description: "Sets metadata for an application"},
+ {Name: "", Description: "The metadata key"},
+ {Name: "unset", Description: "Unsets metadata for an application"},
+ {Name: "NAME", Description: "The metadata key"},
+ {Name: "quota", Description: "Shows the quota of an app"},
+ {Name: "change", Description: "Changes the limit of units that an app can have"},
+ {Name: "limit", Description: "The new limit of units"},
+ {Name: "view", Description: "Displays the current usage and limit of the given app"},
+ {Name: "remove", Description: "Removes an app"},
+ {Name: "restart", Description: "Restarts an application, or one of the processes of the application"},
+ {Name: "revoke", Description: "Removes a team access to an application"},
+ {Name: "router", Description: "Manage routers for an app"},
+ {Name: "add", Description: "Adds a router to an app"},
+ {Name: "version", Description: "Manage router versions for an app"},
+ {Name: "routes", Description: "List all routers"},
+ {Name: "run", Description: "Runs a command inside an app"},
+ {Name: "shell", Description: "Opens a remote shell inside unit, using the API server as a proxy"},
+ {Name: "start", Description: "Starts an app"},
+ {Name: "stop", Description: "Stops an application"},
+ {Name: "swap", Description: "Swaps routing between two apps"},
+ {Name: "unlock", Description: "Forces the removal of an application lock"},
+ {Name: "env", Description: "App environment variables"},
+ {Name: "cluster", Description: "Cluster commands"},
+ {Name: "certificate", Description: "Certificate commands"},
+ {Name: "login", Description: "Login to tsuru server"},
+ {Name: "logout", Description: "Logout from tsuru server"},
+ },
+ Options: []core.Option{
+ {Name: "-a", Description: "App name"},
+ {Name: "-o", Description: "Filter applications by pool"},
+ {Name: "-p", Description: "Filter applications by platform"},
+ {Name: "-t", Description: "Team that will own the app"},
+ {Name: "-f", Description: "Enables single file build into the root of the app's tree"},
+ {Name: "-h", Description: "Help for build"},
+ {Name: "-d", Description: "Description of the app"},
+ {Name: "-g", Description: "Tag to be used by the app"},
+ {Name: "--router-opts", Description: "Router options"},
+ {Name: "-i", Description: "The image to deploy in app"},
+ {Name: "-m", Description: "A message describing this deploy"},
+ {Name: "--new-version", Description: "Force replace all deployed versions by this new deploy"},
+ {Name: "-r", Description: "The reason why the rollback has to be disabled"},
+ {Name: "-n", Description: "Filter applications by name"},
+ {Name: "-q", Description: "Display only applications name"},
+ {Name: "-s", Description: "Filter applications by owner"},
+ {Name: "-l", Description: "Number of lines to show"},
+ {Name: "-u", Description: "The log from the given unit"},
+ {Name: "--no-restart", Description: "Do not restart the app after the metadata is set"},
+ {Name: "--version", Description: "Removes a team access to an application"},
+ {Name: "-c", Description: "Swap only the cname"},
+ {Name: "-y", Description: "Don't ask for confirmation"},
+ {Name: "--cpu", Description: "Changes description for the app"},
+ {Name: "--memory", Description: "Prevent tsuru from restarting the application"},
+ {Name: "--help", Description: "Show help for tsuru"},
+ },
+ })
+}
diff --git a/commands/ops/vault.go b/commands/ops/vault.go
new file mode 100644
index 0000000..108b444
--- /dev/null
+++ b/commands/ops/vault.go
@@ -0,0 +1,84 @@
+package ops
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "vault",
+ Description: "Display help",
+ Subcommands: []core.Subcommand{
+ {Name: "read", Description: "Reads data from Vault at the given path"},
+ {Name: "write", Description: "Writes data from Vault at the given path"},
+ {Name: "delete", Description: "Deletes secrets and configuration from Vault at the given path"},
+ {Name: "list", Description: "Lists data from Vault at the given path"},
+ {Name: "login", Description: "Authenticates users or machines to Vault using the provided arguments"},
+ {Name: "PATH", Description: "Disable the audit device enabled at this path"},
+ {Name: "enable", Description: "Enables an audit device at a given path"},
+ {Name: "enable-versioning", Description: "This command turns on versioning for the backend at the provided path"},
+ {Name: "lookup", Description: "Lookup the lease information of a secret"},
+ {Name: "lock", Description: "Lock the current namespace, and all descendants"},
+ {Name: "unlock", Description: "Unlock the current namespace, and all descendants, with unlock key"},
+ {Name: "members", Description: "Provides the details of all the nodes in the cluster"},
+ {Name: "autopilot", Description: "Raft auto pilot"},
+ {Name: "get-config", Description: "Returns the configuration of the autopilot subsystem under integrated storage"},
+ {Name: "set-config", Description: "Modify the configuration of the autopilot subsystem under integrated storage"},
+ {Name: "join", Description: "Joins a node to the Raft cluster"},
+ {Name: "list-peers", Description: "Returns the Raft peer set"},
+ {Name: "remove-peer", Description: "Removes a node from the Raft cluster"},
+ {Name: "snapshot", Description: "Restores and saves snapshots from the Raft cluster"},
+ {Name: "restore", Description: "Installs the provided snapshot, returning the cluster to the state defined in it"},
+ {Name: "snapshot_file", Description: "Save snapshot to this file"},
+ {Name: "save", Description: "Saves a snapshot of the current state of the Raft cluster into a file"},
+ {Name: "usage", Description: "List the client counts for the default reporting period"},
+ {Name: "type", Description: "Plugin type"},
+ {Name: "name", Description: "Plugin name"},
+ {Name: "print", Description: "This command groups subcommands for interacting with Vault's runtime values"},
+ {Name: "ssh", Description: "Establishes an SSH connection with the target machine"},
+ {Name: "version-history", Description: "Prints the version history of the target Vault server"},
+ },
+ Options: []core.Option{
+ {Name: "--help", Description: "Display help"},
+ {Name: "-address", Description: "Key to unlock a namespace API lock. The default is (not set)"},
+ {Name: "-wrap-ttl", Description: "Exit the vault server if the vault core is shutdown. The default is false"},
+ {Name: "-log-format", Description: "Log format. Supported values are 'standard' and 'json'. The default is (not set)"},
+ {Name: "-log-level", Description: "Toggles whether to compress output package The default is true"},
+ {Name: "-duration", Description: "Duration to run the command. The default is 2m0s"},
+ {Name: "-interval", Description: "The polling interval at which to collect metrics data. The default is 10s"},
+ {Name: "-output", Description: "Specifies the output path for the debug package"},
+ {Name: "-target", Description: "Human-friendly description for the purpose of this audit device"},
+ {Name: "-local", Description: "Specifies the version numbers"},
+ {Name: "-cas-required", Description: "Dump all information collected by Diagnose"},
+ {Name: "-format", Description: "The output format"},
+ {Name: "-skip", Description: "Skip the health checks named as arguments"},
+ {Name: "-cancel", Description: "OTP code to use with '-decode' or '-init'"},
+ {Name: "-pgp-key", Description: "Reset the migration lock. No migration will occur. The default is false"},
+ {Name: "-start", Description: "Only copy keys lexicographically at or after this value"},
+ {Name: "-auto-join-port", Description: "CA cert to use when verifying the Raft leader certificate"},
+ {Name: "-leader-client-cert", Description: "Client cert to use when authenticating with the Raft leader"},
+ {Name: "-leader-client-key", Description: "Client key to use when authenticating with the Raft leader"},
+ {Name: "-non-voter", Description: "Continuously retry joining the Raft cluster upon failures. The default is false"},
+ {Name: "-dr-token", Description: "DR operation token used to authorize this request (if a DR secondary node)"},
+ {Name: "-cleanup-dead-servers", Description: "Clean up dead servers"},
+ {Name: "-last-contact-threshold", Description: "Last contact threshold"},
+ {Name: "-max-trailing-logs", Description: "Max trailing logs"},
+ {Name: "-min-quorum", Description: "Min quorum"},
+ {Name: "-server-stabilization-time", Description: "Server stabilization time"},
+ {Name: "-backup-retries", Description: "Discard any previously entered keys to the unseal process. The default is false"},
+ {Name: "-end-time", Description: "End of report period. Defaults to end of last month"},
+ {Name: "-start-time", Description: "Start of report period. Defaults to 'default_reporting_period' before end time"},
+ {Name: "-args", Description: "SHA256 of the plugin binary. This is required for all plugins"},
+ {Name: "-mounts", Description: "Array or comma-separated string mount paths of the plugin backends to reload"},
+ {Name: "-plugin", Description: "The name of the plugin to reload, as registered in the plugin catalog"},
+ {Name: "-scope", Description: "The scope of the reload, omitted for local, 'global', for replicated reloads"},
+ {Name: "-allowed-managed-keys", Description: "Human-friendly description for the purpose of this engine"},
+ {Name: "-external-entropy-access", Description: "Determines the visibility of the mount in the UI-specific listing endpoint"},
+ {Name: "-details", Description: "Name of the authentication mode (ca, dynamic, otp)"},
+ {Name: "-mount-point", Description: "Mount point to the SSH secrets engine. The default is ssh/"},
+ {Name: "-no-exec", Description: "Name of the role to use to generate the key"},
+ {Name: "-strict-host-key-checking", Description: "Allow the token to be renewed up to it's maximum TTL. The default is true"},
+ {Name: "-role", Description: "The type of token to create. Can be 'service' or 'batch'. The default is service"},
+ },
+ })
+}
diff --git a/commands/ops/vela.go b/commands/ops/vela.go
new file mode 100644
index 0000000..0673666
--- /dev/null
+++ b/commands/ops/vela.go
@@ -0,0 +1,93 @@
+package ops
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "vela",
+ Description: "Show the reference doc for component, trait or workflow types",
+ Subcommands: []core.Subcommand{
+ {Name: "show", Description: "Show the reference doc for component, trait or workflow types"},
+ {Name: "env", Description: "Manage environments for vela applications to run"},
+ {Name: "delete", Description: "Delete an environment"},
+ {Name: "init", Description: "Delete an environment"},
+ {Name: "ls", Description: "List all environments for vela applications to run"},
+ {Name: "set", Description: "Set an environment as the default one for running vela applications"},
+ {Name: "up", Description: "Deploy one application"},
+ {Name: "cluster", Description: "Manage Kubernetes Clusters for Continuous Delivery"},
+ {Name: "alias", Description: "Alias a named cluster"},
+ {Name: "detach", Description: "Detach managed cluster"},
+ {Name: "join", Description: "Join managed cluster by kubeconfig"},
+ {Name: "labels", Description: "Manage Kubernetes Cluster Labels"},
+ {Name: "add", Description: "Add labels to managed cluster"},
+ {Name: "del", Description: "Delete labels for managed cluster"},
+ {Name: "list", Description: "List managed clusters"},
+ {Name: "probe", Description: "Health probe managed cluster"},
+ {Name: "rename", Description: "Rename managed cluster"},
+ {Name: "workflow", Description: "Operate the Workflow during Application Delivery"},
+ {Name: "restart", Description: "Restart an application workflow"},
+ {Name: "resume", Description: "Resume a suspend application workflow"},
+ {Name: "rollback", Description: "Rollback an application workflow to the latest revision"},
+ {Name: "suspend", Description: "Suspend an application workflow"},
+ {Name: "terminate", Description: "Terminate an application workflow"},
+ {Name: "addon", Description: "Manage addons for extension"},
+ {Name: "disable", Description: "Disable an addon"},
+ {Name: "enable", Description: "Enable an addon"},
+ {Name: "registry", Description: "Manage addon registry"},
+ {Name: "get", Description: "Get an addon registry"},
+ {Name: "update", Description: "Update an addon registry"},
+ {Name: "status", Description: "Get addon status"},
+ {Name: "upgrade", Description: "Upgrade an addon"},
+ {Name: "uischema", Description: "Manage UI schema for addons"},
+ {Name: "apply", Description: "Apply UI schema from a file or dir"},
+ {Name: "def", Description: "Manage X-Definition for addons"},
+ {Name: "edit", Description: "Edit X-Definition"},
+ {Name: "render", Description: "Render X-Definition"},
+ {Name: "vet", Description: "Validate X-Definition"},
+ {Name: "remove", Description: "Remove specified registry"},
+ {Name: "component", Description: "List component types installed and discover more registry"},
+ {Name: "trait", Description: "List trait types installed and discover more in registry"},
+ {Name: "uninstall", Description: "Uninstalls KubeVela from a Kubernetes cluster"},
+ {Name: "install", Description: "Installs KubeVela into a Kubernetes cluster"},
+ {Name: "bash", Description: "Output bash completion code"},
+ {Name: "zsh", Description: "Output zsh completion code"},
+ {Name: "export", Description: "Export deploy manifests from appfile or application"},
+ {Name: "version", Description: "Prints the version"},
+ },
+ Options: []core.Option{
+ {Name: "-e", Description: "Specify environment name for application"},
+ {Name: "--help", Description: "Help for show command"},
+ {Name: "-n", Description: "Specify the Kubernetes namespace to use"},
+ {Name: "--namespace", Description: "Specify K8s namespace for env"},
+ {Name: "--env", Description: "Specify environment name for application"},
+ {Name: "--render-only", Description: "Rendering vela.yaml in current dir and do not deploy"},
+ {Name: "--file", Description: "The file path for appfile or application. It could be a remote url"},
+ {Name: "--publish-version", Description: "The publish version for deploying application"},
+ {Name: "--revision", Description: "Manage Kubernetes Clusters for Continuous Delivery"},
+ {Name: "--kubeconfig-path", Description: "Join managed cluster by kubeconfig"},
+ {Name: "--create-namespace", Description: "Manage Kubernetes Cluster Labels"},
+ {Name: "--force", Description: "Skip checking if applications are still using this addon"},
+ {Name: "--clusters", Description: "Specify the runtime-clusters to enable"},
+ {Name: "--bucket", Description: "Specify the OSS bucket name"},
+ {Name: "--endpoint", Description: "Specify the addon registry endpoint"},
+ {Name: "--gitToken", Description: "Specify the github repo token"},
+ {Name: "--path", Description: "Specify the addon registry OSS path"},
+ {Name: "--type", Description: "Specify the addon registry type"},
+ {Name: "--dry-run", Description: "Delete X-Definition"},
+ {Name: "--desc", Description: "Specify the description of the new definition"},
+ {Name: "--interactive", Description: "Specify whether use interactive process to help generate definitions"},
+ {Name: "--git", Description: "List X-Definition"},
+ {Name: "--message", Description: "Validate X-Definition"},
+ {Name: "--token", Description: "Github Repo token"},
+ {Name: "--registry", Description: "Specify token when using --url to specify registry url"},
+ {Name: "--url", Description: "Specify the registry url"},
+ {Name: "--discover", Description: "Discover more registry"},
+ {Name: "--label", Description: "A label to filter components, the format is --label type=terraform"},
+ {Name: "--detail", Description: "Show detail log of uninstall information"},
+ {Name: "--reuse", Description: "Will re-use the user's last supplied values. (default true)"},
+ {Name: "--version", Description: "Specify the version of KubeVela to install"},
+ },
+ })
+}
diff --git a/commands/ops/vercel.go b/commands/ops/vercel.go
new file mode 100644
index 0000000..bf084dd
--- /dev/null
+++ b/commands/ops/vercel.go
@@ -0,0 +1,97 @@
+package ops
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "vercel",
+ Description: "CLI Interface for Vercel.com",
+ Subcommands: []core.Subcommand{
+ {Name: "deploy", Description: "Performs a deployment (default)"},
+ {Name: "dev", Description: "Start a local development server"},
+ {Name: "env", Description: "Manages the Environment Variables for your current Project"},
+ {Name: "add", Description: "Add an environment variable"},
+ {Name: "name", Description: "Name of the env variable to add"},
+ {Name: "environment", Description: "Environment to add the variable to"},
+ {Name: "rm", Description: "Remove an environment variable"},
+ {Name: "pull", Description: "Download dev env variables from cloud and write to .env"},
+ {Name: "file", Description: "The file to write downloaded variables to"},
+ {Name: "ls", Description: "List environment variables for a specific environment"},
+ {Name: "init", Description: "Initialize an example project"},
+ {Name: "project name", Description: "Project name to initialize locally"},
+ {Name: "new project name", Description: "Initialize specific project locally and rename directory"},
+ {Name: "list", Description: "Lists deployments"},
+ {Name: "inspect", Description: "Displays information related to a deployment"},
+ {Name: "url", Description: "The URL of the deployment to inspect"},
+ {Name: "login", Description: "Logs into your account or creates a new one"},
+ {Name: "logout", Description: "Logs out of your account"},
+ {Name: "switch", Description: "Switches between teams and your personal account"},
+ {Name: "team name", Description: "Team to switch to"},
+ {Name: "help", Description: "Displays complete help for [cmd]"},
+ {Name: "command", Description: "Command to detailed information about"},
+ {Name: "deployment url", Description: "URL of the deployment to remove"},
+ {Name: "remove", Description: "Removes a deployment"},
+ {Name: "domains", Description: "Manages your domain names"},
+ {Name: "domain", Description: "Domain to inspect"},
+ {Name: "buy", Description: "Buy a domain for an account"},
+ {Name: "move", Description: "Removes a domain from an account"},
+ {Name: "account name", Description: "Account to move the domain to"},
+ {Name: "transfer-in", Description: "Transfers in a domain to an account"},
+ {Name: "verify", Description: "Verifies a domain for an account"},
+ {Name: "dns", Description: "Manages your DNS records"},
+ {Name: "subdomain", Description: "Subdomain to add record to"},
+ {Name: "record type", Description: "Type of record to add"},
+ {Name: "A", Description: "A record"},
+ {Name: "AAAA", Description: "AAAA record"},
+ {Name: "ALIAS", Description: "ALIAS record"},
+ {Name: "CNAME", Description: "CName record"},
+ {Name: "TXT", Description: "TXT record"},
+ {Name: "value", Description: "Record value"},
+ {Name: "certs", Description: "Manages your SSL certificates"},
+ {Name: "issue", Description: "Issue certificates for multiple domains"},
+ {Name: "Domains", Description: "List of domains separated by commas to issue certificates for"},
+ {Name: "certificate id", Description: "Id of the certificate to remove"},
+ {Name: "secrets", Description: "Manages your global Secrets, for use in Environment Variables"},
+ {Name: "secret name", Description: "Name of the secret to add"},
+ {Name: "secret value", Description: "Value of the secret to add"},
+ {Name: "rename", Description: "Rename a secret"},
+ {Name: "old name", Description: "Old name of the secret to rename"},
+ {Name: "new name", Description: "New name of the secret"},
+ },
+ Options: []core.Option{
+ {Name: "-h", Description: "Output usage information"},
+ {Name: "-v", Description: "Output the version number"},
+ {Name: "-V", Description: "Set the platform version to deploy to"},
+ {Name: "-A", Description: "Path to the local 'vercel.json' file"},
+ {Name: "-Q", Description: "Path to the global '.vercel' directory"},
+ {Name: "-d", Description: "Provides more verbose output"},
+ {Name: "-f", Description: "Force a new deployment even if nothing has changed"},
+ {Name: "-with-cache", Description: "Retain build cache when using --force"},
+ {Name: "-t", Description: "Execute command with an auth token"},
+ {Name: "-p", Description: "Deployment is public ('/_src' is exposed)"},
+ {Name: "-e", Description: "Include an env var during run time (e.g.: '-e KEY=value'). Can appear many times"},
+ {Name: "-b", Description: "Similar to `--env` but for build time only"},
+ {Name: "-m", Description: "Add metadata for the deployment (e.g.: `-m KEY=value`). Can appear many times"},
+ {Name: "-C", Description: "Do not attempt to copy URL to clipboard"},
+ {Name: "-S", Description: "Set a custom scope"},
+ {Name: "--regions", Description: "Set default regions to enable the deployment on"},
+ {Name: "--prod", Description: "Create a production deployment"},
+ {Name: "-c", Description: "Confirm default options and skip questions"},
+ {Name: "--listen", Description: "Specifies which port to run on"},
+ {Name: "-s", Description: "Skip removal of deployments with an active preview URL or production domain"},
+ {Name: "-y", Description: "Skip confirmation step for a deployment or project removal"},
+ {Name: "--challenge-only", Description: "Show challenges needed to issue a certificate"},
+ {Name: "--crt", Description: "Include path to .crt"},
+ {Name: "--key", Description: "Include path to .key"},
+ {Name: "--ca", Description: "Include path to .ca"},
+ {Name: "-a", Description: "Receive access logs in addition to regular logs"},
+ {Name: "-n", Description: "Specify number of log lines to output"},
+ {Name: "-o", Description: "Specifies format of logs output as 'short' or 'raw'"},
+ {Name: "--since", Description: "Return logs after a specific ISO 8601 date"},
+ {Name: "-q", Description: "Return logs against a search query"},
+ {Name: "--until", Description: "Return logs up to a specific ISO 8601 date"},
+ },
+ })
+}
diff --git a/commands/ops/volta.go b/commands/ops/volta.go
new file mode 100644
index 0000000..864b5ab
--- /dev/null
+++ b/commands/ops/volta.go
@@ -0,0 +1,42 @@
+package ops
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "volta",
+ Description: "Enables verbose diagnostics",
+ Subcommands: []core.Subcommand{
+ {Name: "fetch", Description: "Fetches a tool to the local machine"},
+ {Name: "install", Description: "Installs a tool in your toolchain"},
+ {Name: "uninstall", Description: "Uninstalls a tool from your toolchain"},
+ {Name: "pin", Description: "Pins your project's runtime or package manager"},
+ {Name: "list", Description: "Displays the current toolchain"},
+ {Name: "completions", Description: "Generates Volta completions"},
+ {Name: "shell", Description: "Shell to generate completions for"},
+ {Name: "which", Description: "Locates the actual binary that will be called by Volta"},
+ {Name: "setup", Description: "Enables Volta for the current user"},
+ {Name: "run", Description: "Run a command with custom Node, npm, and/or Yarn versions"},
+ {Name: "help", Description: "Prints this message or the help of the given subcommand(s)"},
+ },
+ Options: []core.Option{
+ {Name: "--verbose", Description: "Enables verbose diagnostics"},
+ {Name: "--quiet", Description: "Prevents unnecessary output"},
+ {Name: "-h", Description: "Prints help information"},
+ {Name: "-c", Description: "Show the currently-active tool(s)"},
+ {Name: "-d", Description: "Show your default tool(s)"},
+ {Name: "--format", Description: "Specify output format"},
+ {Name: "-f", Description: "Write over an existing file, if any"},
+ {Name: "-o", Description: "File to write generated completions to"},
+ {Name: "--bundle", Description: "Forces npm to be the version bundled with Node"},
+ {Name: "--no-yarn", Description: "Disables Yarn"},
+ {Name: "--node", Description: "Set the custom Node version"},
+ {Name: "--npm", Description: "Set the custom npm version"},
+ {Name: "--yarn", Description: "Set the custom Yarn version"},
+ {Name: "--env", Description: "Set an environment variable (can be used multiple times)"},
+ {Name: "-v", Description: "Prints the current version of Volta"},
+ },
+ })
+}
diff --git a/commands/ops/watson.go b/commands/ops/watson.go
new file mode 100644
index 0000000..c42d35c
--- /dev/null
+++ b/commands/ops/watson.go
@@ -0,0 +1,67 @@
+package ops
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "watson",
+ Description: "A wonderful CLI to track your time",
+ Subcommands: []core.Subcommand{
+ {Name: "add", Description: "Add time to a project with tag(s) that was not tracked live"},
+ {Name: "DATETIME", Description: "The start time. Ex: 2022-03-04 12:00:00"},
+ {Name: "aggregate", Description: "Display a report of the time spent on each project aggregated by day"},
+ {Name: "cancel", Description: "Cancel the last call to the start command. The time will not be recorded"},
+ {Name: "config", Description: "Get and set configuration options"},
+ {Name: "backend.url", Description: "This is the API root url of your repository, e.g. https://my.server.com/api/"},
+ {Name: "options.stop_on_start", Description: "If true, starting a new project will stop running projects. Default false"},
+ {Name: "edit", Description: "Edit a frame"},
+ {Name: "frames", Description: "Display the list of all frame IDs"},
+ {Name: "help", Description: "Display help information"},
+ {Name: "log", Description: "Display each recorded session during the given timespan"},
+ {Name: "projects", Description: "Display the list of all the existing projects"},
+ {Name: "rename", Description: "Rename a project or tag"},
+ {Name: "type", Description: "Project or tag"},
+ {Name: "report", Description: "Display a report of the time spent on each project"},
+ {Name: "restart", Description: "Restart monitoring time for a previously stopped project"},
+ {Name: "status", Description: "Display when the current project was started and the time spent since"},
+ {Name: "stop", Description: "Stop monitoring time for the current project"},
+ {Name: "sync", Description: "Get the frames from the server and push the new ones"},
+ {Name: "tags", Description: "Display the list of all the tags"},
+ },
+ Options: []core.Option{
+ {Name: "--from", Description: "Date and time of start of tracked activity"},
+ {Name: "--to", Description: "Date and time of end of tracked activity"},
+ {Name: "--confirm-new-project", Description: "Confirm creation of new tag"},
+ {Name: "--current", Description: "Include currently running frame in report"},
+ {Name: "--no-current", Description: "Don't include currently running frame in report"},
+ {Name: "--project", Description: "Format output in JSON instead of plain text"},
+ {Name: "--csv", Description: "Format output in CSV instead of plain text"},
+ {Name: "--pager", Description: "View output through a pager"},
+ {Name: "--no-pager", Description: "Don't view output through a pager"},
+ {Name: "--edit", Description: "Edit the configuration file with an editor"},
+ {Name: "--confirm-new-tag", Description: "Confirm creation of new tag"},
+ {Name: "--reverse", Description: "Reverse the order of the days in output"},
+ {Name: "--no-reverse", Description: "Don't Reverse the order of the days in output"},
+ {Name: "--year", Description: "Reports activity for the current year"},
+ {Name: "--month", Description: "Reports activity for the current month"},
+ {Name: "--luna", Description: "Reports activity for the current moon cycle"},
+ {Name: "--week", Description: "Reports activity for the current week"},
+ {Name: "--day", Description: "Reports activity for the current day"},
+ {Name: "--all", Description: "Reports all activities"},
+ {Name: "-f", Description: "If specified, then the merge will automatically be performed"},
+ {Name: "--at", Description: "Start frame at this time. Must be in (YYYY-MM-DDT)?HH:MM(:SS)? format"},
+ {Name: "--stop", Description: "Stop an already running project"},
+ {Name: "--no-stop", Description: "Don't stop an already running project"},
+ {Name: "--gap", Description: "Leave gap between end time of previous project and start time of the current"},
+ {Name: "--no-gap", Description: "Confirm addition of new project"},
+ {Name: "--tags", Description: "Only show tags"},
+ {Name: "--elapsed", Description: "Only show time elapsed"},
+ {Name: "--help", Description: "Show help for watson"},
+ {Name: "--version", Description: "Show the version for watson"},
+ {Name: "--color", Description: "Color output"},
+ {Name: "--no-color", Description: "No color output"},
+ },
+ })
+}
diff --git a/commands/ops/whois.go b/commands/ops/whois.go
new file mode 100644
index 0000000..edb4cd7
--- /dev/null
+++ b/commands/ops/whois.go
@@ -0,0 +1,31 @@
+package ops
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "whois",
+ Description: "Query a database for information about a domain registrant",
+ Options: []core.Option{
+ {Name: "-a", Description: "Use the American Registry for Internet Numbers (ARIN) database"},
+ {Name: "-A", Description: "Use the Asia/Pacific Network Information Center (APNIC) database"},
+ {Name: "-b", Description: "Use the Network Abuse Clearinghouse database"},
+ {Name: "-c", Description: "Equivalent to '-h TLD.whois-servers.net', where 'TLD' is this option's argument"},
+ {Name: "-f", Description: "Use the African Network Information Centre (AfriNIC) database"},
+ {Name: "-g", Description: "Use the US non-military federal government database"},
+ {Name: "-h", Description: "Use the specified host instead of the default (host name or IP)"},
+ {Name: "-i", Description: "Use the traditional Network Information Center (InterNIC) database"},
+ {Name: "-I", Description: "Use the Internet Assigned Numbers Authority (IANA) database"},
+ {Name: "-k", Description: "Use the National Internet Development Agency of Korea (KRNIC) database"},
+ {Name: "-l", Description: "Use the Route Arbiter Database (RADB) database"},
+ {Name: "-p", Description: "Connect to the whois server on the given port"},
+ {Name: "-P", Description: "Use the PeeringDB database of AS numbers"},
+ {Name: "-Q", Description: "Do a quick lookup (don't follow referrals)"},
+ {Name: "-r", Description: "Use the Rรฉseaux IP Europรฉens (RIPE) database"},
+ {Name: "-R", Description: "Do a recursive lookup"},
+ {Name: "-S", Description: "Print the output verbatim"},
+ },
+ })
+}
diff --git a/commands/ops/wrangler.go b/commands/ops/wrangler.go
new file mode 100644
index 0000000..638443e
--- /dev/null
+++ b/commands/ops/wrangler.go
@@ -0,0 +1,58 @@
+package ops
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "wrangler",
+ Description: "Path to configuration file [default: wrangler.toml]",
+ Subcommands: []core.Subcommand{
+ {Name: "kv:namespace", Description: "Interact with your Workers KV Namespaces"},
+ {Name: "create", Description: "Create a new namespace"},
+ {Name: "delete", Description: "Delete namespace"},
+ {Name: "list", Description: "List all namespaces on your Cloudflare account"},
+ {Name: "kv:key", Description: "Individually manage Workers KV key-value"},
+ {Name: "key", Description: "Key whose value to delete"},
+ {Name: "get", Description: "Get a key's value from a namespace"},
+ {Name: "help", Description: "Prints this message or the help of the given subcommand(s)"},
+ {Name: "put", Description: "Put a key-value pair into a namespace"},
+ {Name: "kv:bulk", Description: "Interact with multiple Workers KV key-value pairs at once"},
+ {Name: "route", Description: "List or delete worker routes"},
+ {Name: "secret", Description: "Generate a secret that can be referenced in the worker script"},
+ {Name: "init", Description: "Create a wrangler.toml for an existing project"},
+ {Name: "name", Description: "The name of your worker! [default: worker]"},
+ {Name: "build", Description: "Build your worker"},
+ {Name: "preview", Description: "Preview your code temporarily on cloudflareworkers.com"},
+ {Name: "dev", Description: "Start a local server for developing your worker"},
+ {Name: "publish", Description: "Publish your worker to the orange cloud"},
+ {Name: "config", Description: "Authenticate Wrangler with a Cloudflare API Token or Global API Key"},
+ {Name: "subdomain", Description: "Configure your workers.dev subdomain"},
+ {Name: "whoami", Description: "Retrieve your user info and test your auth config"},
+ {Name: "tail", Description: "Aggregate logs from production worker"},
+ {Name: "login", Description: "Authenticate Wrangler with your Cloudflare username and password"},
+ {Name: "report", Description: "Report an error caught by Wrangler to Cloudflare"},
+ },
+ Options: []core.Option{
+ {Name: "-c", Description: "Path to configuration file [default: wrangler.toml]"},
+ {Name: "-e", Description: "Environment to perform a command on"},
+ {Name: "-h", Description: "Prints help information"},
+ {Name: "--verbose", Description: "Toggle verbose output (when applicable)"},
+ {Name: "-s", Description: "The type of project you want generated"},
+ {Name: "-b", Description: "The binding of the namespace this action applies to"},
+ {Name: "-n", Description: "The ID of the namespace this action applies to"},
+ {Name: "--headless", Description: "Don't open the browser on preview"},
+ {Name: "--watch", Description: "Start a local server for developing your worker"},
+ {Name: "-p", Description: "Port to listen on. Defaults to 8787"},
+ {Name: "--delete-class", Description: "Delete all durable objects associated with a class in your script"},
+ {Name: "--new-class", Description: "Allow durable objects to be created from a class in your script"},
+ {Name: "--rename-class", Description: "Rename a durable object class in your script"},
+ {Name: "--transfer-class", Description: "Authenticate Wrangler with a Cloudflare API Token or Global API Key"},
+ {Name: "--api-key", Description: "Do not verify provided credentials before writing out Wrangler config file"},
+ {Name: "-f", Description: "Specify an output format [default: json] [possible values: json, pretty]"},
+ {Name: "--metrics", Description: "Provides endpoint for cloudflared metrics. Used to retrieve tunnel url"},
+ {Name: "-V", Description: "Prints version information"},
+ },
+ })
+}
diff --git a/commands/ops/xc.go b/commands/ops/xc.go
new file mode 100644
index 0000000..748bbf1
--- /dev/null
+++ b/commands/ops/xc.go
@@ -0,0 +1,19 @@
+package ops
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "xc",
+ Description: "List tasks from an xc-compatible markdown file",
+ Options: []core.Option{
+ {Name: "-f", Description: "Print the markdown code of a task rather than running it"},
+ {Name: "-H", Description: "List task names in a short format"},
+ {Name: "-h", Description: "Print this help text"},
+ {Name: "-complete", Description: "Install shell completion for xc"},
+ {Name: "-uncomplete", Description: "Uninstall shell completion for xc"},
+ },
+ })
+}
diff --git a/commands/ops/xcodes.go b/commands/ops/xcodes.go
new file mode 100644
index 0000000..2cf7ada
--- /dev/null
+++ b/commands/ops/xcodes.go
@@ -0,0 +1,37 @@
+package ops
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "xcodes",
+ Description: "Manage the Xcode versions installed on your Mac",
+ Subcommands: []core.Subcommand{
+ {Name: "download", Description: "Download a specific version of Xcode"},
+ {Name: "version", Description: "The version to install"},
+ {Name: "install", Description: "Download and install a specific version of Xcode"},
+ {Name: "installed", Description: "List the versions of Xcode that are installed"},
+ {Name: "list", Description: "List all versions of Xcode available to install"},
+ {Name: "select", Description: "Change the selected Xcode"},
+ {Name: "version-or-path", Description: "Version or path of Xcode to select"},
+ {Name: "uninstall", Description: "Uninstall a version of Xcode"},
+ {Name: "update", Description: "Update the list of available versions of Xcode"},
+ {Name: "signout", Description: "Clears the stored username and password"},
+ },
+ Options: []core.Option{
+ {Name: "--latest", Description: "Update and then install the latest non-prerelease version available"},
+ {Name: "--latest-prerelease", Description: "The path to an aria2 executable. Searches $PATH by default"},
+ {Name: "--no-aria2", Description: "Don't use aria2 to download Xcode, even if it's available"},
+ {Name: "--directory", Description: "The directory where your Xcodes are installed. Defaults to /Applications"},
+ {Name: "--data-source", Description: "The data source for available Xcode versions. (default: xcodereleases)"},
+ {Name: "--color", Description: "Color the output"},
+ {Name: "--no-color", Description: "Do not color the output"},
+ {Name: "--path", Description: "Local path to Xcode.xip"},
+ {Name: "--experimental-unxip", Description: "Use the experimental unxip functionality. May speed up unarchiving by up to 2-3x"},
+ {Name: "-p", Description: "Print the path of the selected Xcode"},
+ {Name: "--help", Description: "Show help information"},
+ },
+ })
+}
diff --git a/commands/pkginstaller/dpkg.go b/commands/pkginstaller/dpkg.go
new file mode 100644
index 0000000..f0b9338
--- /dev/null
+++ b/commands/pkginstaller/dpkg.go
@@ -0,0 +1,63 @@
+package pkginstaller
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "dpkg",
+ Description: "Debian package management system",
+ Subcommands: []core.Subcommand{
+ {Name: "query", Description: "Query the dpkg database"},
+ {Name: "install", Description: "Install or upgrade packages"},
+ {Name: "remove", Description: "Remove packages"},
+ {Name: "purge", Description: "Remove packages and their configuration files"},
+ {Name: "configure", Description: "Configure a package after installation"},
+ {Name: "reconfigure", Description: "Reconfigure a package"},
+ {Name: "list", Description: "List packages in the dpkg database"},
+ {Name: "builddeb", Description: "Build Debian package files from sources"},
+ {Name: "check", Description: "Check the dependencies of packages"},
+ {Name: "compare-versions", Description: "Compare package versions"},
+ },
+ Options: []core.Option{
+ {Name: "-l", Description: "List packages matching a pattern"},
+ {Name: "-s", Description: "Display the status of available packages"},
+ {Name: "-L", Description: "List files in a package"},
+ {Name: "-S", Description: "Search for a package owning a file"},
+ {Name: "-p", Description: "Display details about a package in the dpkg database"},
+ {Name: "-W", Description: "Show a package in the dpkg database"},
+ {Name: "-R", Description: "Recursively handle packages"},
+ {Name: "-B", Description: "Uninstall packages that depend on the target package"},
+ {Name: "--skip-same-version", Description: "Don't upgrade if the same version is already installed"},
+ {Name: "--force-depends", Description: "Ignore dependency problems"},
+ {Name: "--force-confnew", Description: "Always install the new version of configuration files"},
+ {Name: "--force-confold", Description: "Always install the old version of configuration files"},
+ {Name: "--force-confdef", Description: "Always install the default version of configuration files"},
+ {Name: "--force-confmiss", Description: "Always install missing configuration files"},
+ {Name: "--no-triggers", Description: "Skip processing triggers"},
+ {Name: "--no-act", Description: "Simulate the action, but don't execute"},
+ {Name: "--pending", Description: "Configure all unconfigured packages"},
+ {Name: "--installed", Description: "List installed packages"},
+ {Name: "--avail", Description: "List available packages"},
+ {Name: "--hold", Description: "List packages on hold"},
+ {Name: "--deferred", Description: "List deferred packages"},
+ {Name: "-us", Description: "Build unsigned .changes and .dsc files"},
+ {Name: "-uc", Description: "Build unsigned .changes file"},
+ {Name: "-sa", Description: "Build source package"},
+ {Name: "-rfakeroot", Description: "Use fakeroot when building the package"},
+ {Name: "-b", Description: "Build binary package from source"},
+ {Name: "--force-sign", Description: "Force signing of changes file"},
+ {Name: "-m", Description: "Specify the package maintainer"},
+ {Name: "-c", Description: "Specify the changes file to use"},
+ {Name: "-v", Description: "Specify the version to use"},
+ {Name: "--increment", Description: "Increment the version number in the changelog"},
+ {Name: "-a", Description: "Check all installed packages"},
+ {Name: "-d", Description: "Check for unmet dependencies"},
+ {Name: "-i", Description: "Check installed packages"},
+ {Name: "-U", Description: "Check unpacked packages"},
+ {Name: "-r", Description: "Check reverse dependencies"},
+ {Name: "-h", Description: "Help for dpkg"},
+ },
+ })
+}
diff --git a/commands/pkginstaller/pkgutil.go b/commands/pkginstaller/pkgutil.go
new file mode 100644
index 0000000..44a1d5a
--- /dev/null
+++ b/commands/pkginstaller/pkgutil.go
@@ -0,0 +1,49 @@
+package pkginstaller
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "pkgutil",
+ Description: "Query and manipulate for macOS Installer packages and receipts",
+ Subcommands: []core.Subcommand{
+ {Name: "package-id", Description: "The package ID to list the files of"},
+ {Name: "path", Description: "The path to update ACLs on"},
+ {Name: "group-id", Description: "The group ID to list the packages of"},
+ {Name: "pkg-path", Description: "The path to the flat package to expand"},
+ {Name: "dir-path", Description: "The path to the directory to expand the package into"},
+ },
+ Options: []core.Option{
+ {Name: "--packages", Description: "List all installed package IDs on the specified --volume"},
+ {Name: "--pkgs-plist", Description: "List all of the files installed under the package-id"},
+ {Name: "--export-plist", Description: "The package ID to export the plist of"},
+ {Name: "--verify", Description: "Run repair_packages(8) to verify the specified package-id"},
+ {Name: "--repair", Description: "Run repair_packages(8) to repair the specified package-id"},
+ {Name: "--pkg-info", Description: "Print extended information about the specified package-id"},
+ {Name: "--pkg-info-plist", Description: "The package ID to print the info of"},
+ {Name: "--forget", Description: "Discard all receipt data about package-id, but don't touch installed files"},
+ {Name: "--learn", Description: "Update the ACLs of the given path in the receipt identified by --edit-pkg"},
+ {Name: "--pkg-groups", Description: "List all of the package groups this package-id is a member of"},
+ {Name: "--groups", Description: "List all of the package groups ont he specified --volume"},
+ {Name: "--group-plist", Description: "List all of the packages that are members of this group-id"},
+ {Name: "--file-info", Description: "Show the metadata known about path"},
+ {Name: "--file-info-plist", Description: "Show the metadata known about path in Mac OS X plist(5) format"},
+ {Name: "--expand", Description: "Expand the flat package at pkg-path into a new directory specified by dir-path"},
+ {Name: "--flatten", Description: "Flatten the dir-path into a new flat package created at pkg-path"},
+ {Name: "--bom", Description: "The path to the flat package to extract the BOM from"},
+ {Name: "--payload-files", Description: "List the files archived within the uninstalled flat package(s) at path"},
+ {Name: "--check-signature", Description: "Check the validity and trust of the signature on the package at pkg-path"},
+ {Name: "-h", Description: "A brief summary of commands and usage"},
+ {Name: "-f", Description: "Skip confirmation before a potentially destructive or ambiguous action"},
+ {Name: "-v", Description: "Output in a human-readable format"},
+ {Name: "--volume", Description: "Perform all operations on specified volume"},
+ {Name: "--edit-pkg", Description: "Specifies an existing receipt to be modified in-place by --learn"},
+ {Name: "--only-files", Description: "List only files (not directories) in --files listing"},
+ {Name: "--only-dirs", Description: "List only directories (not files) in --files listing"},
+ {Name: "--regexp", Description: "Use regex to match package-id arguments, if an exact match isn't found"},
+ {Name: "--pkgs", Description: "Regular expression"},
+ },
+ })
+}
diff --git a/commands/python/black.go b/commands/python/black.go
new file mode 100644
index 0000000..5b6530e
--- /dev/null
+++ b/commands/python/black.go
@@ -0,0 +1,38 @@
+package python
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "black",
+ Description: "Version",
+ Options: []core.Option{
+ {Name: "--code", Description: "Format the code passed in as a string"},
+ {Name: "--line-length", Description: "How many characters per line to allow"},
+ {Name: "--target-version", Description: "Python versions that should be supported"},
+ {Name: "--pyi", Description: "Format all input files regardless of file extension"},
+ {Name: "--ipynb", Description: "Format all input files like Jupyter Notebooks regardless of file extension"},
+ {Name: "--python-cell-magics", Description: "Add the given magic to the list of known python-magics"},
+ {Name: "--skip-string-normalization", Description: "Don't normalize string quotes or prefixes"},
+ {Name: "--skip-magic-trailing-comma", Description: "Don't use trailing commas as a reason to split lines"},
+ {Name: "--preview", Description: "Enable potentially disruptive style changes"},
+ {Name: "--check", Description: "Don't write the files back, just return the status"},
+ {Name: "--diff", Description: "Don't write the files back, just output a diff for each file on stdout"},
+ {Name: "--color", Description: "Show colored diff"},
+ {Name: "--no-color", Description: "Show uncolored diff"},
+ {Name: "--fast", Description: "Skip temporary sanity checks"},
+ {Name: "--safe", Description: "Run temporary sanity checks"},
+ {Name: "--required-version", Description: "Require a specific version of Black"},
+ {Name: "--include", Description: "Additional exclusions"},
+ {Name: "--force-exclude", Description: "Exclude matching files and folders even when passed explicitly"},
+ {Name: "--stdin-filename", Description: "The name of the file when passing it through stdin"},
+ {Name: "--workers", Description: "Number of parallel workers"},
+ {Name: "--quiet", Description: "Don't emit non-error messages to stderr"},
+ {Name: "--verbose", Description: "Show the version"},
+ {Name: "--config", Description: "Read configuration from filepath"},
+ {Name: "--help", Description: "Show usage information"},
+ },
+ })
+}
diff --git a/commands/python/conda.go b/commands/python/conda.go
new file mode 100644
index 0000000..bb41fb0
--- /dev/null
+++ b/commands/python/conda.go
@@ -0,0 +1,78 @@
+package python
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "conda",
+ Description: "Name of environment",
+ Subcommands: []core.Subcommand{
+ {Name: "activate", Description: "Activate an environment"},
+ {Name: "deactivate", Description: "Deactivate an environment"},
+ {Name: "clean", Description: "Remove unused packages and caches"},
+ {Name: "compare", Description: "Compare packages between conda environments"},
+ {Name: "file", Description: "Path to the environment file that is to be compared against"},
+ {Name: "create", Description: "Create a new conda environment from a list of specified packages"},
+ {Name: "package_spec", Description: "Packages to install or update in the conda environment"},
+ {Name: "help", Description: "Displays a list of available conda commands and their help strings"},
+ {Name: "info", Description: "Display information about current conda install"},
+ {Name: "init", Description: "Initialize conda for shell interaction. [Experimental]"},
+ {Name: "install", Description: "Installs a list of packages into a specified conda environment"},
+ {Name: "package spec", Description: "Packages to install or update in the conda environment"},
+ {Name: "list", Description: "List linked packages in a conda environment"},
+ {Name: "regex", Description: "List only packages matching this regular expression"},
+ {Name: "package", Description: "Low-level conda package utility. (EXPERIMENTAL)"},
+ {Name: "remove", Description: "Remove a list of packages from a specified conda environment"},
+ {Name: "uninstall", Description: "Alias for conda remove"},
+ {Name: "run", Description: "Run an executable in a conda environment. [Experimental]"},
+ {Name: "update", Description: "Updates conda packages to the latest compatible version"},
+ {Name: "conda", Description: "Update conda"},
+ {Name: "upgrade", Description: "Alias for conda update"},
+ {Name: "files", Description: "Package files to convert"},
+ },
+ Options: []core.Option{
+ {Name: "-n", Description: "Name of environment"},
+ {Name: "-p", Description: "Full path to environment location (i.e. prefix)"},
+ {Name: "--dev", Description: "Use locally built packages. Identical to '-c local'"},
+ {Name: "--override-channels", Description: "Do not search default or .condarc channels. Requires --channel"},
+ {Name: "--repodata-fn", Description: "Remove all packages, i.e., the entire environment"},
+ {Name: "--features", Description: "Remove features (instead of packages)"},
+ {Name: "--force-remove", Description: "Ignore pinned file"},
+ {Name: "-C", Description: "Use cache of channel index files, even if it has expired"},
+ {Name: "-k", Description: "Offline mode. Don't connect to the Internet"},
+ {Name: "-d", Description: "Only display what would have been done"},
+ {Name: "--json", Description: "Report all output as json. Suitable for using conda programmatically"},
+ {Name: "-q", Description: "Do not display progress bar"},
+ {Name: "-v", Description: "Do not ask for confirmation"},
+ {Name: "--file", Description: "Use locally built packages. Identical to '-c local'"},
+ {Name: "--no-pin", Description: "Ignore pinned file"},
+ {Name: "--force-reinstall", Description: "Do not update or change already-installed dependencies"},
+ {Name: "--update-deps", Description: "Update dependencies"},
+ {Name: "-S", Description: "Update all installed packages in the environment"},
+ {Name: "--update-specs", Description: "Update based on provided specifications"},
+ {Name: "--copy", Description: "Install all packages using copies instead of hard- or soft-linking"},
+ {Name: "--clobber", Description: "Use cache of channel index files, even if it has expired"},
+ {Name: "--download-only", Description: "Conda package manager"},
+ {Name: "--stack", Description: "Stack the environment being activated on top of the previous active environment"},
+ {Name: "--no-stack", Description: "Do not stack the environment. Overrides 'auto_stack' setting"},
+ {Name: "-a", Description: "Remove index cache, lock files, unused cache packages, and tarballs"},
+ {Name: "-i", Description: "Remove index cache"},
+ {Name: "-t", Description: "Remove cached package tarballs"},
+ {Name: "-f", Description: "Remove all writable package caches"},
+ {Name: "-c", Description: "Only display what would have been done"},
+ {Name: "-h", Description: "Show this help message and exit"},
+ {Name: "--system", Description: "Write to the given file"},
+ {Name: "--show", Description: "Display all identified configuration sources"},
+ {Name: "--validate", Description: "Validate all configuration sources"},
+ {Name: "--describe", Description: "Get a configuration value"},
+ {Name: "--append", Description: "Add one configuration value to the end of a list key"},
+ {Name: "--prepend", Description: "Add one configuration value to the beginning of a list key"},
+ {Name: "--set", Description: "Set a boolean or string key"},
+ {Name: "--remove", Description: "Remove a configuration key (and all its values)"},
+ {Name: "--stdin", Description: "Apply configuration information given in yaml format piped through stdin"},
+ {Name: "--clone", Description: "Path to (or name of) existing local environment"},
+ },
+ })
+}
diff --git a/commands/python/django_admin.go b/commands/python/django_admin.go
new file mode 100644
index 0000000..4fce8c6
--- /dev/null
+++ b/commands/python/django_admin.go
@@ -0,0 +1,57 @@
+package python
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "django-admin",
+ Description: "Show this help message and exit",
+ Subcommands: []core.Subcommand{
+ {Name: "help", Description: "Usage and help information for django-admin"},
+ },
+ Options: []core.Option{
+ {Name: "-h", Description: "Show this help message and exit"},
+ {Name: "--version", Description: "Show program's version number and exit"},
+ {Name: "-v", Description: "Raise on CommandError exceptions"},
+ {Name: "--no-color", Description: "Don't colorize the command output"},
+ {Name: "--force-color", Description: "Force colorization of the command output"},
+ {Name: "--database", Description: "Change a user's password for django.contrib.auth"},
+ {Name: "--username", Description: "Specifies the login for the superuser"},
+ {Name: "--noinput", Description: "Tells Django to NOT prompt the user for input of any kind"},
+ {Name: "--skip-checks", Description: "Skip system checks"},
+ {Name: "--tag", Description: "Run only checks labeled with given tag"},
+ {Name: "--list-tags", Description: "List available tags"},
+ {Name: "--deploy", Description: "Check deployment settings"},
+ {Name: "--fail-level", Description: "Run database related checks against these aliases"},
+ {Name: "--locale", Description: "Locales to exclude. Default is none. Can be used multiple times"},
+ {Name: "--use-fuzzy", Description: "Use fuzzy translations"},
+ {Name: "--ignore", Description: "Compiles .po files to .mo files for use with builtin gettext support"},
+ {Name: "--all", Description: "Specifies the output serialization format for fixtures"},
+ {Name: "--indent", Description: "Specifies the indent level to use when pretty-printing output"},
+ {Name: "--natural-primary", Description: "Use natural primary keys if they are available"},
+ {Name: "-a", Description: "Specifies file to which the output is written"},
+ {Name: "--include-views", Description: "Also output models for database views"},
+ {Name: "--ignorenonexistent", Description: "An app_label or app_label.ModelName to exclude. Can be used multiple times"},
+ {Name: "--format", Description: "Format of serialized data when reading from stdin"},
+ {Name: "--domain", Description: "Updates the message files for all existing locales"},
+ {Name: "--extension", Description: "Don't ignore the common glob-style patterns 'CVS', '.*', '*~' and '*.pyc'"},
+ {Name: "--no-wrap", Description: "Don't break long message lines into several lines"},
+ {Name: "--no-location", Description: "Don't write '#: filename:line' lines"},
+ {Name: "--add-location", Description: "The lines include both file name and line number"},
+ {Name: "--no-obsolete", Description: "Remove obsolete message strings"},
+ {Name: "--keep-pot", Description: "Keep .pot file after making messages. Useful when debugging"},
+ {Name: "--dry-run", Description: "Just show what migrations would be made; don't actually write them"},
+ {Name: "--merge", Description: "Enable fixing of migration conflicts"},
+ {Name: "--empty", Description: "Create an empty migration"},
+ {Name: "-n", Description: "Use this name for migration file(s)"},
+ {Name: "--no-header", Description: "Do not add header comments to new migration file(s)"},
+ {Name: "--check", Description: "Exit with a non-zero status if model changes are missing migrations"},
+ {Name: "--fake-initial", Description: "Shows a list of the migration actions that will be performed"},
+ {Name: "--run-syncdb", Description: "Creates tables for apps without migrations"},
+ {Name: "--managers", Description: "Send a test email to the addresses specified in settings.MANAGERS"},
+ {Name: "--admins", Description: "Send a test email to the addresses specified in settings.ADMINS"},
+ },
+ })
+}
diff --git a/commands/python/googler.go b/commands/python/googler.go
new file mode 100644
index 0000000..7ae66b3
--- /dev/null
+++ b/commands/python/googler.go
@@ -0,0 +1,43 @@
+package python
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "googler",
+ Description: "Google from the command-line",
+ Options: []core.Option{
+ {Name: "-h", Description: "Show this help message and exit"},
+ {Name: "-s", Description: "Start at the Nth result"},
+ {Name: "-n", Description: "Show N results"},
+ {Name: "-N", Description: "Show results from news section"},
+ {Name: "-V", Description: "Show results from videos section"},
+ {Name: "-c", Description: "Country-specific search with top-level domain .TLD, e.g., 'in' for India"},
+ {Name: "-l", Description: "Display in language"},
+ {Name: "-g", Description: "Country-specific geolocation search with country code CC, e.g. 'in' for India"},
+ {Name: "-x", Description: "Disable automatic spelling correction"},
+ {Name: "--colorize", Description: "Whether to colorize output which enables color when stdout is a tty device"},
+ {Name: "-C", Description: "Equivalent to --colorize=never"},
+ {Name: "--colors", Description: "Set output colors"},
+ {Name: "-j", Description: "Open the first result in web browser and exit"},
+ {Name: "-t", Description: "American date format with slashes, e.g., 2/24/2020, 2/2020, 2020"},
+ {Name: "--to", Description: "Ending date/month/year of date range"},
+ {Name: "-w", Description: "Search a site using Google"},
+ {Name: "-e", Description: "Exclude site from results"},
+ {Name: "--unfilter", Description: "Do not omit similar results"},
+ {Name: "-p", Description: "Tunnel traffic through an HTTP proxy"},
+ {Name: "--notweak", Description: "Disable TCP optimizations and forced TLS 1.2"},
+ {Name: "--json", Description: "Output in JSON format; implies --noprompt"},
+ {Name: "--url-handler", Description: "Custom script or cli utility to open results"},
+ {Name: "--show-browser-logs", Description: "Do not suppress browser output (stdout and stderr)"},
+ {Name: "--np", Description: "Search and exit, do not prompt"},
+ {Name: "-4", Description: "Only connect over IPv6"},
+ {Name: "-u", Description: "Perform in-place self-upgrade"},
+ {Name: "--include-git", Description: "When used with --upgrade, get latest git master"},
+ {Name: "-v", Description: "Show program's version number and exit"},
+ {Name: "-d", Description: "Enable debugging"},
+ },
+ })
+}
diff --git a/commands/python/jupyter.go b/commands/python/jupyter.go
new file mode 100644
index 0000000..dcd33bf
--- /dev/null
+++ b/commands/python/jupyter.go
@@ -0,0 +1,50 @@
+package python
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "jupyter",
+ Description: "Set log level to logging.DEBUG (maximize logging output)",
+ Subcommands: []core.Subcommand{
+ {Name: "bundlerextension", Description: "Work with Jupyter bundler extensions"},
+ {Name: "enable", Description: "Enable a bundler extension"},
+ {Name: "disable", Description: "Disable a bundler extension"},
+ {Name: "list", Description: "List bundler extensions"},
+ {Name: "kernel", Description: "Run a kernel locally in a subprocess"},
+ {Name: "kernelspec", Description: "Manage Jupyter kernel specifications"},
+ {Name: "install", Description: "Install a kernel specification directory"},
+ {Name: "uninstall", Description: "Alias for remove"},
+ {Name: "remove", Description: "Remove one or more Jupyter kernelspecs by name"},
+ {Name: "migrate", Description: "Migrate configuration and data from .ipython prior to 4.0 to Jupyter locations"},
+ {Name: "notebook", Description: "Run the Jupyter notebook server"},
+ {Name: "stop", Description: "Stop currently running notebook server"},
+ {Name: "password", Description: "Set a password for the notebook server"},
+ {Name: "run", Description: "Run a notebook"},
+ {Name: "serverextension", Description: "Manage server extensions"},
+ {Name: "troubleshoot", Description: "Log for troubleshooting"},
+ {Name: "trust", Description: "Manage trust"},
+ },
+ Options: []core.Option{
+ {Name: "--debug", Description: "Set log level to logging.DEBUG (maximize logging output)"},
+ {Name: "-h", Description: "Show this message"},
+ {Name: "--log-level", Description: "Set the log level by value or name"},
+ {Name: "--config", Description: "Choose a config file"},
+ {Name: "--user", Description: "Apply the operation only for the given user"},
+ {Name: "--system", Description: "Apply the operation system-wide"},
+ {Name: "--sys-prefix", Description: "Install from a Python package"},
+ {Name: "--kernel", Description: "Manage Jupyter kernel specifications"},
+ {Name: "--json", Description: "Output spec name and location as json"},
+ {Name: "--generate-config", Description: "Generate default config file"},
+ {Name: "-y", Description: "Answer yes to any questions instead of prompting"},
+ {Name: "--help", Description: "Show help for jupyter"},
+ {Name: "--version", Description: "Show the jupyter command's version and exit"},
+ {Name: "--config-dir", Description: "Show Jupyter config dir"},
+ {Name: "--data-dir", Description: "Show Jupyter data dir"},
+ {Name: "--runtime-dir", Description: "Show Jupyter runtime dir"},
+ {Name: "--paths", Description: "Show all Jupyter paths. Add --json for machine-readable format"},
+ },
+ })
+}
diff --git a/commands/python/mamba.go b/commands/python/mamba.go
new file mode 100644
index 0000000..4a8070a
--- /dev/null
+++ b/commands/python/mamba.go
@@ -0,0 +1,83 @@
+package python
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "mamba",
+ Description: "Mamba is a fast, robust, and cross-platform package manager",
+ Subcommands: []core.Subcommand{
+ {Name: "activate", Description: "Activate an environment"},
+ {Name: "deactivate", Description: "Deactivate an environment"},
+ {Name: "clean", Description: "Remove unused packages and caches"},
+ {Name: "compare", Description: "Compare packages between conda environments"},
+ {Name: "file", Description: "Path to the environment file that is to be compared against"},
+ {Name: "create", Description: "Create a new conda environment from a list of specified packages"},
+ {Name: "package_spec", Description: "Packages to install or update in the conda environment"},
+ {Name: "info", Description: "Display information about current conda install"},
+ {Name: "init", Description: "Initialize conda for shell interaction. [Experimental]"},
+ {Name: "install", Description: "Installs a list of packages into a specified conda environment"},
+ {Name: "package spec", Description: "Packages to install or update in the conda environment"},
+ {Name: "list", Description: "List linked packages in a conda environment"},
+ {Name: "regex", Description: "List only packages matching this regular expression"},
+ {Name: "package", Description: "Low-level conda package utility. (EXPERIMENTAL)"},
+ {Name: "remove", Description: "Remove a list of packages from a specified conda environment"},
+ {Name: "uninstall", Description: "Alias for remove"},
+ {Name: "run", Description: "Run an executable in a conda environment"},
+ {Name: "update", Description: "Updates conda packages to the latest compatible version"},
+ {Name: "mamba", Description: "Update mamba"},
+ {Name: "upgrade", Description: "Alias for update"},
+ {Name: "repoquery", Description: "Query repositories using mamba"},
+ {Name: "xtensor>=0.18", Description: "Search for xtensor version which is more than 0.18"},
+ {Name: "depends", Description: "List dependencies for a package"},
+ {Name: "xtensor", Description: "List dependencies for xtensor package"},
+ {Name: "whoneeds", Description: "List packages that require a given package"},
+ {Name: "xtl", Description: "List packages that require xtl package"},
+ {Name: "env", Description: "Manage environments"},
+ },
+ Options: []core.Option{
+ {Name: "-n", Description: "Name of environment"},
+ {Name: "-p", Description: "Full path to environment location (i.e. prefix)"},
+ {Name: "--file", Description: "Use locally built packages. Identical to '-c local'"},
+ {Name: "--override-channels", Description: "Do not search default or .condarc channels. Requires --channel"},
+ {Name: "--repodata-fn", Description: "Only install dependencies"},
+ {Name: "--no-pin", Description: "Ignore pinned file"},
+ {Name: "--force-reinstall", Description: "Do not update or change already-installed dependencies"},
+ {Name: "--update-deps", Description: "Update dependencies"},
+ {Name: "-S", Description: "Update all installed packages in the environment"},
+ {Name: "--update-specs", Description: "Update based on provided specifications"},
+ {Name: "--copy", Description: "Install all packages using copies instead of hard- or soft-linking"},
+ {Name: "--clobber", Description: "Use cache of channel index files, even if it has expired"},
+ {Name: "-k", Description: "Offline mode. Don't connect to the Internet"},
+ {Name: "-d", Description: "Only display what would have been done"},
+ {Name: "--json", Description: "Report all output as json. Suitable for using conda programmatically"},
+ {Name: "-q", Description: "Do not display progress bar"},
+ {Name: "-v", Description: "Do not ask for confirmation"},
+ {Name: "--download-only", Description: "Use locally built packages. Identical to '-c local'"},
+ {Name: "--features", Description: "Remove features (instead of packages)"},
+ {Name: "--force-remove", Description: "Ignore pinned file"},
+ {Name: "-C", Description: "Use cache of channel index files, even if it has expired"},
+ {Name: "-c", Description: "Use locally built packages. Identical to '-c local'"},
+ {Name: "--stack", Description: "Stack the environment being activated on top of the previous active environment"},
+ {Name: "--no-stack", Description: "Do not stack the environment. Overrides 'auto_stack' setting"},
+ {Name: "-a", Description: "Remove index cache, lock files, unused cache packages, and tarballs"},
+ {Name: "-i", Description: "Remove index cache"},
+ {Name: "-t", Description: "Remove cached package tarballs"},
+ {Name: "-f", Description: "Remove all writable package caches"},
+ {Name: "-l", Description: "Remove log files"},
+ {Name: "--locks", Description: "Remove lock files"},
+ {Name: "-h", Description: "Show this help message and exit"},
+ {Name: "--clone", Description: "Path to (or name of) existing local environment"},
+ {Name: "--no-default-packages", Description: "Ignore create_default_packages in the .condarc file"},
+ {Name: "--base", Description: "Display base environment path"},
+ {Name: "-e", Description: "List all known conda environments"},
+ {Name: "-s", Description: "List environment variables"},
+ {Name: "--unsafe-channels", Description: "Display list of channels with tokens exposed"},
+ {Name: "--revision", Description: "Revert to the specified REVISION"},
+ {Name: "-m", Description: "Create the environment directory if necessary"},
+ {Name: "--show-channel-urls", Description: "Output canonical names of packages only. Implies --no-pip"},
+ },
+ })
+}
diff --git a/commands/python/mypy.go b/commands/python/mypy.go
new file mode 100644
index 0000000..d9ff3a5
--- /dev/null
+++ b/commands/python/mypy.go
@@ -0,0 +1,50 @@
+package python
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "mypy",
+ Description: "Mypy is a static type checker for Python",
+ Options: []core.Option{
+ {Name: "--module", Description: "Asks mypy to type check the provided module"},
+ {Name: "--package", Description: "Asks mypy to type check the provided package"},
+ {Name: "--command", Description: "Asks mypy to type check the provided string as a program"},
+ {Name: "--exclude", Description: "Show help message and exit"},
+ {Name: "--verbose", Description: "More verbose messages"},
+ {Name: "--version", Description: "Show program's version number and exit"},
+ {Name: "--config-file", Description: "This flag makes mypy read configuration settings from the given file"},
+ {Name: "--warn-unused-configs", Description: "This flag makes mypy warn about unused [mypy-] config file sections"},
+ {Name: "--explicit-package-bases", Description: "This flag makes mypy ignore all missing imports"},
+ {Name: "--python-executable", Description: "This flag will disable searching for PEP561 compliant packages"},
+ {Name: "--no-silence-site-packages", Description: "This flag disables import discovery of namespace packages (see PEP420)"},
+ {Name: "--python-version", Description: "This flag disallows all expressions in the module that have type Any"},
+ {Name: "--disallow-any-decorated", Description: "This flag reports an error whenever a class subclasses a value of type Any"},
+ {Name: "--disallow-untyped-calls", Description: "This flag disables strict checking of pydata~typing"},
+ {Name: "--warn-redundant-casts", Description: "By default, mypy won't allow a variable to be redefined with an unrelated type"},
+ {Name: "--local-partial-types", Description: "By default, mypy allows always-false comparisons like 42 == 'no'"},
+ {Name: "--extra-checks", Description: "This flag mode enables all optional error checking flags"},
+ {Name: "--disable-error-code", Description: "This flag allows disabling one or multiple error codes globally"},
+ {Name: "--enable-error-code", Description: "This flag allows enabling one or multiple error codes globally"},
+ {Name: "--show-error-context", Description: "This flag will add column offsets to error messages"},
+ {Name: "--show-error-end", Description: "This flag will hide the error code [] from error messages"},
+ {Name: "--pretty", Description: "This flag will disable color output in error messages, enabled by default"},
+ {Name: "--no-error-summary", Description: "This flag will disable error summary"},
+ {Name: "--show-absolute-path", Description: "Show absolute paths to files"},
+ {Name: "--soft-error-limit", Description: "By default, mypy stores all cache data inside of a folder named"},
+ {Name: "--sqlite-cache", Description: "Use an SQLite_ database to store the cache"},
+ {Name: "--cache-fine-grained", Description: "Include fine-grained dependency information in the cache for the mypy daemon"},
+ {Name: "--skip-version-check", Description: "By default, mypy will ignore cache data generated by a different version of mypy"},
+ {Name: "--skip-cache-mtime-checks", Description: "Skip cache internal consistency checks based on mtime"},
+ {Name: "--pdb", Description: "This flag will invoke the Python debugger when mypy encounters a fatal error"},
+ {Name: "--tb", Description: "Raise exception on fatal error"},
+ {Name: "--custom-typing-module", Description: "Causes mypy to generate a Cobertura XML type checking coverage report"},
+ {Name: "--html-report", Description: "Causes mypy to generate an HTML type checking coverage report"},
+ {Name: "--linecount-report", Description: "Causes mypy to generate a text file type checking coverage report"},
+ {Name: "--xml-report", Description: "Causes mypy to generate an XML type checking coverage report"},
+ {Name: "--install-types", Description: "This flag will give command line arguments that appear to be scripts"},
+ },
+ })
+}
diff --git a/commands/python/pipenv.go b/commands/python/pipenv.go
new file mode 100644
index 0000000..400ffa0
--- /dev/null
+++ b/commands/python/pipenv.go
@@ -0,0 +1,69 @@
+package python
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "pipenv",
+ Description: "Python package manager",
+ Subcommands: []core.Subcommand{
+ {Name: "clean", Description: "Uninstalls all packages not specified in Pipfile.lock"},
+ {Name: "graph", Description: "Displays currently-installed dependency graph information"},
+ {Name: "install", Description: "Initializes a package manager or installs all packages from Pipfile"},
+ {Name: "package", Description: "Package to install"},
+ {Name: "lock", Description: "Generates Pipfile.lock"},
+ {Name: "> requirements.txt", Description: "Write packages into requirements.txt"},
+ {Name: "open", Description: "View a given module in your editor"},
+ {Name: "run", Description: "Spawns a command installed into the virtualenv"},
+ {Name: "scripts", Description: "Lists scripts in current environment config"},
+ {Name: "shell", Description: "Start a shell within the environment"},
+ {Name: "sync", Description: "Installs all packages specified in Pipfile.lock"},
+ {Name: "uninstall", Description: "Uninstalls a provided package and removes it from Pipfile"},
+ {Name: "update", Description: "Runs lock, then sync"},
+ },
+ Options: []core.Option{
+ {Name: "--unused", Description: "Given a code path, show potentially unused dependencies"},
+ {Name: "--db", Description: "Ignore specified vulnerability during PyUp Safety checks"},
+ {Name: "--output", Description: "Translates to --json, --full-report or --bare from PyUp Safety check"},
+ {Name: "--key", Description: "Quiet standard output, except vulnerability report"},
+ {Name: "--python", Description: "Specify which version of Python virtualenv should use"},
+ {Name: "--three", Description: "Use Python 3 when creating virtualenv"},
+ {Name: "--two", Description: "Use Python 2 when creating virtualenv"},
+ {Name: "--clear", Description: "Clears caches (pipenv, pip, and pip-tools)"},
+ {Name: "-v", Description: "Verbose mode"},
+ {Name: "--pypi-mirror", Description: "Specify a PyPI mirror"},
+ {Name: "--system", Description: "System pip management"},
+ {Name: "--bare", Description: "Minimal output"},
+ {Name: "--dry-run", Description: "Just output unneeded packages"},
+ {Name: "--json", Description: "Output JSON"},
+ {Name: "--json-tree", Description: "Output JSON in nested tree"},
+ {Name: "--reverse", Description: "Reversed dependency graph"},
+ {Name: "-c", Description: "Install packages automatically discovered from import statements"},
+ {Name: "--deploy", Description: "Enforce that your Pipfile.lock is up to date in deployment"},
+ {Name: "--site-packages", Description: "Enable site-packages for the virtualenv [env var: PIPENV_SITE_PACKAGES]"},
+ {Name: "--no-site-packages", Description: "Enable site-packages for the virtualenv [env var: PIPENV_SITE_PACKAGES]"},
+ {Name: "--skip-lock", Description: "Skip locking mechanisms and use the Pipfile instead during operation"},
+ {Name: "-e", Description: "An editable Python package URL or path, often to a VCS repository"},
+ {Name: "--ignore-pipfile", Description: "Ignore Pipfile when installing, using the Pipfile.lock"},
+ {Name: "--selective-upgrade", Description: "Update specified packages"},
+ {Name: "-r", Description: "Import a requirements.txt file"},
+ {Name: "--extra-index-url", Description: "URLs to the extra PyPI compatible indexes to query for package look-ups"},
+ {Name: "-i", Description: "Target PyPI-compatible package index url"},
+ {Name: "--sequential", Description: "Install dependencies one-at-a-time, instead of concurrently"},
+ {Name: "-d", Description: "Install both develop and default packages"},
+ {Name: "--keep-outdated", Description: "Keep out-dated dependencies from being updated in Pipfile.lock"},
+ {Name: "--pre", Description: "Allow pre-releases"},
+ {Name: "--dev-only", Description: "Generate a requirements file with only the development requirements"},
+ {Name: "--header", Description: "Add header to generated requirements"},
+ {Name: "--no-header", Description: "Generate requirements with no header"},
+ {Name: "--fancy", Description: "Specify which version of Python virtualenv should use"},
+ {Name: "--anyway", Description: "Always spawn a sub-shell, even if one is already spawned"},
+ {Name: "--all-dev", Description: "Uninstall all package from [dev-packages]"},
+ {Name: "--all", Description: "Purge all package(s) from virtualenv. Does not edit Pipfile"},
+ {Name: "--outdated", Description: "List out-of-date dependencies"},
+ {Name: "--venv", Description: "View virtualenv information"},
+ },
+ })
+}
diff --git a/commands/python/pipx.go b/commands/python/pipx.go
new file mode 100644
index 0000000..50b3b19
--- /dev/null
+++ b/commands/python/pipx.go
@@ -0,0 +1,49 @@
+package python
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "pipx",
+ Description: "Installed package",
+ Subcommands: []core.Subcommand{
+ {Name: "install", Description: "Install a package"},
+ {Name: "package_spec", Description: "Package name or pip installation spec"},
+ {Name: "inject", Description: "Installs packages to an existing pipx-managed virtual environment"},
+ {Name: "package", Description: "Name of the existing pipx-managed Virtual Environment to inject into"},
+ {Name: "uninstall-all", Description: "Uninstall all pipx-managed packages"},
+ {Name: "reinstall", Description: "Reinstalls a package"},
+ {Name: "reinstall-all", Description: "Reinstalls all packages"},
+ {Name: "list", Description: "List packages and apps installed with pipx"},
+ {Name: "app", Description: "App/package name and any arguments to be passed to it"},
+ {Name: "runpip", Description: "Run pip in an existing pipx-managed Virtual Environment"},
+ {Name: "pipargs", Description: "Arguments to forward to pip command"},
+ {Name: "ensurepath", Description: "Ensure directory where pipx stores apps is in your PATH environment variable"},
+ {Name: "environment", Description: "Print a list of variables used in pipx.constants"},
+ {Name: "completions", Description: "Print instructions on enabling shell completions for pipx"},
+ },
+ Options: []core.Option{
+ {Name: "--include-deps", Description: "Include apps of dependent packages"},
+ {Name: "--force", Description: "Modify existing virtual environment and files in PIPX_BIN_DIR"},
+ {Name: "--suffix", Description: "Optional suffix for virtual environment and executable names"},
+ {Name: "--python", Description: "Give the virtual environment access to the system site-packages dir"},
+ {Name: "--index-url", Description: "Base URL of Python Package Index"},
+ {Name: "--editable", Description: "Install a project in editable mode"},
+ {Name: "--pip-args", Description: "Arbitrary pip arguments to pass directly to pip install/upgrade commands"},
+ {Name: "--verbose", Description: "Show verbose output"},
+ {Name: "--include-apps", Description: "Add apps from the injected packages onto your PATH"},
+ {Name: "--system-site-packages", Description: "Give the virtual environment access to the system site-packages dir"},
+ {Name: "--include-injected", Description: "Also upgrade packages injected into the main app's environment"},
+ {Name: "--skip", Description: "Skip these packages"},
+ {Name: "--json", Description: "Output rich data in json format"},
+ {Name: "--short", Description: "List packages only"},
+ {Name: "--no-cache", Description: "Do not re-use cached virtual environment if it exists"},
+ {Name: "--pypackages", Description: "Require app to be run from local __pypackages__ directory"},
+ {Name: "--spec", Description: "The package name or specific installation source passed to pip"},
+ {Name: "--value", Description: "Print the value of the variable"},
+ {Name: "--help", Description: "Show help for pipx"},
+ },
+ })
+}
diff --git a/commands/python/pre_commit.go b/commands/python/pre_commit.go
new file mode 100644
index 0000000..ca11e53
--- /dev/null
+++ b/commands/python/pre_commit.go
@@ -0,0 +1,51 @@
+package python
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "pre-commit",
+ Description: "Show help message and exit",
+ Subcommands: []core.Subcommand{
+ {Name: "autoupdate", Description: "Auto-update pre-commit config to the latest repos' versions"},
+ {Name: "clean", Description: "Clean out pre-commit files"},
+ {Name: "gc", Description: "Clean unused cached repos"},
+ {Name: "install", Description: "Install the pre-commit script"},
+ {Name: "install-hooks", Description: "Whether to install hook environments for all environments in the config file"},
+ {Name: "migrate-config", Description: "Migrate list configuration to new map configuration"},
+ {Name: "run", Description: "Run hooks"},
+ {Name: "hook", Description: "A single hook-id to run"},
+ {Name: "sample-config", Description: "Produce a sample .pre-commit-config.yaml file"},
+ {Name: "try-repo", Description: "Try the hooks in a repository, useful for developing new hooks"},
+ {Name: "repo", Description: "Repository to source hooks from"},
+ {Name: "uninstall", Description: "Uninstall the pre-commit script"},
+ {Name: "help", Description: "Show help for a specific command"},
+ },
+ Options: []core.Option{
+ {Name: "-h", Description: "Show help message and exit"},
+ {Name: "--color", Description: "Whether to use color in output. Defaults to `auto`"},
+ {Name: "--config", Description: "Path to alternate config file"},
+ {Name: "-t", Description: "Type of hook to install"},
+ {Name: "--verbose", Description: "Run all files in the repo"},
+ {Name: "--files", Description: "Specific filenames to run hooks on"},
+ {Name: "--show-diff-on-failure", Description: "When hooks fail, run `git diff` directly afterward"},
+ {Name: "--hook-stage", Description: "The stage during which the hook is fired"},
+ {Name: "--remote-branch", Description: "Remote branch ref used by `git push`"},
+ {Name: "--local-branch", Description: "Local branch ref used by `git push`"},
+ {Name: "--from-ref", Description: "Filename to check when running during `commit-msg`"},
+ {Name: "--remote-name", Description: "Remote name used by `git push`"},
+ {Name: "--remote-url", Description: "Remote URL used by `git push`"},
+ {Name: "--checkout-type", Description: "During a post-merge hook, indicates whether the merge was a squash merge"},
+ {Name: "--rewrite-command", Description: "During a post-rewrite hook, specifies the command that invoked the rewrite"},
+ {Name: "-V", Description: "Show program's version number and exit"},
+ {Name: "--bleeding-edge", Description: "Store 'frozen' hashes in `rev` instead of tag names"},
+ {Name: "--repo", Description: "Only update this repository -- may be specified multiple times"},
+ {Name: "--no-allow-missing-config", Description: "Assume cloned repos should have a `pre-commit` config"},
+ {Name: "-f", Description: "Overwrite existing hooks / remove migration mode"},
+ {Name: "--allow-missing-config", Description: "Migrate list configuration to new map configuration"},
+ {Name: "--ref", Description: "Manually select a rev to run against, otherwise the `HEAD` revision will be used"},
+ },
+ })
+}
diff --git a/commands/python/pyenv.go b/commands/python/pyenv.go
new file mode 100644
index 0000000..bf6c7be
--- /dev/null
+++ b/commands/python/pyenv.go
@@ -0,0 +1,35 @@
+package python
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "pyenv",
+ Description: "Pyenv",
+ Subcommands: []core.Subcommand{
+ {Name: "commands", Description: "Lists all available pyenv commands"},
+ {Name: "local", Description: "Sets a local application-specific Python version"},
+ {Name: "global", Description: "Sets the global version of Python to be used in all shells"},
+ {Name: "shell", Description: "Sets a shell-specific Python version"},
+ {Name: "install", Description: "Install a Python version"},
+ {Name: "uninstall", Description: "Performs a deployment (default)"},
+ {Name: "rehash", Description: "Performs a deployment (default)"},
+ {Name: "whence", Description: "Lists all Python versions with the given command installed"},
+ },
+ Options: []core.Option{
+ {Name: "-h", Description: "Output usage information"},
+ {Name: "--unset", Description: "Sets the global version of Python to be used in all shells"},
+ {Name: "-l", Description: "List all available versions"},
+ {Name: "-f", Description: "Install even if the version appears to be installed already"},
+ {Name: "-s", Description: "Skip the installation if the version appears to be installed already"},
+ {Name: "-k", Description: "Keep source tree in $PYENV_BUILD_ROOT after installation"},
+ {Name: "-v", Description: "Verbose mode: print compilation status to stdout"},
+ {Name: "-p", Description: "Apply a patch from stdin before building"},
+ {Name: "-g", Description: "Build a debug version"},
+ {Name: "--bare", Description: "Print only the version names, one per line"},
+ {Name: "--skip-aliases", Description: "Skip printing aliases"},
+ },
+ })
+}
diff --git a/commands/python/pytest.go b/commands/python/pytest.go
new file mode 100644
index 0000000..c7f7caf
--- /dev/null
+++ b/commands/python/pytest.go
@@ -0,0 +1,54 @@
+package python
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "pytest",
+ Description: "Control assertion debugging tools.",
+ Options: []core.Option{
+ {Name: "--assert", Description: "Remove all cache contents at start of test run"},
+ {Name: "--cache-show", Description: "Per-test capturing method"},
+ {Name: "--code-highlight", Description: "Whether code should be highlighted (only if --color is also enabled)"},
+ {Name: "--co", Description: "Only collect tests, don't execute them"},
+ {Name: "--collect-in-virtualenv", Description: "Don't ignore tests in a local virtualenv directory"},
+ {Name: "--color", Description: "Color terminal output"},
+ {Name: "--confcutdir", Description: "Only load conftest.py's relative to specified dir"},
+ {Name: "--debug", Description: "Show N slowest setup/test durations (N=0 for all)"},
+ {Name: "--durations-min", Description: "Minimal duration in seconds for inclusion in slowest list"},
+ {Name: "--deselect", Description: "Deselect item (via node id prefix) during collection (multi-allowed)"},
+ {Name: "--disable-warnings", Description: "Disable warnings summary"},
+ {Name: "--doctest-continue-on-failure", Description: "For a given doctest, continue to run after the first failure"},
+ {Name: "--doctest-modules", Description: "Run doctests in all .py modules"},
+ {Name: "--doctest-report", Description: "Choose another output format for diffs on doctest failure"},
+ {Name: "--doctest-glob", Description: "Doctests file matching pattern, default: test*.txt"},
+ {Name: "--exitfirst", Description: "Exit instantly on first error or failed test"},
+ {Name: "--failed-first", Description: "Run all tests, but run the last failures first"},
+ {Name: "--fixtures", Description: "Show fixtures per test"},
+ {Name: "--full-trace", Description: "Don't cut any tracebacks (default is to cut)"},
+ {Name: "--help", Description: "This shows help on command line and config-line options"},
+ {Name: "--ignore", Description: "Ignore path during collection (multi-allowed)"},
+ {Name: "--ignore-glob", Description: "Ignore path pattern during collection (multi-allowed)"},
+ {Name: "--import-mode", Description: "Create junit-xml style report file at given path"},
+ {Name: "--junit-prefix", Description: "Prepend prefix to classnames in junit-xml output"},
+ {Name: "-k", Description: "Ex: 'test_method or test_other'"},
+ {Name: "--keep-duplicates", Description: "Keep duplicate tests"},
+ {Name: "--showlocals", Description: "Show locals in tracebacks (disabled by default)"},
+ {Name: "--last-failed-no-failures", Description: "Which tests to run with no previously (known) failures"},
+ {Name: "--last-failed", Description: "Rerun only the tests that failed at the last run (or all if none failed)"},
+ {Name: "--log-auto-indent", Description: "Cli logging level"},
+ {Name: "--log-cli-format", Description: "Log format as used by the logging module"},
+ {Name: "--log-cli-date-format", Description: "Log date format as used by the logging module"},
+ {Name: "--log-date-format", Description: "Log date format as used by the logging module"},
+ {Name: "--log-format", Description: "Log format as used by the logging module"},
+ {Name: "--log-file", Description: "Path to a file where logging will be written to"},
+ {Name: "--log-file-level", Description: "Log file logging level"},
+ {Name: "--log-file-date-format", Description: "Log date format as used by the logging module"},
+ {Name: "--log-file-format", Description: "Log format as used by the logging module"},
+ {Name: "--log-level", Description: "Only run tests matching given mark expression"},
+ {Name: "--markers", Description: "Show markers (builtin, plugin and per-project ones)"},
+ },
+ })
+}
diff --git a/commands/python/ruff.go b/commands/python/ruff.go
new file mode 100644
index 0000000..287ea77
--- /dev/null
+++ b/commands/python/ruff.go
@@ -0,0 +1,53 @@
+package python
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "ruff",
+ Description: "Enable verbose logging",
+ Subcommands: []core.Subcommand{
+ {Name: "graph", Description: "Generate a map of Python file dependencies or dependents"},
+ },
+ Options: []core.Option{
+ {Name: "-v", Description: "Enable verbose logging"},
+ {Name: "-q", Description: "Print diagnostics, but nothing else"},
+ {Name: "-s", Description: "Path to the `pyproject.toml` or `ruff.toml` file to use for configuration"},
+ {Name: "--isolated", Description: "Ignore all configuration files"},
+ {Name: "--help", Description: "Print help"},
+ {Name: "--fix", Description: "Apply fixes to resolve lint violations"},
+ {Name: "--unsafe-fixes", Description: "Include fixes that may not retain the original intent of the code"},
+ {Name: "--show-fixes", Description: "Show an enumeration of all fixed lint violations"},
+ {Name: "--diff", Description: "Run in watch mode by re-running whenever files change"},
+ {Name: "--fix-only", Description: "Ignore any `# noqa` comments"},
+ {Name: "--output-format", Description: "Specify file to write the linter output to (default: stdout)"},
+ {Name: "--target-version", Description: "The minimum Python version that should be supported"},
+ {Name: "--preview", Description: "Enable preview mode; checks will include unstable rules and fixes"},
+ {Name: "--extension", Description: "Show counts for every rule with at least one violation"},
+ {Name: "--add-noqa", Description: "Enable automatic additions of `noqa` directives to failing lines"},
+ {Name: "--show-files", Description: "See the files Ruff will be run against with the current settings"},
+ {Name: "--show-settings", Description: "See the settings Ruff will use to lint a given Python file"},
+ {Name: "-h", Description: "Print help"},
+ {Name: "--select", Description: "Comma-separated list of rule codes to enable (or ALL, to enable all rules)"},
+ {Name: "--ignore", Description: "Comma-separated list of rule codes to disable"},
+ {Name: "--extend-select", Description: "Like --select, but adds additional rule codes on top of the selected ones"},
+ {Name: "--per-file-ignores", Description: "List of mappings from file pattern to code to exclude"},
+ {Name: "--extend-per-file-ignores", Description: "Like --fixable, but adds additional rule codes on top of those already specified"},
+ {Name: "--exclude", Description: "List of paths, used to omit files and/or directories from analysis"},
+ {Name: "--extend-exclude", Description: "Respect file exclusions via `.gitignore` and other standard ignore files"},
+ {Name: "--force-exclude", Description: "Enforce exclusions, even for paths passed to Ruff directly on the command-line"},
+ {Name: "-n", Description: "Disable cache reads"},
+ {Name: "--cache-dir", Description: "Path to the cache directory"},
+ {Name: "--stdin-filename", Description: "The name of the file when passing it through stdin"},
+ {Name: "-e", Description: "The minimum Python version that should be supported"},
+ {Name: "--respect-gitignore", Description: "Respect file exclusions via `.gitignore` and other standard ignore files"},
+ {Name: "--line-length", Description: "Set the line-length"},
+ {Name: "--range", Description: "When specified, Ruff will try to only format the code in the given range"},
+ {Name: "--all", Description: "Explain all rules"},
+ {Name: "--no-preview", Description: "Disable preview mode"},
+ {Name: "--direction", Description: "Attempt to detect imports from string literals"},
+ },
+ })
+}
diff --git a/commands/python/sqlfluff.go b/commands/python/sqlfluff.go
new file mode 100644
index 0000000..fcf66a5
--- /dev/null
+++ b/commands/python/sqlfluff.go
@@ -0,0 +1,48 @@
+package python
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "sqlfluff",
+ Description: "A dialect-flexible and configurable SQL linter",
+ Subcommands: []core.Subcommand{
+ {Name: "lint", Description: "Lint SQL files via passing a list of files or using stdin"},
+ {Name: "templater", Description: "Name of templater to use, eg. raw"},
+ {Name: "dialect", Description: "Name of dialect, eg. ANSI"},
+ {Name: "logger", Description: "Name of logger to limit to, eg. templater"},
+ {Name: "annotation-level", Description: "Level of annotation, eg. notice"},
+ {Name: "fix", Description: "Fix SQL files"},
+ {Name: "parse", Description: "Parse SQL files and just spit out the result"},
+ {Name: "dialects", Description: "Show the current dialects available"},
+ {Name: "version", Description: "Show the version of sqlfluff"},
+ {Name: "rules", Description: "Show the current rules in use"},
+ },
+ Options: []core.Option{
+ {Name: "--version", Description: "Show the version and exit"},
+ {Name: "--help", Description: "Show help for sqlfluff"},
+ {Name: "--nocolor", Description: "No color - output will be without ANSI color codes"},
+ {Name: "--ignore", Description: "Narrow the search to only specific rules"},
+ {Name: "--templater", Description: "The templater to use (default=jinja)"},
+ {Name: "--dialect", Description: "The dialect of SQL to lint"},
+ {Name: "--format", Description: "What format to return the lint result in (default=human)"},
+ {Name: "--processes", Description: "Set this flag to ignore inline noqa comments"},
+ {Name: "--bench", Description: "Set this flag to engage the benchmarking tool output"},
+ {Name: "--logger", Description: "Choose to limit the logging to one of the loggers"},
+ {Name: "--encoding", Description: "Specify encoding to use when reading and writing files. Defaults to autodetect"},
+ {Name: "--ignore-local-config", Description: "Level of annotation, eg. notice"},
+ {Name: "--disregard-sqlfluffignores", Description: "Perform the operation regardless of .sqlfluffignore configurations"},
+ {Name: "--disable-progress-bar", Description: "Disables progress bars"},
+ {Name: "--nofail", Description: "Show help for sqlfluff"},
+ {Name: "--disable-noqa", Description: "Set this flag to ignore inline noqa comments"},
+ {Name: "--FIX-EVEN-UNPARSABLE", Description: "Enables fixing of files that have templating or parse errors"},
+ {Name: "--show-lint-violations", Description: "Show lint violations"},
+ {Name: "--code-only", Description: "Output only the code elements of the parse tree"},
+ {Name: "--include-meta", Description: "What format to return the lint result in (default=human)"},
+ {Name: "--recurse", Description: "The depth to recursively parse to (0 for unlimited)"},
+ {Name: "--verbose", Description: "Show the version of sqlfluff"},
+ },
+ })
+}
diff --git a/commands/python/sqlmesh.go b/commands/python/sqlmesh.go
new file mode 100644
index 0000000..cd271c5
--- /dev/null
+++ b/commands/python/sqlmesh.go
@@ -0,0 +1,72 @@
+package python
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "sqlmesh",
+ Description: "SQLMesh command line tool",
+ Subcommands: []core.Subcommand{
+ {Name: "init", Description: "Create a new SQLMesh repository"},
+ {Name: "render", Description: "Render a model's query, optionally expanding referenced models"},
+ {Name: "evaluate", Description: "Evaluate a model and return a dataframe with a default limit of 1000"},
+ {Name: "format", Description: "Format all SQL models and audits"},
+ {Name: "diff", Description: "Show the diff between the local state and the target environment"},
+ {Name: "plan", Description: "Apply local changes to the target environment"},
+ {Name: "run", Description: "Evaluate missing intervals for the target environment"},
+ {Name: "janitor", Description: "Run the janitor process on-demand"},
+ {Name: "dag", Description: "Render the DAG as an html file"},
+ {Name: "create_test", Description: "Generate a unit test fixture for a given model"},
+ {Name: "test", Description: "Run model unit tests"},
+ {Name: "audit", Description: "Run audits for the target model(s)"},
+ {Name: "ui", Description: "Start a browser-based SQLMesh UI"},
+ {Name: "migrate", Description: "Migrate SQLMesh to the current running version"},
+ {Name: "rollback", Description: "Rollback SQLMesh to the previous migration"},
+ {Name: "create_external_models", Description: "Create a schema file containing external model schemas"},
+ },
+ Options: []core.Option{
+ {Name: "--paths", Description: "Paths to SQLMesh project files"},
+ {Name: "--config", Description: "Path to config file"},
+ {Name: "--gateway", Description: "The name of the gateway"},
+ {Name: "--ignore-warnings", Description: "Ignore warnings"},
+ {Name: "--debug", Description: "Enable debug mode"},
+ {Name: "--log-to-stdout", Description: "Display logs in stdout"},
+ {Name: "--log-file-dir", Description: "The directory to write log files to"},
+ {Name: "-t", Description: "Project template. Supported values: airflow, dbt, dlt, default, empty"},
+ {Name: "--dlt-pipeline", Description: "Render a model's query, optionally expanding referenced models"},
+ {Name: "--dialect", Description: "The SQL dialect to render the query as"},
+ {Name: "--no-format", Description: "Disable fancy formatting of the query"},
+ {Name: "--start", Description: "Start time for the render"},
+ {Name: "--end", Description: "End time for the render"},
+ {Name: "--execution-time", Description: "Execution time for the render"},
+ {Name: "--expand", Description: "Expand referenced models"},
+ {Name: "--limit", Description: "The number of rows which the query should be limited to"},
+ {Name: "--append-newline", Description: "Include a newline at the end of each file"},
+ {Name: "--no-rewrite-casts", Description: "Preserve the existing casts, without rewriting them to use the :: syntax"},
+ {Name: "--normalize", Description: "Whether or not to normalize identifiers to lowercase"},
+ {Name: "--pad", Description: "Determines the pad size in a formatted string"},
+ {Name: "--indent", Description: "Determines the indentation size in a formatted string"},
+ {Name: "--normalize-functions", Description: "Whether or not to normalize all function names"},
+ {Name: "--leading-comma", Description: "Determines whether or not the comma is leading or trailing in select expressions"},
+ {Name: "--max-text-width", Description: "Whether or not to check formatting (but not actually format anything)"},
+ {Name: "--create-from", Description: "Skip tests prior to generating the plan if they are defined"},
+ {Name: "--restate-model", Description: "Restate data for specified models and models downstream from the one specified"},
+ {Name: "--no-gaps", Description: "Ensure that new snapshots have no data gaps when comparing to existing snapshots"},
+ {Name: "--skip-backfill", Description: "Skip the backfill step and only create a virtual update for the plan"},
+ {Name: "--empty-backfill", Description: "Produce empty backfill"},
+ {Name: "--forward-only", Description: "Create a plan for forward-only changes"},
+ {Name: "--allow-destructive-model", Description: "The effective date from which to apply forward-only changes on production"},
+ {Name: "--no-prompts", Description: "Disable interactive prompts for the backfill time range"},
+ {Name: "--auto-apply", Description: "Automatically apply the new plan after creation"},
+ {Name: "--no-auto-categorization", Description: "Disable automatic change categorization"},
+ {Name: "--include-unmodified", Description: "Include unmodified models in the target environment"},
+ {Name: "--select-model", Description: "Select specific model changes that should be included in the plan"},
+ {Name: "--backfill-model", Description: "Backfill only the models whose names match the expression"},
+ {Name: "--no-diff", Description: "Hide text differences for changed models"},
+ {Name: "--run", Description: "Run latest intervals as part of the plan application (prod environment only)"},
+ {Name: "--enable-preview", Description: "Enable preview for forward-only models when targeting a development environment"},
+ },
+ })
+}
diff --git a/commands/python/streamlit.go b/commands/python/streamlit.go
new file mode 100644
index 0000000..5bf3cb9
--- /dev/null
+++ b/commands/python/streamlit.go
@@ -0,0 +1,30 @@
+package python
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "streamlit",
+ Description: "Streamlit",
+ Subcommands: []core.Subcommand{
+ {Name: "activate", Description: "Activate Streamlit by entering your email"},
+ {Name: "cache", Description: "Manage the Streamlit cache"},
+ {Name: "clear", Description: "Clear st.cache, st.memo, and st.singleton caches"},
+ {Name: "config", Description: "Manage Streamlit's config settings"},
+ {Name: "show", Description: "Show all of Streamlit's config settings"},
+ {Name: "docs", Description: "Show help in browser"},
+ {Name: "hello", Description: "Runs the Hello World script"},
+ {Name: "help", Description: "Print the help message"},
+ {Name: "run", Description: "Run a Python script, piping stderr to Streamlit"},
+ {Name: "file", Description: "The Python script to run"},
+ {Name: "version", Description: "Print Streamlit's version number"},
+ },
+ Options: []core.Option{
+ {Name: "--log_level", Description: "Set the log level"},
+ {Name: "--help", Description: "Show a help message and exit"},
+ {Name: "--version", Description: "Show the version and exit"},
+ },
+ })
+}
diff --git a/commands/python/youtube_dl.go b/commands/python/youtube_dl.go
new file mode 100644
index 0000000..fedad62
--- /dev/null
+++ b/commands/python/youtube_dl.go
@@ -0,0 +1,54 @@
+package python
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "youtube-dl",
+ Description: "Clipboard",
+ Options: []core.Option{
+ {Name: "--help", Description: "Print the help text and exit"},
+ {Name: "--version", Description: "Print program version and exit"},
+ {Name: "-U", Description: "Display the current browser identification"},
+ {Name: "--list-extractors", Description: "List all supported extractors"},
+ {Name: "--extractor-descriptions", Description: "Output descriptions of all supported extractors"},
+ {Name: "--default-search", Description: "Force extraction to use the generic extractor"},
+ {Name: "--ignore-config", Description: "Do not read configuration files"},
+ {Name: "--flat-playlist", Description: "Do not extract the videos of a playlist, only list them"},
+ {Name: "--mark-watched", Description: "Mark videos watched (YouTube only)"},
+ {Name: "--no-mark-watched", Description: "Do not mark videos watched (YouTube only)"},
+ {Name: "--no-color", Description: "Do not emit color codes in output"},
+ {Name: "--proxy", Description: "Time to wait before giving up, in seconds"},
+ {Name: "--source-address", Description: "Client-side IP address to bind to"},
+ {Name: "-4", Description: "Make all connections via IPv4"},
+ {Name: "-6", Description: "Make all connections via IPv6"},
+ {Name: "--geo-verification-proxy", Description: "Use this proxy to verify the IP address for some geo-restricted sites"},
+ {Name: "--geo-bypass", Description: "Bypass geographic restriction via faking X-Forwarded-For HTTP header"},
+ {Name: "--no-geo-bypass", Description: "Do not bypass geographic restriction via faking X-Forwarded-For HTTP header"},
+ {Name: "--geo-bypass-country", Description: "Playlist video to start at (default is 1)"},
+ {Name: "--playlist-end", Description: "Playlist video to end at (default is last)"},
+ {Name: "--playlist-items", Description: "Playlist video to end at (default is last)"},
+ {Name: "--match-title", Description: "Download only matching titles (regex or caseless sub-string)"},
+ {Name: "--reject-title", Description: "Skip download for matching titles (regex or caseless sub-string)"},
+ {Name: "--max-downloads", Description: "Abort after downloading NUMBER files"},
+ {Name: "--min-filesize", Description: "Do not download any videos smaller than SIZE (e.g. 50k or 44.6)"},
+ {Name: "--max-filesize", Description: "Do not download any videos larger than SIZE (e.g. 50k or 44.6)"},
+ {Name: "--date", Description: "Download only videos uploaded in this date"},
+ {Name: "--datebefore", Description: "Download only videos uploaded on or before this date (i.e. inclusive)"},
+ {Name: "--dateafter", Description: "Download only videos uploaded on or after this date (i.e. inclusive)"},
+ {Name: "--min-views", Description: "Do not download any videos with less than COUNT views"},
+ {Name: "--max-views", Description: "Do not download any videos with more than COUNT views"},
+ {Name: "--match-filter", Description: "Generic video filter"},
+ {Name: "--no-playlist", Description: "Download only the video, if the URL refers to a video and a playlist"},
+ {Name: "--yes-playlist", Description: "Download the playlist, if the URL refers to a video and a playlist"},
+ {Name: "--age-limit", Description: "Download only videos suitable for the given age"},
+ {Name: "--download-archive", Description: "Download advertisements as well (experimental)"},
+ {Name: "-r", Description: "Maximum download rate in bytes per second (e.g. 50K or 4.2M)"},
+ {Name: "-R", Description: "Skip unavailable fragments"},
+ {Name: "--keep-fragments", Description: "Size of download buffer (e.g. 1024 or 16K)"},
+ {Name: "--no-resize-buffer", Description: "Do not automatically adjust the buffer size"},
+ },
+ })
+}
diff --git a/commands/runner/ant.go b/commands/runner/ant.go
new file mode 100644
index 0000000..f1522f6
--- /dev/null
+++ b/commands/runner/ant.go
@@ -0,0 +1,40 @@
+package runner
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "ant",
+ Description: "Apache Ant - Java library and command-line build tool",
+ Options: []core.Option{
+ {Name: "--help", Description: "Show help for ant"},
+ {Name: "--noconfig", Description: "Enable use of jikes by default, unless set explicitly in configuration files"},
+ {Name: "--execdebug", Description: "Print ant exec line generated by this launch script"},
+ {Name: "-projecthelp", Description: "Print project help information and exit"},
+ {Name: "-version", Description: "Print the version information and exit"},
+ {Name: "-diagnostics", Description: "Print information that might be helpful to diagnose or report problems and exit"},
+ {Name: "-quiet", Description: "Be extra quiet"},
+ {Name: "-silent", Description: "Print nothing but task outputs and build failures"},
+ {Name: "-verbose", Description: "Be extra verbose"},
+ {Name: "-debug", Description: "Print debugging information"},
+ {Name: "-emacs", Description: "Produce logging information without adornments"},
+ {Name: "-lib", Description: "Specifies a path to search for jars and classes"},
+ {Name: "-logfile", Description: "Use given file for log"},
+ {Name: "-logger", Description: "The class which is to perform logging"},
+ {Name: "-listener", Description: "Add an instance of class as a project listener"},
+ {Name: "-noinput", Description: "Do not allow interactive input"},
+ {Name: "-buildfile", Description: "Use given buildfile"},
+ {Name: "-keep-going", Description: "Execute all targets that do not depend on failed target(s)"},
+ {Name: "-propertyfile", Description: "Load all properties from file with -D properties taking precedence"},
+ {Name: "-inputhandler", Description: "The class which will handle input requests"},
+ {Name: "-find", Description: "Search for buildfile towards the root of the filesystem and use it"},
+ {Name: "-nice", Description: "A niceness value for the main thread"},
+ {Name: "-nouserlib", Description: "Run ant without using the jar files from user home directory/.ant/lib"},
+ {Name: "-noclasspath", Description: "Run ant without using CLASSPATH"},
+ {Name: "-autoproxy", Description: "Java1.5+: use the OS proxy settings"},
+ {Name: "-main", Description: "Override Ant's normal entry point"},
+ },
+ })
+}
diff --git a/commands/runner/composer.go b/commands/runner/composer.go
new file mode 100644
index 0000000..b7a9544
--- /dev/null
+++ b/commands/runner/composer.go
@@ -0,0 +1,29 @@
+package runner
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "composer",
+ Description: "Composer Command",
+ Options: []core.Option{
+ {Name: "-h", Description: "Display this help message"},
+ {Name: "-q", Description: "Do not output any message"},
+ {Name: "-V", Description: "Display this application version"},
+ {Name: "--ansi", Description: "Force ANSI output"},
+ {Name: "--no-ansi", Description: "Disable ANSI output"},
+ {Name: "-n", Description: "Do not ask any interactive question"},
+ {Name: "--profile", Description: "Display timing and memory usage information"},
+ {Name: "--no-plugins", Description: "Whether to disable plugins"},
+ {Name: "-d", Description: "If specified, use the given directory as working directory"},
+ {Name: "--no-cache", Description: "Prevent use of the cache"},
+ {Name: "-v", Description: "Verbosity of messages: 1 for normal output"},
+ {Name: "-vv", Description: "Verbosity of messages: 2 for more verbose output"},
+ {Name: "-vvv", Description: "Verbosity of messages: 3 for debug"},
+ {Name: "-o", Description: "Show only recipes that are outdated"},
+ {Name: "--force", Description: "Overwrite existing files when a new version of a recipe is available"},
+ },
+ })
+}
diff --git a/commands/runner/dbt.go b/commands/runner/dbt.go
new file mode 100644
index 0000000..9e369e5
--- /dev/null
+++ b/commands/runner/dbt.go
@@ -0,0 +1,82 @@
+package runner
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "dbt",
+ Description: "CLI for dbt - Data Build Tool",
+ Subcommands: []core.Subcommand{
+ {Name: "build", Description: "Run models, test tests, snapshot snapshots, and seed seeds"},
+ {Name: "directory", Description: "Directory containing profiles.yml"},
+ {Name: "name", Description: "Name of profile to use when running dbt project"},
+ {Name: "profile", Description: "Target profile configuration (dev/prod)"},
+ {Name: "variables", Description: "A short YAML string eg. '{my_variable: my_value}'"},
+ {Name: "subset", Description: "Select subset of models"},
+ {Name: "run", Description: "Runs the models in a project"},
+ {Name: "Target profile", Description: "Target profile configuration (dev/prod)"},
+ {Name: "debug", Description: "Debugs dbt connections and projects"},
+ {Name: "init", Description: "Initializes a new dbt project"},
+ {Name: "adapter", Description: "E.g. big query"},
+ {Name: "compile", Description: "Compiles (but does not run) the models in a project"},
+ {Name: "Variable values", Description: "A short YAML string eg. '{my_variable: my_value}'"},
+ {Name: "Select subset", Description: "Select subset of models"},
+ {Name: "Exclude subset", Description: "Exclude subset of models"},
+ {Name: "test", Description: "Executes tests defined in a project"},
+ {Name: "deps", Description: "Downloads dependencies for a project"},
+ {Name: "snapshot", Description: "Executes 'snapshot' jobs defined in a project"},
+ {Name: "profiles directory", Description: "Directory containing profiles.yml"},
+ {Name: "Profile name", Description: "Name of profile to use when running dbt project"},
+ {Name: "clean", Description: "Deletes artifacts present in the dbt project"},
+ {Name: "seed", Description: "Loads CSV files into the database"},
+ {Name: "docs", Description: "Generates documentation for a project"},
+ {Name: "generate", Description: "Generate your project's documentation website"},
+ {Name: "serve", Description: "Serve your documentation on a local webserver (default prot 8000)"},
+ {Name: "PROFILES_DIR", Description: "Path to profiles directory"},
+ {Name: "port number", Description: "Default is 8000"},
+ {Name: "run-operation", Description: "Runs arbitrary maintenance SQL against the database"},
+ {Name: "MACRO", Description: "Dbt will call this macro with the supplied arguments and then exit"},
+ {Name: "ARGS", Description: "A short YAML string eg. '{my_variable: my_value}'"},
+ {Name: "rpc", Description: "Runs an RPC server that clients can submit queries to"},
+ {Name: "HOST", Description: "Default: 0.0.0.0"},
+ {Name: "PORT", Description: "Default: 8580"},
+ {Name: "ls", Description: "Lists resources defined in a dbt project"},
+ {Name: "parse", Description: "Parse dbt project and write detailed timing information"},
+ },
+ Options: []core.Option{
+ {Name: "--full-refresh", Description: "Treat incremental models as table models"},
+ {Name: "-x", Description: "Exit immediately if a single model fails to build"},
+ {Name: "--profiles-dir", Description: "Set the profiles directory"},
+ {Name: "--profile", Description: "Use the selected profile"},
+ {Name: "--target", Description: "Target profile configuration i.e. prod/dev"},
+ {Name: "--vars", Description: "Variable values to override dbt_project.yml"},
+ {Name: "--threads", Description: "Number of concurrent database jobs"},
+ {Name: "-s", Description: "Select subset of models"},
+ {Name: "--exclude", Description: "Exclude subset of models"},
+ {Name: "--bypass-cache", Description: "Bypass the cache"},
+ {Name: "--use-colors", Description: "Default value -- colorize run logs"},
+ {Name: "--no-use-colors", Description: "Disable log colorizing"},
+ {Name: "--adapter", Description: "Add an adapter"},
+ {Name: "--select", Description: "Select subset of models"},
+ {Name: "--selector", Description: "Defer"},
+ {Name: "--data", Description: "Run only custom data tests"},
+ {Name: "--schema", Description: "Run only schema tests"},
+ {Name: "--no-compile", Description: "Skip re-compilation"},
+ {Name: "--port", Description: "Choose a port"},
+ {Name: "-o", Description: "Override the destination for sources.json"},
+ {Name: "--args", Description: "Supply arguments to the macro"},
+ {Name: "--host", Description: "Specify the host to listen on"},
+ {Name: "--resource-type", Description: "Specify selectors that should be excluded from the list of returned nodes"},
+ {Name: "--version", Description: "Currently installed version"},
+ {Name: "-r", Description: "Create a new file to record timing info"},
+ {Name: "-d", Description: "Redirect debug logs to standard out"},
+ {Name: "--log-format", Description: "Specify how dbt's logs should be formatted"},
+ {Name: "--no-write-json", Description: "Prevent dbt from writing JSOn artifacts to the 'target/' directory"},
+ {Name: "-S", Description: "Convert dbt warnings into errors"},
+ {Name: "--partial-parse", Description: "Configure partial parsing for your project"},
+ {Name: "--no-partial-parse", Description: "Turn off partial parsing for your project"},
+ },
+ })
+}
diff --git a/commands/runner/drush.go b/commands/runner/drush.go
new file mode 100644
index 0000000..06bad69
--- /dev/null
+++ b/commands/runner/drush.go
@@ -0,0 +1,12 @@
+package runner
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "drush",
+ Description: "Drush is a command line shell and Unix scripting interface for Drupal",
+ })
+}
diff --git a/commands/runner/elixir.go b/commands/runner/elixir.go
new file mode 100644
index 0000000..c5300ed
--- /dev/null
+++ b/commands/runner/elixir.go
@@ -0,0 +1,38 @@
+package runner
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "elixir",
+ Description: "Elixir Language",
+ Options: []core.Option{
+ {Name: "-e", Description: "Evaluates the given command"},
+ {Name: "-h", Description: "Prints this message and exits"},
+ {Name: "-r", Description: "Requires the given files/patterns"},
+ {Name: "-S", Description: "Finds and executes the given script in $PATH"},
+ {Name: "-pr", Description: "Requires the given files/patterns in parallel"},
+ {Name: "-pa", Description: "Prepends the given path to Erlang code path"},
+ {Name: "-pz", Description: "Appends the given path to Erlang code path"},
+ {Name: "-v", Description: "Prints Elixir version and exits"},
+ {Name: "--app", Description: "Starts the given app and its dependencies"},
+ {Name: "--erl", Description: "Switches to be passed down to Erlang"},
+ {Name: "--logger-otp-reports", Description: "Enables or disables OTP reporting"},
+ {Name: "--logger-sasl-reports", Description: "Enables or disables SASL reporting"},
+ {Name: "--no-halt", Description: "Does not halt the Erlang VM after execution"},
+ {Name: "--werl", Description: "Uses Erlang's Windows shell GUI (Windows only)"},
+ {Name: "--cookie", Description: "Sets a cookie for this distributed node"},
+ {Name: "--hidden", Description: "Makes a hidden node"},
+ {Name: "--name", Description: "Makes and assigns a name to the distributed node"},
+ {Name: "--rpc-eval", Description: "Evaluates the given command on the given remote node"},
+ {Name: "--sname", Description: "Makes and assigns a short name to the distributed node"},
+ {Name: "--boot", Description: "Uses the given FILE.boot to start the system"},
+ {Name: "--boot-var", Description: "Makes $VAR available as VALUE to FILE.boot"},
+ {Name: "--erl-config", Description: "Loads configuration in FILE.config written in Erlang"},
+ {Name: "--pipe-to", Description: "Starts the Erlang VM as a named PIPEDIR and LOGDIR"},
+ {Name: "--vm-args", Description: "Passes the contents in file as arguments to the VM"},
+ },
+ })
+}
diff --git a/commands/runner/gem.go b/commands/runner/gem.go
new file mode 100644
index 0000000..e1d5b22
--- /dev/null
+++ b/commands/runner/gem.go
@@ -0,0 +1,106 @@
+package runner
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "gem",
+ Description: "Use HTTP proxy for remote operations",
+ Subcommands: []core.Subcommand{
+ {Name: "help", Description: "Help about any command"},
+ {Name: "install", Description: "Install a gem into the local repository"},
+ {Name: "PLATFORM", Description: "The platform of gem"},
+ {Name: "cert", Description: "Manage RubyGems certificates and signing settings"},
+ {Name: "CERT", Description: "The trusted certificate"},
+ {Name: "FILTER", Description: "The filter"},
+ {Name: "EMAIL_ADDR", Description: "The email address"},
+ {Name: "KEY", Description: "The key"},
+ {Name: "ALGORITHM", Description: "The algorithm"},
+ {Name: "NUMBER_OF_DAYS", Description: "The number of days"},
+ {Name: "check", Description: "Check a gem repository for added or missing files"},
+ {Name: "VERSION", Description: "The version of the gem"},
+ {Name: "cleanup", Description: "Clean up old versions of installed gems"},
+ {Name: "GEMNAME", Description: "Name of gem to cleanup"},
+ {Name: "contents", Description: "Display the contents of the installed gems"},
+ {Name: "dependency", Description: "Show the dependencies of an installed gem"},
+ {Name: "REGEXP", Description: "Show dependencies for gems whose names start with REGEXP"},
+ {Name: "environment", Description: "Display information about the RubyGems environment"},
+ {Name: "home", Description: "Display the path where gems are installed. Aliases: gemhome, gemdir, GEM_HOME"},
+ {Name: "path", Description: "Display path used to search for gems. Aliases: gempath, GEM_PATH"},
+ {Name: "version", Description: "Display the gem format version"},
+ {Name: "remotesources", Description: "Display the remote gem servers"},
+ {Name: "platform", Description: "Display the supported gem platforms"},
+ {Name: "fetch", Description: "Download a gem and place it in the current directory"},
+ {Name: "COUNT", Description: "The threshold"},
+ {Name: "URL", Description: "The URL"},
+ {Name: "generate_index", Description: "Generates the index files for a gem server directory"},
+ {Name: "info", Description: "Show information for the given gem"},
+ {Name: "lock", Description: "Generate a lockdown list of gems"},
+ {Name: "GEMNAME-VERSION", Description: "Name and the version of gem to lock, ex: rails-1.0.0"},
+ {Name: "mirror", Description: "Mirror all gem files (requires rubygems-mirror)"},
+ {Name: "open", Description: "Open gem sources in editor"},
+ {Name: "COMMAND", Description: "The prepends command to gem path"},
+ {Name: "query", Description: "Query gem information in local or remote repositories"},
+ {Name: "rdoc", Description: "Generates RDoc for pre-installed gems"},
+ {Name: "search", Description: "Display remote gems whose name matches REGEXP"},
+ {Name: "signin", Description: "Sign in to any gemcutter-compatible host. It defaults to https://rubygems.org"},
+ {Name: "HOST", Description: "The host"},
+ {Name: "CODE", Description: "The GEM host otp code"},
+ {Name: "signout", Description: "Sign out from all the current sessions"},
+ {Name: "sources", Description: "Manage the sources and cache file RubyGems uses to search for gems"},
+ {Name: "SOURCE_URI", Description: "The source URI"},
+ {Name: "specification", Description: "Display gem specification (in yaml)"},
+ {Name: "GEMFILE", Description: "Name of gem to show the gemspec for"},
+ {Name: "FIELD", Description: "Name of gemspec field to show"},
+ {Name: "stale", Description: "List gems along with access times"},
+ {Name: "unpack", Description: "Unpack an installed gem to the current directory"},
+ {Name: "yank", Description: "Remove a pushed gem from the index"},
+ {Name: "GEM", Description: "Name of gem"},
+ {Name: "uninstall", Description: "Uninstall gems from the local repository"},
+ },
+ Options: []core.Option{
+ {Name: "-p", Description: "Use HTTP proxy for remote operations"},
+ {Name: "--no-http-proxy", Description: "Do not use HTTP proxy for remote operations"},
+ {Name: "-l", Description: "Restrict operations to the LOCAL domain"},
+ {Name: "-r", Description: "Restrict operations to the REMOTE domain"},
+ {Name: "-b", Description: "Allow LOCAL and REMOTE operations"},
+ {Name: "-B", Description: "Threshold for switching to bulk synchronization (default 1000)"},
+ {Name: "--clear-sources", Description: "Clear the gem sources"},
+ {Name: "-s", Description: "Append URL to list of remote gem sources"},
+ {Name: "-i", Description: "Check for installed gem"},
+ {Name: "-I", Description: "Check for not installed gem"},
+ {Name: "-v", Description: "Specify version of gem to list for use with --installed"},
+ {Name: "-a", Description: "Display all gem versions"},
+ {Name: "-e", Description: "Name of gem(s) to query on matches the provided STRING"},
+ {Name: "--prerelease", Description: "Allow prerelease versions of a gem"},
+ {Name: "--no-prerelease", Description: "Do not allow prerelease versions of a gem"},
+ {Name: "--versions", Description: "Display only gem names"},
+ {Name: "--no-versions", Description: "Display not only gem names"},
+ {Name: "--host", Description: "Use another gemcutter-compatible host (e.g. https://rubygems.org)"},
+ {Name: "-k", Description: "Use the given API key"},
+ {Name: "--otp", Description: "The GEM host otp code"},
+ {Name: "--platform", Description: "Specify the platform of gem to install"},
+ {Name: "-C", Description: "Signing certificate for --sign"},
+ {Name: "-K", Description: "Key for --sign or --build"},
+ {Name: "-A", Description: "Select which key algorithm to use for --build"},
+ {Name: "-d", Description: "Days before the certificate expires"},
+ {Name: "-R", Description: "Re-signs the certificate from -C with the key from -K"},
+ {Name: "--no-alien", Description: "Report 'managed' or rogue files in the gem repository"},
+ {Name: "--doctor", Description: "Clean up uninstalled gems and broken specifications"},
+ {Name: "--no-doctor", Description: "Do not clean up uninstalled gems and broken specifications"},
+ {Name: "--dry-run", Description: "Do not remove files, only report what would be removed"},
+ {Name: "--no-dry-run", Description: "Remove files"},
+ {Name: "--gems", Description: "Check installed gems for problems"},
+ {Name: "--no-gems", Description: "Check not installed gems for problems"},
+ {Name: "-n", Description: "Do not uninstall gems"},
+ {Name: "-D", Description: "Check development dependencies while uninstalling (default: true)"},
+ {Name: "--no-check-development", Description: "Do not check development dependencies while uninstalling"},
+ {Name: "--user-install", Description: "Cleanup in userโs home directory instead of GEM_HOME"},
+ {Name: "--no-user-install", Description: "Cleanup in GEM_HOME instead of userโs home directory"},
+ {Name: "--all", Description: "Contents for all gems"},
+ {Name: "--no-lib-only", Description: "Not only return files in the Gemโs lib_dirs"},
+ },
+ })
+}
diff --git a/commands/runner/hexo.go b/commands/runner/hexo.go
new file mode 100644
index 0000000..336d3af
--- /dev/null
+++ b/commands/runner/hexo.go
@@ -0,0 +1,63 @@
+package runner
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "hexo",
+ Description: "Draft for",
+ Subcommands: []core.Subcommand{
+ {Name: "config", Description: "Get or set configurations"},
+ {Name: "help", Description: "Displays a help for each command"},
+ {Name: "command", Description: "The command to display help for"},
+ {Name: "init", Description: "Create a new Hexo folder"},
+ {Name: "destination", Description: "Folder path. Initialize in current folder if not specified"},
+ {Name: "new", Description: "Create a new article"},
+ {Name: "path", Description: "The path of the post"},
+ {Name: "slug", Description: "The slug of the post"},
+ {Name: "layout", Description: "The layout to use"},
+ {Name: "title", Description: "The title of the post"},
+ {Name: "generate", Description: "Generate static files"},
+ {Name: "concurrency", Description: "The number of files to generate in parallel"},
+ {Name: "publish", Description: "Publish a draft"},
+ {Name: "filename", Description: "The name of the post"},
+ {Name: "server", Description: "Start a local server. By default, this is at http://localhost:4000/"},
+ {Name: "ip", Description: "The IP address to bind to"},
+ {Name: "port", Description: "Only serve static files"},
+ {Name: "deploy", Description: "Deploy your website"},
+ {Name: "output directory", Description: "The path to output directory"},
+ {Name: "file", Description: "The file to render"},
+ {Name: "migrate", Description: "Migrate content from other blog systems"},
+ {Name: "type", Description: "The type of migration. check https://hexo.io/docs/migration for more details"},
+ {Name: "clean", Description: "Clean the cache file (`db.json`) and generated files (`public`)"},
+ {Name: "list", Description: "List all routes"},
+ {Name: "version", Description: "Display version information"},
+ },
+ Options: []core.Option{
+ {Name: "--no-clone", Description: "Copy files instead of cloning from GitHub"},
+ {Name: "--no-install", Description: "Skip npm install"},
+ {Name: "-p", Description: "Post path. Customize the path of the post"},
+ {Name: "-r", Description: "Replace the current post if it existed"},
+ {Name: "-s", Description: "Post slug. Customize the URL of the post"},
+ {Name: "-d", Description: "Deploy after generation finishes"},
+ {Name: "-f", Description: "Force regenerate"},
+ {Name: "-w", Description: "Watch file changes"},
+ {Name: "-b", Description: "Raise an error if any unhandled exception is thrown during generation"},
+ {Name: "-c", Description: "Maximum number of files to be generated in parallel. Default is infinity"},
+ {Name: "-i", Description: "Override the default server IP. Bind to all IP address by default"},
+ {Name: "-l", Description: "Enable logger. Override logger format"},
+ {Name: "-o", Description: "Immediately open the server url in your default web browser"},
+ {Name: "--setup", Description: "Setup without deployment"},
+ {Name: "-g", Description: "Generate static files before deploying"},
+ {Name: "--engine", Description: "Specify render engine"},
+ {Name: "--pretty", Description: "Prettify JSON output"},
+ {Name: "--config", Description: "Disable loading plugins and scripts"},
+ {Name: "--debug", Description: "Log verbose messages to the terminal and to `debug.log`"},
+ {Name: "--silent", Description: "Silence output to the terminal"},
+ {Name: "--draft", Description: "Display draft posts (stored in the `source/_drafts` folder)"},
+ {Name: "--cwd", Description: "Customize the path of current working directory"},
+ },
+ })
+}
diff --git a/commands/runner/laravel.go b/commands/runner/laravel.go
new file mode 100644
index 0000000..976ca90
--- /dev/null
+++ b/commands/runner/laravel.go
@@ -0,0 +1,33 @@
+package runner
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "laravel",
+ Description: "The output format (txt, xml, json, or md)",
+ Subcommands: []core.Subcommand{
+ {Name: "new", Description: "Create a new Laravel application"},
+ },
+ Options: []core.Option{
+ {Name: "--format", Description: "The output format (txt, xml, json, or md)"},
+ {Name: "--raw", Description: "To output raw command list"},
+ {Name: "--dev", Description: "Initialize a Git repository"},
+ {Name: "--branch", Description: "The branch that should be created for a new repository"},
+ {Name: "--github", Description: "Create a new repository on GitHub"},
+ {Name: "--jet", Description: "Installs the Laravel Jetstream scaffolding"},
+ {Name: "--stack", Description: "The Jetstream stack that should be installed"},
+ {Name: "--teams", Description: "Indicates whether Jetstream should be scaffolded with team support"},
+ {Name: "--prompt-jetstream", Description: "Issues a prompt to determine if Jetstream should be installed"},
+ {Name: "-f", Description: "Forces install even if the directory already exists"},
+ {Name: "-h", Description: "Display the help message"},
+ {Name: "-q", Description: "Do not output any message"},
+ {Name: "-V", Description: "Display this application version"},
+ {Name: "--ansi", Description: "Force ANSI output"},
+ {Name: "--no-ansi", Description: "Disable ANSI output"},
+ {Name: "-n", Description: "Do not ask any interactive question"},
+ },
+ })
+}
diff --git a/commands/runner/magento.go b/commands/runner/magento.go
new file mode 100644
index 0000000..5254c46
--- /dev/null
+++ b/commands/runner/magento.go
@@ -0,0 +1,12 @@
+package runner
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "magento",
+ Description: "Open-source E-commerce",
+ })
+}
diff --git a/commands/runner/mix.go b/commands/runner/mix.go
new file mode 100644
index 0000000..eac30d3
--- /dev/null
+++ b/commands/runner/mix.go
@@ -0,0 +1,39 @@
+package runner
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "mix",
+ Description: "Build tool for Elixir",
+ Subcommands: []core.Subcommand{
+ {Name: "new", Description: "Creates a new Elixir project at the given path"},
+ {Name: "run", Description: "Starts the current application and runs code"},
+ {Name: "code", Description: "String containing code to execute"},
+ {Name: "file|pattern", Description: "The file|pattern to execute"},
+ },
+ Options: []core.Option{
+ {Name: "-h", Description: "Output usage information"},
+ {Name: "--app", Description: "Name the OTP application for the project"},
+ {Name: "--modules", Description: "Name the modules in the generated code skeleton"},
+ {Name: "--sup", Description: "Generate an umbrella project"},
+ {Name: "--config", Description: "Loads the given configuration files"},
+ {Name: "-e", Description: "Evaluates the given code"},
+ {Name: "-r", Description: "Executes the given pattern/file"},
+ {Name: "-p", Description: "Executes the given pattern/file"},
+ {Name: "--preload-modules", Description: "Preloads all modules defined in applications"},
+ {Name: "--no-compile", Description: "Does not compile even if files require compilation"},
+ {Name: "--no-deps-check", Description: "Does not check dependencies"},
+ {Name: "--no-archives-check", Description: "Does not check archives"},
+ {Name: "--no-halt", Description: "Does not halt the system after running the command"},
+ {Name: "--no-mix-exs", Description: "Allows the command to run even if there is no mix.exs"},
+ {Name: "--no-start", Description: "Does not start applications after compilation"},
+ {Name: "--no-elixir-version-check", Description: "Does not check the Elixir version from mix.exs"},
+ {Name: "--search", Description: "Prints all tasks and aliases that contain 'pattern' in the name"},
+ {Name: "--names", Description: "Prints all task names and aliases"},
+ {Name: "-v", Description: "Shows versioning information"},
+ },
+ })
+}
diff --git a/commands/runner/php.go b/commands/runner/php.go
new file mode 100644
index 0000000..3ceb4ba
--- /dev/null
+++ b/commands/runner/php.go
@@ -0,0 +1,12 @@
+package runner
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "php",
+ Description: "Run the PHP interpreter",
+ })
+}
diff --git a/commands/runner/phpunit.go b/commands/runner/phpunit.go
new file mode 100644
index 0000000..08ce793
--- /dev/null
+++ b/commands/runner/phpunit.go
@@ -0,0 +1,52 @@
+package runner
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "phpunit",
+ Description: "Generate code coverage report in Clover XML format,",
+ Options: []core.Option{
+ {Name: "--coverage-clover", Description: "Generate code coverage report in Clover XML format,"},
+ {Name: "--coverage-crap4j", Description: "Generate code coverage report in Crap4J XML format"},
+ {Name: "--coverage-html", Description: "Generate code coverage report in HTML format"},
+ {Name: "--coverage-php", Description: "Export PHP_CodeCoverage object to file"},
+ {Name: "--coverage-text", Description: "Generate code coverage report in text format [default: standard output]"},
+ {Name: "--coverage-xml", Description: "Generate code coverage report in PHPUnit XML format"},
+ {Name: "--coverage-cache", Description: "Cache static analysis results"},
+ {Name: "--warm-coverage-cache", Description: "Warm static analysis cache"},
+ {Name: "--coverage-filter", Description: "Include in code coverage analysis"},
+ {Name: "--path-coverage", Description: "Perform path coverage analysis"},
+ {Name: "--disable-coverage-ignore", Description: "Disable annotations for ignoring code coverage"},
+ {Name: "--no-coverage", Description: "Ignore code coverage configuration"},
+ {Name: "--dont-report-useless-tests", Description: "Do not report tests that do not test anything"},
+ {Name: "--strict-coverage", Description: "Be strict about @covers annotation usage"},
+ {Name: "--strict-global-state", Description: "Be strict about changes to global state"},
+ {Name: "--disallow-test-output", Description: "Be strict about output during tests"},
+ {Name: "--disallow-resource-usage", Description: "Be strict about resource usage during small tests"},
+ {Name: "--enforce-time-limit", Description: "Enforce time limit based on test size"},
+ {Name: "--default-time-limit", Description: "Timeout in seconds for tests without @small, @medium or @large"},
+ {Name: "--disallow-todo-tests", Description: "Disallow @todo-annotated tests"},
+ {Name: "--log-junit", Description: "Log test execution in JUnit XML format to file"},
+ {Name: "--log-teamcity", Description: "Log test execution in TeamCity format to file"},
+ {Name: "--testdox-html", Description: "Write agile documentation in HTML format to file"},
+ {Name: "--testdox-text", Description: "Write agile documentation in Text format to file"},
+ {Name: "--testdox-xml", Description: "Write agile documentation in HTML format to file"},
+ {Name: "--reverse-list", Description: "Print defects in reverse order"},
+ {Name: "--no-logging", Description: "Ignore logging configuration"},
+ {Name: "--prepend", Description: "A PHP script that is included as early as possible"},
+ {Name: "--bootstrap", Description: "A PHP script that is included before the tests run"},
+ {Name: "-c", Description: "Read configuration from XML file"},
+ {Name: "--no-configuration", Description: "Ignore default configuration file (phpunit.xml)"},
+ {Name: "--extensions", Description: "A comma separated list of PHPUnit extensions to load"},
+ {Name: "--no-extensions", Description: "Do not load PHPUnit extensions"},
+ {Name: "--include-path", Description: "Prepend PHP's include_path with given path(s)"},
+ {Name: "-d", Description: "Sets a php.ini value"},
+ {Name: "--cache-result-file", Description: "Specify result cache path and filename"},
+ {Name: "--generate-configuration", Description: "Generate configuration file with suggested settings"},
+ {Name: "--migrate-configuration", Description: "Migrate configuration file to current format"},
+ },
+ })
+}
diff --git a/commands/runner/phpunit_watcher.go b/commands/runner/phpunit_watcher.go
new file mode 100644
index 0000000..0f36e38
--- /dev/null
+++ b/commands/runner/phpunit_watcher.go
@@ -0,0 +1,15 @@
+package runner
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "phpunit-watcher",
+ Description: "Automatically rerun PHPUnit tests when source code changes",
+ Options: []core.Option{
+ {Name: "--filter", Description: "Watch a specific test"},
+ },
+ })
+}
diff --git a/commands/runner/rails.go b/commands/runner/rails.go
new file mode 100644
index 0000000..1142e26
--- /dev/null
+++ b/commands/runner/rails.go
@@ -0,0 +1,54 @@
+package runner
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "rails",
+ Description: "Create a new rails application",
+ Options: []core.Option{
+ {Name: "-skip-namespace", Description: "Skip namespace (affects only isolated applications)"},
+ {Name: "-r", Description: "Path to the Ruby binary of your choice"},
+ {Name: "-m", Description: "Path to some application template (can be a filesystem path or URL)"},
+ {Name: "-d", Description: "Preconfigure for selected database - defaults to sqlite3"},
+ {Name: "--skip-gemfile", Description: "Don't create a Gemfile"},
+ {Name: "-G", Description: "Skip .gitignore file"},
+ {Name: "--skip-keeps", Description: "Skip source control .keep files"},
+ {Name: "-M", Description: "Skip Action Mailer files"},
+ {Name: "--skip-action-mailbox", Description: "Skip Action Mailbox gem"},
+ {Name: "--skip-action-text", Description: "Skip Action Text gem"},
+ {Name: "-O", Description: "Skip Active Record files"},
+ {Name: "--skip-active-storage", Description: "Skip Active Storage files"},
+ {Name: "-P", Description: "Skip Puma related files"},
+ {Name: "-C", Description: "Skip Action Cable files"},
+ {Name: "-S", Description: "Skip Sprockets files"},
+ {Name: "--skip-spring", Description: "Don't install Spring application preloader"},
+ {Name: "--skip-listen", Description: "Don't generate configuration that depends on the listen gem"},
+ {Name: "-J", Description: "Skip JavaScript files"},
+ {Name: "--skip-turbolinks", Description: "Skip turbolinks gem"},
+ {Name: "-T", Description: "Skip test files"},
+ {Name: "--skip-system-test", Description: "Skip system test files"},
+ {Name: "--skip-bootsnap", Description: "Skip bootsnap gem"},
+ {Name: "--dev", Description: "Setup the application with Gemfile pointing to your Rails checkout"},
+ {Name: "--edge", Description: "Setup the application with Gemfile pointing to Rails repository"},
+ {Name: "--rc", Description: "Path to file containing extra configuration options for rails command"},
+ {Name: "--no-rc", Description: "Skip loading of extra configuration options from .railsrc file"},
+ {Name: "--api", Description: "Preconfigure smaller stack for API only apps"},
+ {Name: "-B", Description: "Don't run bundle install"},
+ {Name: "--webpacker", Description: "Preconfigure Webpack with a particular framework"},
+ {Name: "--f", Description: "Overwrite files that already exist"},
+ {Name: "--p", Description: "Run but do not make any changes"},
+ {Name: "--q", Description: "Suppress status output"},
+ {Name: "--s", Description: "Skip files that already exist"},
+ {Name: "--h", Description: "Show this help message and quit"},
+ {Name: "--v", Description: "Show Rails version number and quit"},
+ {Name: "--backtrace", Description: "Enable full backtrace. OUT can be stderr (default) or stdout"},
+ {Name: "--comments", Description: "Show commented tasks only"},
+ {Name: "--job-stats", Description: "Display job statistics. LEVEL=history displays a complete job list"},
+ {Name: "--rules", Description: "Trace the rules resolution"},
+ {Name: "--suppress-backtrace", Description: "Suppress backtrace lines matching regexp PATTERN. Ignored if --trace is on"},
+ },
+ })
+}
diff --git a/commands/runner/rake.go b/commands/runner/rake.go
new file mode 100644
index 0000000..bb2f2e7
--- /dev/null
+++ b/commands/runner/rake.go
@@ -0,0 +1,26 @@
+package runner
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "rake",
+ Description: "A ruby build program with capabilities similar to make",
+ Options: []core.Option{
+ {Name: "-n", Description: "Do a dry run without executing actions"},
+ {Name: "-h", Description: "Display this help message"},
+ {Name: "-I", Description: "Include LIBDIR in the search path for required modules"},
+ {Name: "-P", Description: "Display the tasks and dependencies, then exit"},
+ {Name: "-q", Description: "Do not log messages to standard output"},
+ {Name: "-f", Description: "Use FILE as the rakefile"},
+ {Name: "-r", Description: "Require MODULE before executing rakefile"},
+ {Name: "-s", Description: "Like --quiet, but also suppresses the 'in directory' announcement"},
+ {Name: "-T", Description: "Display the tasks and dependencies, then exit"},
+ {Name: "-t", Description: "Turn on invoke/execute tracing, enable full backtrace"},
+ {Name: "-v", Description: "Log message to standard output (default)"},
+ {Name: "-V", Description: "Display the program version"},
+ },
+ })
+}
diff --git a/commands/runner/rubocop.go b/commands/runner/rubocop.go
new file mode 100644
index 0000000..106bd6e
--- /dev/null
+++ b/commands/runner/rubocop.go
@@ -0,0 +1,52 @@
+package runner
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "rubocop",
+ Description: "Run only lint cops",
+ Options: []core.Option{
+ {Name: "-l", Description: "Run only lint cops"},
+ {Name: "-x", Description: "Run only layout cops, with autocorrect on"},
+ {Name: "--safe", Description: "Run only safe cops"},
+ {Name: "--except", Description: "Exclude the given cop(s)"},
+ {Name: "--only", Description: "Run only the given cop(s)"},
+ {Name: "--only-guide-cops", Description: "Run only cops for rules that link to a style guide"},
+ {Name: "-F", Description: "Run without pending cops"},
+ {Name: "--enable-pending-cops", Description: "Run with pending cops"},
+ {Name: "--ignore-disable-comments", Description: "Run cops even when they are disabled locally by a `rubocop:disable` directive"},
+ {Name: "--force-exclusion", Description: "Prevent from inheriting `AllCops/Exclude` from parent folders"},
+ {Name: "--ignore-unrecognized-cops", Description: "Ignore unrecognized cops or departments in the config"},
+ {Name: "--force-default-config", Description: "Use available CPUs to execute inspection in parallel default true"},
+ {Name: "--no-parallel", Description: "Disable parallel inspection (default: false)"},
+ {Name: "--fail-level", Description: "Minimum severity for exit with error code"},
+ {Name: "-C", Description: "Do not use server even if it's available"},
+ {Name: "--server", Description: "Restart server process"},
+ {Name: "--start-server", Description: "Start server process"},
+ {Name: "--stop-server", Description: "Stop server process"},
+ {Name: "--server-status", Description: "Show server status"},
+ {Name: "-f", Description: "Display cop names in offense messages. Default is true"},
+ {Name: "--no-display-cop-names", Description: "Disable displaying cop names in offense messages. Default false"},
+ {Name: "-E", Description: "Display extra details in offense messages"},
+ {Name: "-S", Description: "Display style guide URLs in offense messages"},
+ {Name: "-o", Description: "Display elapsed time in seconds"},
+ {Name: "--display-only-failed", Description: "Only output offense messages. Omit passing cops. Only valid for --format junit"},
+ {Name: "--display-only-correctable", Description: "Only output correctable offense messages"},
+ {Name: "-A", Description: "Autocorrect offenses (safe and unsafe)"},
+ {Name: "--disable-uncorrectable", Description: "Generate a configuration file acting as a TODO list"},
+ {Name: "--regenerate-todo", Description: "List all files RuboCop will inspect"},
+ {Name: "--show-cops", Description: "Display url to documentation for the given cops, or base url by default"},
+ {Name: "--init", Description: "Generate a .rubocop.yml file in the current directory"},
+ {Name: "-c", Description: "Specify configuration file"},
+ {Name: "-d", Description: "Display debug info"},
+ {Name: "-r", Description: "Require Ruby file"},
+ {Name: "--no-color", Description: "Disable color output"},
+ {Name: "--color", Description: "Force color output"},
+ {Name: "-v", Description: "Display version"},
+ {Name: "-V", Description: "Display verbose version"},
+ },
+ })
+}
diff --git a/commands/runner/ruby.go b/commands/runner/ruby.go
new file mode 100644
index 0000000..9a2afed
--- /dev/null
+++ b/commands/runner/ruby.go
@@ -0,0 +1,27 @@
+package runner
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "ruby",
+ Description: "Interpreted object-oriented scripting language",
+ Options: []core.Option{
+ {Name: "--copyright", Description: "Prints the copyright notice"},
+ {Name: "--version", Description: "Prints the version of Ruby interpreter"},
+ {Name: "-0", Description: "Specifies the input record separator ($/) as an octal number"},
+ {Name: "-C", Description: "Causes Ruby to switch to the directory"},
+ {Name: "-F", Description: "Specifies input field separator ($;)"},
+ {Name: "-I", Description: "Specifies KANJI (Japanese) encoding"},
+ {Name: "-S", Description: "Turns on taint checks at the specified level (default 1)"},
+ {Name: "-a", Description: "Turns on auto-split mode when used with -n or -p"},
+ {Name: "-c", Description: "Turns on debug mode. $DEBUG will be set to true"},
+ {Name: "-e", Description: "Prints a summary of the options"},
+ {Name: "-i", Description: "Causes Ruby to assume the following loop around your script"},
+ {Name: "-p", Description: "Causes Ruby to load the library using require"},
+ {Name: "-s", Description: "Enables verbose mode"},
+ },
+ })
+}
diff --git a/commands/runner/rvm.go b/commands/runner/rvm.go
new file mode 100644
index 0000000..78ca36e
--- /dev/null
+++ b/commands/runner/rvm.go
@@ -0,0 +1,37 @@
+package runner
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "rvm",
+ Description: "Show version of rvm",
+ Subcommands: []core.Subcommand{
+ {Name: "use", Description: "Setup current shell to use a specific ruby version"},
+ {Name: "reset", Description: "Remove default and current settings, exit the shell"},
+ {Name: "info", Description: "Show information about the current ruby environment"},
+ {Name: "list", Description: "List currently installed version"},
+ {Name: "reload", Description: "Reload RVM source itself (useful after changing RVM source)"},
+ {Name: "implode", Description: "Remove all ruby installations it manages"},
+ {Name: "get", Description: "Upgrades RVM to the stable or git head branches"},
+ {Name: "do", Description: "Runs a named ruby file against specified and/or all rubies"},
+ {Name: "install", Description: "Install one or many ruby versions"},
+ {Name: "upgrade", Description: "Install new ruby, copy gemsets, make gems pristine, remove old rubies"},
+ {Name: "reinstall", Description: "Remove ruby, install it, make gems pristine"},
+ {Name: "uninstall", Description: "Uninstall one or many ruby versions, leaves their sources"},
+ {Name: "remove", Description: "Remove one or many ruby versions, including their sources"},
+ },
+ Options: []core.Option{
+ {Name: "--version", Description: "Show version of rvm"},
+ {Name: "--default", Description: "When used with ruby selection, sets a default ruby for new shells"},
+ {Name: "--debug", Description: "Enable debug mode"},
+ {Name: "--force", Description: "Force install, removes old install & source before install"},
+ {Name: "--all", Description: "Used with 'rvm list' to display 'most' available versions"},
+ {Name: "--summary", Description: "Used with 'do' to print out a summary of the commands run"},
+ {Name: "-C", Description: "Rubinius"},
+ {Name: "--help", Description: "Show help for rvm"},
+ },
+ })
+}
diff --git a/commands/runner/sidekiq.go b/commands/runner/sidekiq.go
new file mode 100644
index 0000000..7b7f3ef
--- /dev/null
+++ b/commands/runner/sidekiq.go
@@ -0,0 +1,24 @@
+package runner
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "sidekiq",
+ Description: "Background job framework for Ruby",
+ Options: []core.Option{
+ {Name: "--concurrency", Description: "Processor threads to use"},
+ {Name: "--environment", Description: "Application environment"},
+ {Name: "--tag", Description: "Process tag for procline"},
+ {Name: "--queue", Description: "Queues to process with optional weights"},
+ {Name: "--require", Description: "Location of Rails application with jobs or file to require"},
+ {Name: "--timeout", Description: "Shutdown timeout"},
+ {Name: "--verbose", Description: "Print more verbose output"},
+ {Name: "--config", Description: "Path to YAML config file"},
+ {Name: "--help", Description: "Show help for sidekiq run"},
+ {Name: "--version", Description: "Print version and exit"},
+ },
+ })
+}
diff --git a/commands/runner/symfony.go b/commands/runner/symfony.go
new file mode 100644
index 0000000..7883599
--- /dev/null
+++ b/commands/runner/symfony.go
@@ -0,0 +1,72 @@
+package runner
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "symfony",
+ Description: "Symfony Binary",
+ Subcommands: []core.Subcommand{
+ {Name: "cloud:clear-cache", Description: "Clear the CLI cache"},
+ {Name: "cloud:docs", Description: "Open the online documentation"},
+ {Name: "cloud:multi", Description: "Execute a command on multiple projects"},
+ {Name: "cloud:web", Description: "Open the Web UI"},
+ {Name: "cloud:activity:cancel", Description: "Cancel an activity"},
+ {Name: "cloud:activity:get", Description: "View detailed information on a single activity"},
+ {Name: "cloud:activity:list", Description: "Get a list of activities for an environment or project"},
+ {Name: "cloud:activity:log", Description: "Display the log for an activity"},
+ {Name: "cloud:app:config-get", Description: "View the configuration of an app"},
+ {Name: "cloud:app:list", Description: "List apps in the project"},
+ {Name: "cloud:auth:api-token-login", Description: "Log in to Platform.sh using an API token"},
+ {Name: "cloud:auth:browser-login", Description: "Log in to Platform.sh via a browse"},
+ {Name: "cloud:auth:info", Description: "Display your account information"},
+ {Name: "cloud:auth:logout", Description: "Log out of Platform.sh"},
+ {Name: "cloud:backup:create", Description: "Make a backup of an environment"},
+ {Name: "cloud:backup:list", Description: "List available backups of an environment"},
+ {Name: "cloud:backup:restore", Description: "Restore an environment backup"},
+ {Name: "cloud:certificate:add", Description: "Add an SSL certificate to the project"},
+ {Name: "cloud:certificate:delete", Description: "Delete a certificate from the project"},
+ {Name: "cloud:certificate:get", Description: "View a certificate"},
+ {Name: "cloud:certificate:list", Description: "List project certificates"},
+ {Name: "cloud:commit:get", Description: "Show commit details"},
+ {Name: "cloud:commit:list", Description: "List commits"},
+ {Name: "cloud:db:dump", Description: "Create a local dump of the remote database"},
+ {Name: "cloud:db:size", Description: "Estimate the disk usage of a database"},
+ {Name: "cloud:db:sql", Description: "Run SQL on the remote database"},
+ {Name: "cloud:domain:add", Description: "Add a new domain to the project"},
+ {Name: "cloud:domain:delete", Description: "Delete a domain from the project"},
+ {Name: "cloud:domain:get", Description: "Show detailed information for a domain"},
+ {Name: "cloud:domain:list", Description: "Get a list of all domains"},
+ {Name: "cloud:domain:update", Description: "Update a domain"},
+ {Name: "cloud:environment:activate", Description: "Activate an environment"},
+ {Name: "cloud:environment:branch", Description: "Branch an environment"},
+ {Name: "cloud:environment:checkout", Description: "Check out an environment"},
+ {Name: "cloud:environment:debug", Description: "Debug an environment by switching Symfony to the debug mode temporarily"},
+ {Name: "cloud:environment:delete", Description: "Delete one or more environments"},
+ {Name: "cloud:environment:http-access", Description: "Update HTTP access settings for an environment"},
+ {Name: "cloud:environment:info", Description: "Read or set properties for an environment"},
+ {Name: "cloud:environment:init", Description: "Initialize an environment from a public Git repository"},
+ {Name: "cloud:environment:list", Description: "Get a list of environments"},
+ {Name: "cloud:environment:logs", Description: "Read an environment's logs"},
+ {Name: "cloud:environment:merge", Description: "Merge an environment"},
+ {Name: "cloud:environment:push", Description: "Push code to an environment"},
+ {Name: "cloud:environment:redeploy", Description: "Redeploy an environment"},
+ {Name: "cloud:environment:relationships", Description: "Show an environment's relationships"},
+ {Name: "cloud:environment:scp", Description: "Copy files to and from current environment using scp"},
+ {Name: "cloud:environment:ssh", Description: "SSH to the current environment"},
+ {Name: "cloud:environment:synchronize", Description: "Synchronize an environment's code and/or data from its parent"},
+ {Name: "cloud:environment:url", Description: "Get the public URLs of an environment"},
+ {Name: "cloud:environment:xdebug", Description: "Open a tunnel to Xdebug on the environment"},
+ },
+ Options: []core.Option{
+ {Name: "-h", Description: "Show help"},
+ {Name: "-q", Description: "Do not output any message"},
+ {Name: "--no-ansi", Description: "Disable ANSI output"},
+ {Name: "--ansi", Description: "Force ANSI output"},
+ {Name: "--no-interaction", Description: "Do not ask any interactive question"},
+ {Name: "-v", Description: "Print the version"},
+ },
+ })
+}
diff --git a/commands/runner/valet.go b/commands/runner/valet.go
new file mode 100644
index 0000000..90f68f4
--- /dev/null
+++ b/commands/runner/valet.go
@@ -0,0 +1,82 @@
+package runner
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "valet",
+ Description: "Do not output any message",
+ Subcommands: []core.Subcommand{
+ {Name: "diagnose", Description: "Output diagnostics to aid in debugging Valet"},
+ {Name: "fetch-share-url", Description: "Get the URL to the current share tunnel (for Expose or ngrok)"},
+ {Name: "forget", Description: "Remove the current working (or specified) directory from Valet's list of paths"},
+ {Name: "help", Description: "Display help for a command"},
+ {Name: "install", Description: "Install the Valet services"},
+ {Name: "link", Description: "Link the current working directory to Valet"},
+ {Name: "links", Description: "Display all of the registered Valet links"},
+ {Name: "list", Description: "List commands"},
+ {Name: "log", Description: "Tail log file"},
+ {Name: "loopback", Description: "Get or set the loopback address used for Valet sites"},
+ {Name: "on-latest-version", Description: "Determine if this is the latest version of Valet"},
+ {Name: "open", Description: "Open the site for the current (or specified) directory in your browser"},
+ {Name: "park", Description: "Register the current working (or specified) directory with Valet"},
+ {Name: "parked", Description: "Display all the current sites within parked paths"},
+ {Name: "paths", Description: "Get all of the paths registered with Valet"},
+ {Name: "proxies", Description: "Display all of the proxy sites"},
+ {Name: "restart", Description: "Restart the Valet services"},
+ {Name: "secure", Description: "Secure the given domain with a trusted TLS certificate"},
+ {Name: "share", Description: "Generate a publicly accessible URL for your project"},
+ {Name: "start", Description: "Start the Valet services"},
+ {Name: "stop", Description: "Stop the Valet services"},
+ {Name: "tld", Description: "Get or set the TLD used for Valet sites"},
+ {Name: "uninstall", Description: "Uninstall the Valet services"},
+ {Name: "unlink", Description: "Remove the specified Valet link"},
+ {Name: "unproxy", Description: "Delete an Nginx proxy config"},
+ {Name: "unsecure", Description: "Stop serving the given domain over HTTPS and remove the trusted TLS certificate"},
+ {Name: "use", Description: "Change the version of PHP used by valet"},
+ {Name: "which", Description: "Determine which Valet driver serves the current working directory"},
+ {Name: "isolate", Description: "Change the version of PHP used by Valet to serve the current working directory"},
+ {Name: "isolated", Description: "List all sites using isolated versions of PHP"},
+ {Name: "which-php", Description: "Get the PHP executable path for a site"},
+ {Name: "completion", Description: "Dump the shell completion script"},
+ {Name: "secured", Description: "Display all of the currently secured sites"},
+ {Name: "set-ngrok-token", Description: "Set the Ngrok auth token"},
+ {Name: "share-tool", Description: "Get the name of the current share tool (Expose or ngrok)"},
+ {Name: "status", Description: "Output the status of Valet and its installed services and config"},
+ },
+ Options: []core.Option{
+ {Name: "-h", Description: "Do not output any message"},
+ {Name: "-V", Description: "Display this application version"},
+ {Name: "--ansi", Description: "Force (or disable --no-ansi) ANSI output"},
+ {Name: "--no-ansi", Description: "Force (or disable --no-ansi) ANSI output"},
+ {Name: "-n", Description: "Do not ask any interactive question"},
+ {Name: "-v", Description: "Normal output"},
+ {Name: "--secure", Description: "Valet is a Laravel development environment for macOS minimalists"},
+ {Name: "-p", Description: "Print diagnostics output while running"},
+ {Name: "--plain", Description: "Format clipboard output as plain text"},
+ {Name: "--format", Description: "The output format (txt, xml, json, or md) [default: 'txt']"},
+ {Name: "--raw", Description: "To output raw command help"},
+ {Name: "--isolate", Description: "Display all of the registered Valet links"},
+ {Name: "--short", Description: "To skip describing commands' arguments"},
+ {Name: "-l", Description: "Get or set the loopback address used for Valet sites"},
+ {Name: "--auth", Description: "Enforce basic auth on tunnel endpoint, 'user:password'"},
+ {Name: "--authtoken", Description: "Ngrok.com authtoken identifying a user"},
+ {Name: "--bind-tls", Description: "Listen for http, https or both: true/false/both"},
+ {Name: "--config", Description: "Path to config files; they are merged if multiple"},
+ {Name: "--host-header", Description: "Set Host header; if 'rewrite' use local address hostname"},
+ {Name: "--hostname", Description: "Host tunnel on custom hostname (requires DNS CNAME)"},
+ {Name: "--inspect", Description: "Enable/disable http introspection"},
+ {Name: "--log", Description: "Path to log file, 'stdout', 'stderr' or 'false'"},
+ {Name: "--log-format", Description: "Log record format: 'term', 'logfmt', 'json'"},
+ {Name: "--log-level", Description: "Logging level"},
+ {Name: "--region", Description: "Ngrok server region [us, eu, au, ap, sa, jp, in] (default: us)"},
+ {Name: "--subdomain", Description: "Host tunnel on a custom subdomain"},
+ {Name: "--off", Description: "Remove the sudoers files so normal sudo password prompts are required"},
+ {Name: "--force", Description: "Do a forceful uninstall of Valet and related Homebrew pkgs"},
+ {Name: "--site", Description: "Name of the website you want to isolate"},
+ {Name: "--debug", Description: "Tail the completion debug log"},
+ },
+ })
+}
diff --git a/commands/runner/vapor.go b/commands/runner/vapor.go
new file mode 100644
index 0000000..6bebb05
--- /dev/null
+++ b/commands/runner/vapor.go
@@ -0,0 +1,35 @@
+package runner
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "vapor",
+ Description: "Vapor Toolbox (Server-side Swift web framework)",
+ Subcommands: []core.Subcommand{
+ {Name: "build", Description: "Builds an app in the console"},
+ {Name: "new", Description: "Generates a new app"},
+ {Name: "name", Description: "Name of project and folder"},
+ {Name: "clean", Description: "Cleans temporary files"},
+ {Name: "heroku", Description: "Commands for working with Heroku"},
+ {Name: "init", Description: "Configures app for deployment to Heroku"},
+ {Name: "push", Description: "Deploys app to Heroku"},
+ {Name: "supervisor", Description: "Commands for working with Supervisord"},
+ {Name: "restart", Description: "Restarts current project in Supervisor"},
+ {Name: "update", Description: "Updates Supervisor entry for current project"},
+ {Name: "xcode", Description: "Opens an app in Xcode"},
+ },
+ Options: []core.Option{
+ {Name: "--template", Description: "The URL of a Git repository to use as a template"},
+ {Name: "--branch", Description: "Template repository branch to use"},
+ {Name: "--output", Description: "The directory to place the new project in"},
+ {Name: "--no-commit", Description: "Skips adding a first commit to the newly created repo"},
+ {Name: "--update", Description: "Delete Package.resolved file if it exists"},
+ {Name: "--global", Description: "Clean Xcode's global DerivedData cache"},
+ {Name: "--swiftpm", Description: "Delete .swiftpm folder"},
+ {Name: "--help", Description: "Show help for vapor"},
+ },
+ })
+}
diff --git a/commands/rust/dprint.go b/commands/rust/dprint.go
new file mode 100644
index 0000000..08d899b
--- /dev/null
+++ b/commands/rust/dprint.go
@@ -0,0 +1,31 @@
+package rust
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "dprint",
+ Description: "Prints the help of the given subcommand(s)",
+ Subcommands: []core.Subcommand{
+ {Name: "init", Description: "Initializes a configuration file in the current directory"},
+ {Name: "fmt", Description: "Formats the source files and writes the result to the file system"},
+ {Name: "check", Description: "Checks for any files that haven't been formatted"},
+ {Name: "config", Description: "Functionality related to the configuration file"},
+ {Name: "add", Description: "Adds a plugin to the configuration file"},
+ {Name: "update", Description: "Updates the plugins in the configuration file"},
+ {Name: "output-format-times", Description: "Prints the amount of time it takes to format each file. Use this for debugging"},
+ {Name: "clear-cache", Description: "Deletes the plugin cache directory"},
+ {Name: "license", Description: "Outputs the software license"},
+ },
+ Options: []core.Option{
+ {Name: "--excludes", Description: "A pluggable and configurable code formatting platform written in Rust"},
+ {Name: "--diff", Description: "Outputs a check-like diff of every formatted file"},
+ {Name: "--stdin", Description: "Checks for any files that haven't been formatted"},
+ {Name: "-y", Description: "Upgrade process plugins without prompting to confirm checksums"},
+ {Name: "-c", Description: "Prints help information"},
+ {Name: "--plugins", Description: "Prints additional diagnostic information"},
+ },
+ })
+}
diff --git a/commands/rust/pijul.go b/commands/rust/pijul.go
new file mode 100644
index 0000000..eec5df9
--- /dev/null
+++ b/commands/rust/pijul.go
@@ -0,0 +1,77 @@
+package rust
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "pijul",
+ Description: "Adds a path to the tree",
+ Subcommands: []core.Subcommand{
+ {Name: "add", Description: "Adds a path to the tree"},
+ {Name: "PATHS", Description: "Paths to add to the internal tree"},
+ {Name: "apply", Description: "Applies changes to a channel"},
+ {Name: "archive", Description: "Creates an archive of the repository"},
+ {Name: "change", Description: "Shows information about a particular change"},
+ {Name: "HASH", Description: "The hash of the change to show, or an unambiguous prefix thereof"},
+ {Name: "channel", Description: "Manages different channels"},
+ {Name: "delete", Description: "Delete a channel. The channel must not be the current channel"},
+ {Name: "help", Description: "Print this message or the help of the given subcommand(s)"},
+ {Name: "new", Description: "Create a new, empty channel"},
+ {Name: "rename", Description: "Rename a channel"},
+ {Name: "switch", Description: "Switch to a channel. There must not be unrecorded changes in the working copy"},
+ {Name: "clone", Description: "Clones an existing pijul repository"},
+ {Name: "REMOTE", Description: "Clone this remote"},
+ {Name: "credit", Description: "Shows which change last affected each line of the given file(s)"},
+ {Name: "FILE", Description: "The file to annotate"},
+ {Name: "diff", Description: "Shows difference between two channels/changes"},
+ {Name: "fork", Description: "Create a new channel"},
+ {Name: "TO", Description: "The name of the new channel"},
+ {Name: "init", Description: "Initializes an empty pijul repository"},
+ {Name: "PATH", Description: "Path where the repository should be initialized"},
+ {Name: "log", Description: "Show the entire log of changes"},
+ {Name: "pull", Description: "Pulls changes from a remote upstream"},
+ {Name: "FROM", Description: "Pulls from this remote"},
+ {Name: "CHANGES", Description: "Pull changes from the local repository, not necessarily from a channel"},
+ {Name: "push", Description: "Pushes changes to a remote upstream"},
+ {Name: "record", Description: "Creates a new change"},
+ {Name: "PREFIXES", Description: "Paths in which to record the changes"},
+ {Name: "remote", Description: "Manages remote repositories"},
+ {Name: "FILES", Description: "Only reset these files"},
+ {Name: "unrecord", Description: "Unrecords a list of changes"},
+ {Name: "CHANGE_ID", Description: "The hash of a change (unambiguous prefixes are accepted)"},
+ },
+ Options: []core.Option{
+ {Name: "-f", Description: "Print help information"},
+ {Name: "-r", Description: "Applies changes to a channel"},
+ {Name: "--channel", Description: "Apply change to this channel"},
+ {Name: "--deps-only", Description: "Print help information"},
+ {Name: "--repository", Description: "Creates an archive of the repository"},
+ {Name: "--change", Description: "Apply these changes after switching to the channel"},
+ {Name: "-h", Description: "Print help information"},
+ {Name: "-k", Description: "Do not check certificates (HTTPS remotes only, this option might be dangerous)"},
+ {Name: "-o", Description: "Name of the output file"},
+ {Name: "--prefix", Description: "Append this path in front of each path inside the archive"},
+ {Name: "--remote", Description: "Ask the remote to send an archive"},
+ {Name: "--umask", Description: "Append this path in front of each path inside the archive"},
+ {Name: "--path", Description: "Clone this path only"},
+ {Name: "--state", Description: "Clone this state"},
+ {Name: "--json", Description: "Output the diff in JSON format instead of the default change text format"},
+ {Name: "--tag", Description: "Include the untracked files"},
+ {Name: "--description", Description: "Include full change description in the output"},
+ {Name: "--hash-only", Description: "Only show the change hashes"},
+ {Name: "--limit", Description: "Output at most this many changes"},
+ {Name: "--offset", Description: "Start after this many changes"},
+ {Name: "--output-format", Description: "Include state identifiers in the output"},
+ {Name: "-a", Description: "Pull all changes"},
+ {Name: "--full", Description: "Download full changes, even when not necessary"},
+ {Name: "--to-channel", Description: "Push to this remote channel instead of the remoteโs default channel"},
+ {Name: "--amend", Description: "Amend this change instead of creating a new change"},
+ {Name: "--author", Description: "Set the author field"},
+ {Name: "--ignore-missing", Description: "Ignore missing (deleted) files"},
+ {Name: "-m", Description: "Set the change message"},
+ {Name: "--working-copy", Description: "Manages remote repositories"},
+ },
+ })
+}
diff --git a/commands/rust/rustup.go b/commands/rust/rustup.go
new file mode 100644
index 0000000..32dc8b2
--- /dev/null
+++ b/commands/rust/rustup.go
@@ -0,0 +1,70 @@
+package rust
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "rustup",
+ Description: "The Rust toolchain installer",
+ Subcommands: []core.Subcommand{
+ {Name: "show", Description: "Show the active and installed toolchains or profiles"},
+ {Name: "active-toolchain", Description: "Show the active toolchain"},
+ {Name: "home", Description: "Display the computed value of RUSTUP_HOME"},
+ {Name: "profile", Description: "Show the current profile"},
+ {Name: "keys", Description: "Display the known PGP keys"},
+ {Name: "help", Description: "Prints this message or the help of the given subcommand(s)"},
+ {Name: "update", Description: "Update Rust toolchains and rustup"},
+ {Name: "toolchain", Description: "Toolchain name. For more information see `rustup help toolchain`"},
+ {Name: "check", Description: "Check for updates to Rust toolchains and rustup"},
+ {Name: "target", Description: "Modify a toolchain's supported targets"},
+ {Name: "list", Description: "List installed and available targets"},
+ {Name: "add", Description: "Add a target to a Rust toolchain"},
+ {Name: "remove", Description: "Remove a target from a Rust toolchain"},
+ {Name: "install", Description: "Install or update a given toolchain"},
+ {Name: "path", Description: "Path to the directory"},
+ {Name: "component", Description: "Modify a toolchain's installed components"},
+ {Name: "override", Description: "Modify directory toolchain overrides"},
+ {Name: "set", Description: "Set the override toolchain for a directory"},
+ {Name: "run", Description: "Run a command with an environment configured for a given toolchain"},
+ {Name: "which", Description: "Display which binary will be run for a given command"},
+ {Name: "doc", Description: "Open the documentation for the current toolchain"},
+ {Name: "man", Description: "View the man page for a given command"},
+ {Name: "self", Description: "Modify the rustup installation"},
+ {Name: "uninstall", Description: "Uninstall rustup"},
+ {Name: "upgrade-data", Description: "Upgrade the internal data format"},
+ {Name: "auto-self-update", Description: "The rustup auto self update mode"},
+ {Name: "completions", Description: "Generate tab-completion scripts for your shell"},
+ },
+ Options: []core.Option{
+ {Name: "-h", Description: "Prints help information"},
+ {Name: "--force", Description: "Force an update, even if some components are missing"},
+ {Name: "--force-non-host", Description: "Prints help information"},
+ {Name: "--no-self-update", Description: "Don't perform self update when running the `rustup update` command"},
+ {Name: "-V", Description: "Prints version information"},
+ {Name: "--toolchain", Description: "Toolchain name"},
+ {Name: "-t", Description: "Add specific targets on installation"},
+ {Name: "-c", Description: "Add specific components on installation"},
+ {Name: "--profile", Description: "Allow rustup to downgrade the toolchain to satisfy your component choice"},
+ {Name: "--install", Description: "Install the requested toolchain if needed"},
+ {Name: "--alloc", Description: "The Rust core allocation and collections library"},
+ {Name: "--book", Description: "The Rust Programming Language book"},
+ {Name: "--cargo", Description: "The Cargo Book"},
+ {Name: "--core", Description: "The Rust Core Library"},
+ {Name: "--edition-guide", Description: "The Rust Edition Guide"},
+ {Name: "--embedded-book", Description: "The Embedded Rust Book"},
+ {Name: "--nomicon", Description: "The Dark Arts of Advanced and Unsafe Rust Programming"},
+ {Name: "--path", Description: "Only print the path to the documentation"},
+ {Name: "--proc_macro", Description: "A support library for macro authors when defining new macros"},
+ {Name: "--reference", Description: "The Rust Reference"},
+ {Name: "--rust-by-example", Description: "The compiler for the Rust programming language"},
+ {Name: "--rustdoc", Description: "Generate documentation for Rust projects"},
+ {Name: "--std", Description: "Standard library API documentation"},
+ {Name: "--test", Description: "Support code for rustc's built in unit-test and micro-benchmarking framework"},
+ {Name: "--unstable-book", Description: "--unstable-book"},
+ {Name: "-q", Description: "Disable progress output"},
+ {Name: "-v", Description: "Enable verbose output"},
+ },
+ })
+}
diff --git a/commands/rust/taplo.go b/commands/rust/taplo.go
new file mode 100644
index 0000000..81715ce
--- /dev/null
+++ b/commands/rust/taplo.go
@@ -0,0 +1,47 @@
+package rust
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "taplo",
+ Description: "Set color values for the output",
+ Subcommands: []core.Subcommand{
+ {Name: "config", Description: "Operations with the Taplo config file"},
+ {Name: "default", Description: "Print the default `.taplo.toml` configuration file"},
+ {Name: "help", Description: "Print this message or the help of the given subcommand(s)"},
+ {Name: "schema", Description: "Print the JSON schema of the `.taplo.toml` configuration file"},
+ {Name: "format", Description: "Format TOML documents"},
+ {Name: "FILES ...", Description: "Paths or glob patterns to TOML documents"},
+ {Name: "f", Description: "Force formatting of files"},
+ {Name: "get", Description: "Extract a value from the given TOML document"},
+ {Name: "lint", Description: "Lint a TOML documents"},
+ {Name: "lsp", Description: "Language server operations"},
+ {Name: "stdio", Description: "Run the language server over the standard input and output"},
+ {Name: "tcp", Description: "Run the language server and listen on a TCP address"},
+ },
+ Options: []core.Option{
+ {Name: "--colors", Description: "Set color values for the output"},
+ {Name: "--verbose", Description: "Enable verbose logging format"},
+ {Name: "--log-spans", Description: "Enable logging spans"},
+ {Name: "--help", Description: "Print help information for config"},
+ {Name: "--config", Description: "Path to the Taplo configuration file"},
+ {Name: "--cache-path", Description: "Set a cache path"},
+ {Name: "--check", Description: "Report any files that are not correctly formatted"},
+ {Name: "--diff", Description: "Print the differences in patch formatting to `stdout`"},
+ {Name: "--no-auto-config", Description: "Do not search for a configuration file"},
+ {Name: "--option", Description: "A formatter option given as a 'key=value', can be set multiple times"},
+ {Name: "--stdin-filepath", Description: "A path to the file that the taplo will treat like stdin"},
+ {Name: "--file-path", Description: "Path to the TOML document"},
+ {Name: "-o", Description: "The format specifying how the output is printed"},
+ {Name: "--strip-newline", Description: "Strip the trailing newline from the output"},
+ {Name: "--default-schema-catalogs", Description: "Use the default online catalogs for schemas"},
+ {Name: "--no-schema", Description: "Disable all schema validation"},
+ {Name: "--schema", Description: "URL to the schema to be used for validation"},
+ {Name: "--schema-catalog", Description: "URL to the schema catalog to be used for validation"},
+ {Name: "--version", Description: "Print version information for taplo"},
+ },
+ })
+}
diff --git a/commands/rust/tokei.go b/commands/rust/tokei.go
new file mode 100644
index 0000000..72eb985
--- /dev/null
+++ b/commands/rust/tokei.go
@@ -0,0 +1,27 @@
+package rust
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "tokei",
+ Description: "Count your code, quickly",
+ Options: []core.Option{
+ {Name: "-f", Description: "Will print out statistics on individual files"},
+ {Name: "-h", Description: "Prints help information"},
+ {Name: "--hidden", Description: "Count hidden files"},
+ {Name: "-l", Description: "Prints out supported languages and their extensions"},
+ {Name: "--no-ignore", Description: "Don't respect ignore files (.gitignore, .ignore, etc.)"},
+ {Name: "--no-ignore-dot", Description: "Don't respect ignore files (.gitignore, .ignore, etc.) in parent directories"},
+ {Name: "--no-ignore-vcs", Description: "Prints version information"},
+ {Name: "-v", Description: "Set log output level:"},
+ {Name: "-c", Description: "Sets a strict column width of the output, only available for terminal output"},
+ {Name: "-e", Description: "Ignore all files & directories matching the pattern"},
+ {Name: "-i", Description: "Outputs Tokei in a specific format"},
+ {Name: "-s", Description: "Sort languages based on column"},
+ {Name: "-t", Description: "Filters output by language type, separated by a comma. i.e. -t=Rust,Markdown"},
+ },
+ })
+}
diff --git a/commands/rust/trunk.go b/commands/rust/trunk.go
new file mode 100644
index 0000000..a8c21be
--- /dev/null
+++ b/commands/rust/trunk.go
@@ -0,0 +1,55 @@
+package rust
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "trunk",
+ Description: "Run on all files instead of only changed files",
+ Subcommands: []core.Subcommand{
+ {Name: "init", Description: "Setup trunk in this repo"},
+ {Name: "check", Description: "Universal code checker"},
+ {Name: "upgrade", Description: "Upgrade all linters to latest versions"},
+ {Name: "linters", Description: "Linter(s) to upgrade (upgrades all if none specified)"},
+ {Name: "download", Description: "Download all files needed for trunk to work offline"},
+ {Name: "tools", Description: "Tool(s) to download (if omitted, downloads all configured tools)"},
+ {Name: "enable", Description: "Enable linters"},
+ {Name: "disable", Description: "Disable linters"},
+ {Name: "fmt", Description: "Universal code formatter"},
+ {Name: "git-hooks", Description: "Git hooks"},
+ {Name: "install", Description: "Install trunk git hooks"},
+ {Name: "cache", Description: "Cache management"},
+ {Name: "clean", Description: "Clean the cache"},
+ {Name: "print-config", Description: "Print the resolved trunk config"},
+ {Name: "daemon", Description: "Daemon management"},
+ {Name: "launch", Description: "Start the trunk daemon if its not already running"},
+ {Name: "shutdown", Description: "Shutdown the trunk daemon if it is running"},
+ {Name: "status", Description: "Report daemon status"},
+ },
+ Options: []core.Option{
+ {Name: "-a", Description: "Run on all files instead of only changed files"},
+ {Name: "-n", Description: "Don't automatically apply fixes"},
+ {Name: "--include-existing-autofixes", Description: "Show autofixes for existing issues"},
+ {Name: "--force", Description: "Run on all files, even if ignored"},
+ {Name: "--diff", Description: "Diff printing mode"},
+ {Name: "--filter", Description: "Shorthand for an inverse --filter"},
+ {Name: "-j", Description: "Number of concurrent jobs (does not affect background linting)"},
+ {Name: "--sample", Description: "Run each linter on N files (implies --no-fix and --all if no paths are given)"},
+ {Name: "--upstream", Description: "Upstream branch used to compute changed files (autodetected by default)"},
+ {Name: "--lock", Description: "Add sha256s to trunk.yaml for additional verification"},
+ {Name: "--check-sample", Description: "Run `trunk check sample` without prompting"},
+ {Name: "--nocheck-sample", Description: "Do not run `trunk check sample` post-init"},
+ {Name: "-y", Description: "Automatically apply all fixes without prompting"},
+ {Name: "--all", Description: "Delete all files (including results cache)"},
+ {Name: "-h", Description: "Usage information"},
+ {Name: "--version", Description: "The version"},
+ {Name: "-m", Description: "Enable the trunk daemon to monitor file changes in your repo"},
+ {Name: "--ci", Description: "Run in continuous integration mode"},
+ {Name: "-o", Description: "Output format"},
+ {Name: "--no-progress", Description: "Don't show progress updates"},
+ {Name: "--ci-progress", Description: "Output details about what's happening under the hood"},
+ },
+ })
+}
diff --git a/commands/rust/wasm_bindgen.go b/commands/rust/wasm_bindgen.go
new file mode 100644
index 0000000..c5ea30e
--- /dev/null
+++ b/commands/rust/wasm_bindgen.go
@@ -0,0 +1,36 @@
+package rust
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "wasm-bindgen",
+ Description: "Generate bindings between WebAssembly and JavaScript",
+ Options: []core.Option{
+ {Name: "--help", Description: "Show help for wasm-bindgen"},
+ {Name: "--version", Description: "Show version for wasm-bindgen"},
+ {Name: "--out-dir", Description: "Output directory"},
+ {Name: "--out-name", Description: "Set a custom output filename (Without extension. Defaults to crate name)"},
+ {Name: "--target", Description: "What type of output to generate"},
+ {Name: "--no-modules-global", Description: "Name of global to assign generated bindings to"},
+ {Name: "--browser", Description: "Hint that JS should only be compatible with a browser"},
+ {Name: "--typescript", Description: "Output a TypeScript definition file (on by default)"},
+ {Name: "--no-typescript", Description: "Don't emit a *.d.ts file"},
+ {Name: "--omit-imports", Description: "Don't emit imports in generated JavaScript"},
+ {Name: "--debug", Description: "Include otherwise-extraneous debug checks in output"},
+ {Name: "--no-demangle", Description: "Don't demangle Rust symbol names"},
+ {Name: "--keep-debug", Description: "Keep debug sections in wasm files"},
+ {Name: "--remove-name-section", Description: "Remove the debugging `name` section of the file"},
+ {Name: "--remove-producers-section", Description: "Remove the telemetry `producers` section"},
+ {Name: "--omit-default-module-path", Description: "Don't add WebAssembly fallback imports in generated JavaScript"},
+ {Name: "--encode-into", Description: "Whether or not to use TextEncoder#encodeInto()"},
+ {Name: "--nodejs", Description: "Deprecated, use `--target nodejs`"},
+ {Name: "--web", Description: "Deprecated, use `--target web`"},
+ {Name: "--no-modules", Description: "Deprecated, use `--target no-modules`"},
+ {Name: "--weak-refs", Description: "Enable usage of the JS weak references proposal"},
+ {Name: "--reference-types", Description: "Enable usage of WebAssembly reference types"},
+ },
+ })
+}
diff --git a/commands/rust/wasm_pack.go b/commands/rust/wasm_pack.go
new file mode 100644
index 0000000..a90c09e
--- /dev/null
+++ b/commands/rust/wasm_pack.go
@@ -0,0 +1,23 @@
+package rust
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "wasm-pack",
+ Description: "Build an npm package",
+ Subcommands: []core.Subcommand{
+ {Name: "help", Description: "Prints this message or the help of the given subcommand(s)"},
+ {Name: "test", Description: "Run tests for WebAssembly module"},
+ },
+ Options: []core.Option{
+ {Name: "--help", Description: "Show help for wasm-pack or for the given subcommand(s)"},
+ {Name: "--quiet", Description: "Suppress output from stdout"},
+ {Name: "--version", Description: "Show version for wasm-pack"},
+ {Name: "--verbose", Description: "Log verbosity is based off the number of v used"},
+ {Name: "--log-level", Description: "The maximum level of messages that should be logged by wasm-pack"},
+ },
+ })
+}
diff --git a/commands/rust/zellij.go b/commands/rust/zellij.go
new file mode 100644
index 0000000..4d049fe
--- /dev/null
+++ b/commands/rust/zellij.go
@@ -0,0 +1,54 @@
+package rust
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "zellij",
+ Description: "Change where zellij looks for the configuration file",
+ Options: []core.Option{
+ {Name: "-c", Description: "Change where zellij looks for the configuration file"},
+ {Name: "--config-dir", Description: "Change where zellij looks for the configuration directory"},
+ {Name: "-d", Description: "Specify emitting additional debug information"},
+ {Name: "--data-dir", Description: "Change where zellij looks for plugins"},
+ {Name: "-h", Description: "Print help information"},
+ {Name: "-l", Description: "Maximum panes on screen, caution: opening more panes will close old ones"},
+ {Name: "-n", Description: "Specify name of a new session"},
+ {Name: "-V", Description: "Print version information"},
+ {Name: "-b", Description: "Create a detached session in the background if one does not exist"},
+ {Name: "-f", Description: "If resurrecting a dead session, immediately run all its commands on startup"},
+ {Name: "--index", Description: "Number of the session index in the active sessions ordered creation date"},
+ {Name: "-y", Description: "Automatic yes to prompts"},
+ {Name: "--cwd", Description: "Change the working directory of the editor"},
+ {Name: "--height", Description: "Open the new pane in place of the current pane, temporarily suspending it"},
+ {Name: "--width", Description: "The width if the pane is floating as a bare integer (eg. 1) or percent (eg. 10%)"},
+ {Name: "-x", Description: "Print this message or the help of the given subcommand(s)"},
+ {Name: "-r", Description: "List the sessions in reverse order"},
+ {Name: "-s", Description: "Print just the session name"},
+ {Name: "--attach-to-session", Description: "Whether to attach to a session specified in 'session-name' if it exists"},
+ {Name: "--auto-layout", Description: "Whether to lay out panes in a predefined set of layouts whenever possible"},
+ {Name: "--copy-clipboard", Description: "OSC52 destination clipboard"},
+ {Name: "--copy-command", Description: "Switch to using a user supplied command for clipboard instead of OSC52"},
+ {Name: "--copy-on-select", Description: "Automatically copy when selecting text (true or false)"},
+ {Name: "--default-cwd", Description: "Set the default cwd"},
+ {Name: "--default-layout", Description: "Set the default layout"},
+ {Name: "--default-mode", Description: "Set the default mode"},
+ {Name: "--default-shell", Description: "Set the default shell"},
+ {Name: "--disable-mouse-mode", Description: "Disable handling of mouse events"},
+ {Name: "--disable-session-metadata", Description: "If true, will disable writing session metadata to disk"},
+ {Name: "--layout-dir", Description: "Set the layout_dir, defaults to subdirectory of config dir"},
+ {Name: "--mirror-session", Description: "Mirror session when multiple users are connected"},
+ {Name: "--mouse-mode", Description: "Disable display of pane frames"},
+ {Name: "--on-force-close", Description: "Set behaviour on force close (quit or detach)"},
+ {Name: "--pane-frames", Description: "Set display of the pane frames (true or false)"},
+ {Name: "--scroll-buffer-size", Description: "Explicit full path to open the scrollback editor (default is $EDITOR or $VISUAL)"},
+ {Name: "--serialize-pane-viewport", Description: "Whether pane viewports are serialized along with the session, default is false"},
+ {Name: "--session-name", Description: "The name of the session to create when starting Zellij"},
+ {Name: "--session-serialization", Description: "Whether sessions should be serialized to the HD"},
+ {Name: "--simplified-ui", Description: "Allow plugins to use a more simplified layout that is compatible with more fonts"},
+ {Name: "--styled-underlines", Description: "Whether to use ANSI styled underlines"},
+ },
+ })
+}
diff --git a/commands/sys/adb.go b/commands/sys/adb.go
new file mode 100644
index 0000000..9358a4f
--- /dev/null
+++ b/commands/sys/adb.go
@@ -0,0 +1,84 @@
+package sys
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "adb",
+ Description: "Forward-lock the app",
+ Subcommands: []core.Subcommand{
+ {Name: "devices", Description: "List connected devices"},
+ {Name: "help", Description: "Show this help message"},
+ {Name: "get-state", Description: "Print offline | bootloader | device"},
+ {Name: "get-serialno", Description: "Print "},
+ {Name: "get-devpath", Description: "Print "},
+ {Name: "jdwp", Description: "List pids of processes hosting a JDWP transport"},
+ {Name: "root", Description: "Restart adbd with root permissions"},
+ {Name: "unroot", Description: "Restart adbd without root permissions"},
+ {Name: "usb", Description: "Restart adbd listening on USB"},
+ {Name: "sideload", Description: "Sideload the given full OTA package"},
+ {Name: "tcpip", Description: "Restart adbd listening on TCP on PORT"},
+ {Name: "disable-verity", Description: "Disable dm-verity checking on userdebug builds"},
+ {Name: "enable-verity", Description: "Re-enable dm-verity checking on userdebug builds"},
+ {Name: "wait-for-device", Description: "Wait for state=device"},
+ {Name: "wait-for-recovery", Description: "Wait for state=recovery"},
+ {Name: "wait-for-rescue", Description: "Wait for state=rescue"},
+ {Name: "wait-for-sideload", Description: "Wait for state=sideload"},
+ {Name: "wait-for-bootloader", Description: "Wait for state=bootloader"},
+ {Name: "wait-for-disconnect", Description: "Wait for state=disconnect"},
+ {Name: "wait-for-usb-device", Description: "Wait for usb in state=device"},
+ {Name: "wait-for-usb-recovery", Description: "Wait for usb in state=recovery"},
+ {Name: "wait-for-usb-rescue", Description: "Wait for usb in state=rescue"},
+ {Name: "wait-for-usb-sideload", Description: "Wait for usb in state=sideload"},
+ {Name: "wait-for-usb-bootloader", Description: "Wait for usb in state=bootloader"},
+ {Name: "wait-for-usb-disconnect", Description: "Wait for usb in state=disconnect"},
+ {Name: "wait-for-local-device", Description: "Wait for local in state=device"},
+ {Name: "wait-for-local-recovery", Description: "Wait for local in state=recovery"},
+ {Name: "wait-for-local-rescue", Description: "Wait for local in state=rescue"},
+ {Name: "wait-for-local-sideload", Description: "Wait for local in state=sideload"},
+ {Name: "wait-for-local-bootloader", Description: "Wait for local in state=bootloader"},
+ {Name: "wait-for-local-disconnect", Description: "Wait for local in state=disconnect"},
+ {Name: "wait-for-any-device", Description: "Wait for any in state=device"},
+ {Name: "wait-for-any-recovery", Description: "Wait for any in state=recovery"},
+ {Name: "wait-for-any-rescue", Description: "Wait for any in state=rescue"},
+ {Name: "wait-for-any-sideload", Description: "Wait for any in state=sideload"},
+ {Name: "wait-for-any-bootloader", Description: "Wait for any in state=bootloader"},
+ {Name: "wait-for-any-disconnect", Description: "Wait for any in state=disconnect"},
+ {Name: "keygen", Description: "Generate adb public/private key; private key stored in FILE"},
+ {Name: "logcat", Description: "Show device log (logcat --help for more)"},
+ {Name: "version", Description: "Show version num"},
+ {Name: "connect", Description: "Connect to a device via TCP/IP [default port=5555]"},
+ {Name: "disconnect", Description: "Disconnect from given TCP/IP device [default port=5555], or all"},
+ {Name: "uninstall", Description: "Remove this app package from the device"},
+ {Name: "bugreport", Description: "Write bugreport to given PATH [default=bugreport.zip];"},
+ {Name: "pair", Description: "Pair with a device for secure TCP/IP communication"},
+ {Name: "ppp", Description: "Run PPP over USB"},
+ {Name: "emu", Description: "Run emulator console command"},
+ {Name: "install", Description: "Push a single package to the device and install it"},
+ {Name: "install-multiple", Description: "Push multiple APKs to the device for a single package and install them"},
+ {Name: "install-multi-package", Description: "Push one or more packages to the device and install them atomically"},
+ },
+ Options: []core.Option{
+ {Name: "-l", Description: "Forward-lock the app"},
+ {Name: "-r", Description: "Replace existing application"},
+ {Name: "-t", Description: "Allow test packages"},
+ {Name: "-d", Description: "Allow version code downgrade (debuggable packages only)"},
+ {Name: "-s", Description: "Install on SD card instead of internal storage"},
+ {Name: "-g", Description: "Grant all runtime permissions"},
+ {Name: "-R", Description: "Reboot device"},
+ {Name: "-k", Description: "Keep the data and cache directories"},
+ {Name: "-p", Description: "Partial application install (install-multiple only)"},
+ {Name: "-e", Description: "Choose escape character, or `none` default '~'"},
+ {Name: "-n", Description: "Don't read from stdin"},
+ {Name: "-T", Description: "Disable pty allocation"},
+ {Name: "-tt", Description: "-tt: force pty allocation"},
+ {Name: "-x", Description: "Disable remote exit codes and stdout/stderr separation"},
+ {Name: "--list", Description: "List all forward socket connections"},
+ {Name: "--remove", Description: "Remove specific forward socket connection"},
+ {Name: "--remove-all", Description: "Remove all forward socket connections"},
+ {Name: "--no-rebind", Description: "Reverse connection"},
+ },
+ })
+}
diff --git a/commands/sys/ag.go b/commands/sys/ag.go
new file mode 100644
index 0000000..4b8082a
--- /dev/null
+++ b/commands/sys/ag.go
@@ -0,0 +1,54 @@
+package sys
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "ag",
+ Description: "Recursively search for PATTERN in PATH. Like grep or ack, but faster",
+ Options: []core.Option{
+ {Name: "--ackmate", Description: "Set thread affinity (if platform supports it)"},
+ {Name: "--noaffinity", Description: "Don't set thread affinity (if platform supports it)"},
+ {Name: "-a", Description: "Print lines after match"},
+ {Name: "-B", Description: "Print lines before match"},
+ {Name: "--nobreak", Description: "Print a newline between matches in different files. Enabled by default"},
+ {Name: "-c", Description: "Print color codes in results"},
+ {Name: "--nocolor", Description: "Don't print color codes in results"},
+ {Name: "--color-line-number", Description: "Color codes for line numbers. Default is 1;33"},
+ {Name: "--color-match", Description: "Color codes for result match numbers. Default is 30;43"},
+ {Name: "--color-path", Description: "Color codes for path names. Default is 1;32"},
+ {Name: "--column", Description: "Print column numbers in results"},
+ {Name: "-C", Description: "Print lines before and after matches"},
+ {Name: "-D", Description: "Search up to NUM directories deep, -1 for unlimited"},
+ {Name: "--filename", Description: "Print file names"},
+ {Name: "--nofilename", Description: "Don't print file names"},
+ {Name: "-f", Description: "Follow symlinks"},
+ {Name: "--nofollow", Description: "Don't follow symlinks"},
+ {Name: "-F", Description: "Alias for --literal for compatibility with grep"},
+ {Name: "--group", Description: "Print filenames matching PATTERN"},
+ {Name: "-G", Description: "Only search files whose names match PATTERN"},
+ {Name: "-H", Description: "Print filenames above matching contents"},
+ {Name: "--noheading", Description: "Don't print filenames above matching contents"},
+ {Name: "--hidden", Description: "Search hidden files. This option obeys ignored files"},
+ {Name: "--ignore", Description: "The pattern to look for"},
+ {Name: "--ignore-dir", Description: "Alias for --ignore for compatibility with ack"},
+ {Name: "-i", Description: "Match case-insensitively"},
+ {Name: "-l", Description: "Only print the names of files that don't contain matches"},
+ {Name: "--list-file-types", Description: "See FILE TYPES below"},
+ {Name: "-m", Description: "Skip the rest of a file after NUM matches. Default is 0, which never skips"},
+ {Name: "--mmap", Description: "Match regexes across newlines"},
+ {Name: "--nomultiline", Description: "Don't match regexes across newlines"},
+ {Name: "-n", Description: "Don't recurse into directories"},
+ {Name: "--numbers", Description: "Print line numbers"},
+ {Name: "--nonumbers", Description: "Don't print line numbers"},
+ {Name: "-o", Description: "Print only the matching part of the lines"},
+ {Name: "--one-device", Description: "Provide a path to a specific .ignore file"},
+ {Name: "--pager", Description: "The pager"},
+ {Name: "--parallel", Description: "Print matches on very long lines (> 2k characters by default)"},
+ {Name: "--passthrough", Description: "When searching a stream, print all lines even if they don't match"},
+ {Name: "-Q", Description: "Do not parse PATTERN as a regular expression. Try to match it literally"},
+ },
+ })
+}
diff --git a/commands/sys/airflow.go b/commands/sys/airflow.go
new file mode 100644
index 0000000..92f9bd4
--- /dev/null
+++ b/commands/sys/airflow.go
@@ -0,0 +1,106 @@
+package sys
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "airflow",
+ Description: "Subcommand",
+ Subcommands: []core.Subcommand{
+ {Name: "celery", Description: "Celery components"},
+ {Name: "broker_api", Description: "Broker API"},
+ {Name: "flower_conf", Description: "Configuration file for flower"},
+ {Name: "hostname", Description: "Set the hostname on which to run the server"},
+ {Name: "log_file", Description: "Location of the log file"},
+ {Name: "port", Description: "The port on which to run the server"},
+ {Name: "stderr", Description: "Redirect stderr to this file"},
+ {Name: "stdout", Description: "Redirect stdout to this file"},
+ {Name: "url_prefix", Description: "URL prefix for Flower"},
+ {Name: "autoscale", Description: "Minimum and Maximum number of worker to autoscale"},
+ {Name: "concurrency", Description: "The number of worker processes"},
+ {Name: "queues", Description: "Comma delimited list of queues to serve"},
+ {Name: "umask", Description: "Set the umask of celery worker in daemon mode"},
+ {Name: "config", Description: "View configuration"},
+ {Name: "section", Description: "The section name"},
+ {Name: "option", Description: "The option name"},
+ {Name: "color", Description: "Do emit colored output (default: auto)"},
+ {Name: "connections", Description: "Manage connections"},
+ {Name: "conn_description", Description: "Connection description, optional when adding a connection"},
+ {Name: "conn_extra", Description: "Connection `Extra` field, optional when adding a connection"},
+ {Name: "conn_host", Description: "Connection host, optional when adding a connection"},
+ {Name: "conn_json", Description: "Connection JSON, required to add a connection using JSON representation"},
+ {Name: "conn_login", Description: "Connection login, optional when adding a connection"},
+ {Name: "conn_password", Description: "Connection password, optional when adding a connection"},
+ {Name: "conn_port", Description: "Connection port, optional when adding a connection"},
+ {Name: "conn_schema", Description: "Connection schema, optional when adding a connection"},
+ {Name: "conn_type", Description: "Connection type, required to add a connection without conn_uri"},
+ {Name: "conn_uri", Description: "Connection URI, required to add a connection without conn_type"},
+ {Name: "conn_id", Description: "Connection id, required to get/add/delete a connection"},
+ {Name: "file_format", Description: "File format for the export"},
+ {Name: "format", Description: "Deprecated -- use `--file-format` instead. File format to use for the export"},
+ {Name: "file", Description: "Output file path for exporting the connections"},
+ {Name: "(table, json, yaml, plain)", Description: "Output format. Allowed values: json, yaml, plain, table (default: table)"},
+ {Name: "num_runs", Description: "Set the number of runs to execute before exiting"},
+ {Name: "dags", Description: "Manage DAGs"},
+ {Name: "conf", Description: "JSON string that gets pickled into the DagRun's conf attribute"},
+ {Name: "end_date", Description: "Override end_date YYYY-MM-DD"},
+ {Name: "pool", Description: "Resource pool to use"},
+ {Name: "start_date", Description: "Override start_date YYYY-MM-DD"},
+ {Name: "task_regex", Description: "The regex to filter specific task_ids to backfill (optional)"},
+ {Name: "dag_id", Description: "The id of the dag"},
+ {Name: "limit", Description: "Return a limited number of records"},
+ {Name: "state", Description: "Only list the dag runs corresponding to the state"},
+ {Name: "num_executions", Description: "The number of next execution datetimes to show"},
+ {Name: "save", Description: "Saves the result to the indicated file"},
+ {Name: "execution_date", Description: "The execution date of the DAG"},
+ {Name: "exec_date", Description: "The execution date of the DAG"},
+ {Name: "run_id", Description: "Helps to identify this run"},
+ {Name: "db", Description: "Database operations"},
+ {Name: "migration_wait_timeout", Description: "Timeout to wait for db to migrate"},
+ },
+ Options: []core.Option{
+ {Name: "-h", Description: "Show this help message and exit"},
+ {Name: "-A", Description: "Broker API"},
+ {Name: "-D", Description: "Daemonize instead of running in the foreground"},
+ {Name: "-c", Description: "Configuration file for flower"},
+ {Name: "-H", Description: "Set the hostname on which to run the server"},
+ {Name: "-l", Description: "Location of the log file"},
+ {Name: "--pid", Description: "PID file location"},
+ {Name: "-p", Description: "The port on which to run the server"},
+ {Name: "--stderr", Description: "Redirect stderr to this file"},
+ {Name: "--stdout", Description: "Redirect stdout to this file"},
+ {Name: "-u", Description: "URL prefix for Flower"},
+ {Name: "-a", Description: "Minimum and Maximum number of worker to autoscale"},
+ {Name: "-q", Description: "Comma delimited list of queues to serve"},
+ {Name: "-s", Description: "Don't start the serve logs process along with the workers"},
+ {Name: "--without-gossip", Description: "Don't subscribe to other workers events"},
+ {Name: "--without-mingle", Description: "Don't synchronize with other workers at start-up"},
+ {Name: "-v", Description: "Make logging output more verbose"},
+ {Name: "--color", Description: "Do emit colored output (default: auto)"},
+ {Name: "--conn-description", Description: "Connection description, optional when adding a connection"},
+ {Name: "--conn-extra", Description: "Connection `Extra` field, optional when adding a connection"},
+ {Name: "--conn-host", Description: "Connection host, optional when adding a connection"},
+ {Name: "--conn-json", Description: "Connection JSON, required to add a connection using JSON representation"},
+ {Name: "--conn-login", Description: "Connection login, optional when adding a connection"},
+ {Name: "--conn-password", Description: "Connection password, optional when adding a connection"},
+ {Name: "--conn-port", Description: "Connection port, optional when adding a connection"},
+ {Name: "--conn-schema", Description: "Connection schema, optional when adding a connection"},
+ {Name: "--conn-type", Description: "Connection type, required to add a connection without conn_uri"},
+ {Name: "--conn-uri", Description: "Connection URI, required to add a connection without conn_type"},
+ {Name: "--file-format", Description: "File format for the export"},
+ {Name: "--format", Description: "Deprecated -- use `--file-format` instead. File format to use for the export"},
+ {Name: "--serialization-format", Description: "Output file path for exporting the connections"},
+ {Name: "-o", Description: "Output format. Allowed values: json, yaml, plain, table (default: table)"},
+ {Name: "--conn-id", Description: "If passed, only items with the specified connection ID will be displayed"},
+ {Name: "-n", Description: "Set the number of runs to execute before exiting"},
+ {Name: "-S", Description: "Start a standalone Dag Processor instance"},
+ {Name: "--continue-on-failures", Description: "If set, the backfill will keep going even if some of the tasks failed"},
+ {Name: "--delay-on-limit", Description: "Override end_date YYYY-MM-DD"},
+ {Name: "-i", Description: "Run the task using the LocalExecutor"},
+ {Name: "-m", Description: "Mark jobs as succeeded without running them"},
+ {Name: "--pool", Description: "Resource pool to use"},
+ },
+ })
+}
diff --git a/commands/sys/aliases.go b/commands/sys/aliases.go
new file mode 100644
index 0000000..f047672
--- /dev/null
+++ b/commands/sys/aliases.go
@@ -0,0 +1,43 @@
+package sys
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "aliases",
+ Description: "Prints help information",
+ Subcommands: []core.Subcommand{
+ {Name: "add", Description: "Add an alias via the cli"},
+ {Name: "name", Description: "The name of the alias"},
+ {Name: "command", Description: "The command you want to run"},
+ {Name: "clone", Description: "Clone external aliases"},
+ {Name: "username", Description: "The username of the aliases you want to clone"},
+ {Name: "repo_url", Description: "The git repo url of the aliases (defaults to github//dot-aliases)"},
+ {Name: "directories", Description: "List all directories initialized with aliases"},
+ {Name: "exec", Description: "Execute an alias for a given directory"},
+ {Name: "directory", Description: "Directory where the alias is defined"},
+ {Name: "help", Description: "Prints help information"},
+ {Name: "init", Description: "Initialize a directory for aliases"},
+ {Name: "list", Description: "List the aliases available"},
+ {Name: "pull", Description: "Pull a cloned user's aliases"},
+ {Name: "rehash", Description: "Update the aliases"},
+ {Name: "remove", Description: "Remove an alias via the cli"},
+ {Name: "users", Description: "List the users"},
+ {Name: "disable", Description: "Disable a user's aliases"},
+ {Name: "enable", Description: "Enable a user's aliases"},
+ {Name: "move", Description: "Move a user up or down the prioritization list"},
+ {Name: "use", Description: "Assign a user to the top of the priority list"},
+ },
+ Options: []core.Option{
+ {Name: "--help", Description: "Prints help information"},
+ {Name: "--version", Description: "Prints version information"},
+ {Name: "-E", Description: "Whether to enable the user if they are not currently enabled"},
+ {Name: "-g", Description: "Returns the global initialization for the app"},
+ {Name: "-u", Description: "Initialize aliases for a specific user"},
+ {Name: "-l", Description: "List only local aliases"},
+ {Name: "-d", Description: "List aliases for a specific directory"},
+ },
+ })
+}
diff --git a/commands/sys/asciinema.go b/commands/sys/asciinema.go
new file mode 100644
index 0000000..3cdbe2c
--- /dev/null
+++ b/commands/sys/asciinema.go
@@ -0,0 +1,38 @@
+package sys
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "asciinema",
+ Description: "Terminal session recorder",
+ Subcommands: []core.Subcommand{
+ {Name: "rec", Description: "Start a recording"},
+ {Name: "play", Description: "Replay recorded asciicast in a terminal"},
+ {Name: "seconds", Description: "Can be fractional"},
+ {Name: "factor", Description: "Can be fractional"},
+ {Name: "cat", Description: "Print full output of recorded asciicast to a terminal"},
+ {Name: "upload", Description: "Upload recorded asciicast to asciinema.org site"},
+ {Name: "auth", Description: "Link and manage your install ID with your asciinema.org user account"},
+ },
+ Options: []core.Option{
+ {Name: "--version", Description: "Output version information and exit"},
+ {Name: "-h", Description: "Output help message and exit"},
+ {Name: "--stdin", Description: "Enable stdin (keyboard) recording"},
+ {Name: "--append", Description: "Append to existing recording"},
+ {Name: "--raw", Description: "Save raw output, without timing or other metadata"},
+ {Name: "--overwrite", Description: "Overwrite the recording if it already exists"},
+ {Name: "-c", Description: "Specify command to record, defaults to $SHELL"},
+ {Name: "-e", Description: "List of environment variables to capture"},
+ {Name: "-t", Description: "Specify the title of the asciicast"},
+ {Name: "-i", Description: "Limit recorded terminal inactivity to max amount of seconds"},
+ {Name: "--cols", Description: "Override terminal columns for recorded process"},
+ {Name: "--rows", Description: "Override terminal rows for recorded process"},
+ {Name: "-y", Description: "Answer โyesโ to all prompts (e.g. upload confirmation)"},
+ {Name: "-q", Description: "Be quiet, suppress all notices/warnings (implies -y)"},
+ {Name: "-s", Description: "Playback speed"},
+ },
+ })
+}
diff --git a/commands/sys/asr.go b/commands/sys/asr.go
new file mode 100644
index 0000000..fc5e2e6
--- /dev/null
+++ b/commands/sys/asr.go
@@ -0,0 +1,43 @@
+package sys
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "asr",
+ Description: "Can be a disk image, /dev entry, or volume mountpoint",
+ Subcommands: []core.Subcommand{
+ {Name: "help", Description: "Displays asr usage information"},
+ {Name: "version", Description: "Displays asr version"},
+ {Name: "restore", Description: "Restores a disk image or volume to another volume"},
+ {Name: "server", Description: "Multicasts source over the network"},
+ {Name: "source", Description: "UDIF disk image local/remote path"},
+ {Name: "interface", Description: "The network interface to be used for multicasting"},
+ {Name: "configuration", Description: "Configuration file in standard property list format"},
+ },
+ Options: []core.Option{
+ {Name: "--source", Description: "Can be a disk image, /dev entry, or volume mountpoint"},
+ {Name: "--target", Description: "Can be a /dev entry, or volume mountpoint"},
+ {Name: "--file", Description: "When performing a multicast restore, --file can be specified instead of --target"},
+ {Name: "--erase", Description: "Specifies the destination filesystem format"},
+ {Name: "--noprompt", Description: "Suppresses the prompt which usually occurs before target"},
+ {Name: "--timeout", Description: "Number of seconds that a multicast client should wait"},
+ {Name: "--puppetstrings", Description: "Provide progress output that is easy for another program to parse"},
+ {Name: "--noverify", Description: "Allows restores to proceed even if the source's catalog file is fragmented"},
+ {Name: "--SHA256", Description: "Forces the restore to use the SHA-256 hash in the image during verification"},
+ {Name: "--sourcevolumename", Description: "Forces asr to use replication for restoring APFS volumes"},
+ {Name: "--useInverter", Description: "Forces asr to use the inverter for restoring APFS volumes"},
+ {Name: "--toSnapshot", Description: "One of the options that control how asr uses memory"},
+ {Name: "--buffersize", Description: "One of the options that control how asr uses memory"},
+ {Name: "--csumbuffers", Description: "One of the options that control how asr uses memory"},
+ {Name: "--csumbuffersize", Description: "One of the options that control how asr uses memory"},
+ {Name: "--verbose", Description: "Enables verbose progress and error messages"},
+ {Name: "--debug", Description: "Enables other progress and error messages"},
+ {Name: "--interface", Description: "The network interface to be used for multicasting"},
+ {Name: "--config", Description: "Server requires a configuration file to be passed"},
+ {Name: "--plist", Description: "Writes its output as an XML-formatted plist"},
+ },
+ })
+}
diff --git a/commands/sys/atuin.go b/commands/sys/atuin.go
new file mode 100644
index 0000000..13a4b01
--- /dev/null
+++ b/commands/sys/atuin.go
@@ -0,0 +1,64 @@
+package sys
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "atuin",
+ Description: "Magical shell history",
+ Subcommands: []core.Subcommand{
+ {Name: "history", Description: "Manipulate shell history"},
+ {Name: "start", Description: "Begins a new command in the history"},
+ {Name: "end", Description: "Finishes a new command in the history (adds time, exit code)"},
+ {Name: "list", Description: "List all items in history"},
+ {Name: "last", Description: "Get the last command ran"},
+ {Name: "import", Description: "Import shell history from file"},
+ {Name: "auto", Description: "Import history for the current shell"},
+ {Name: "stats", Description: "Calculate statistics for your history"},
+ {Name: "search", Description: "Interactive history search"},
+ {Name: "sync", Description: "Sync with the configured server"},
+ {Name: "login", Description: "Login to the configured server"},
+ {Name: "logout", Description: "Log out"},
+ {Name: "register", Description: "Register with the configured server"},
+ {Name: "key", Description: "Print the encryption key for transfer to another machine"},
+ {Name: "server", Description: "Start an atuin server"},
+ {Name: "init", Description: "Output shell setup"},
+ {Name: "uuid", Description: "Generate a UUID"},
+ {Name: "gen-completions", Description: "Generate shell completions"},
+ },
+ Options: []core.Option{
+ {Name: "--exit", Description: "List all items in history"},
+ {Name: "--cwd", Description: "Show only the text of the command"},
+ {Name: "--format", Description: "Get the last command ran"},
+ {Name: "--human", Description: "Show only the text of the command"},
+ {Name: "--count", Description: "How many top commands to list"},
+ {Name: "--exclude-cwd", Description: "Exclude directory from results"},
+ {Name: "--exclude-exit", Description: "Exclude results with this exit code"},
+ {Name: "--before", Description: "Only include results added before this date"},
+ {Name: "--after", Description: "Only include results after this date"},
+ {Name: "--limit", Description: "How many entries to return at most"},
+ {Name: "--offset", Description: "Offset from the start of the results"},
+ {Name: "--interactive", Description: "Open interactive search UI"},
+ {Name: "--filter-mode", Description: "Allow overriding filter mode over config"},
+ {Name: "--search-mode", Description: "Allow overriding search mode over config"},
+ {Name: "--cmd-only", Description: "Show only the text of the command"},
+ {Name: "--delete", Description: "Delete anything matching this query. Will not print out the match"},
+ {Name: "--delete-it-all", Description: "Delete EVERYTHING!"},
+ {Name: "--reverse", Description: "Reverse the order of results, oldest first"},
+ {Name: "--force", Description: "Force re-download everything"},
+ {Name: "--username", Description: "The encryption key for your account"},
+ {Name: "--base64", Description: "Switch to base64 output of the key"},
+ {Name: "--key", Description: "Start an atuin server"},
+ {Name: "--host", Description: "The host address to bind"},
+ {Name: "--port", Description: "The port to bind"},
+ {Name: "--disable-ctrl-r", Description: "Disable the binding of CTRL-R to atuin"},
+ {Name: "--disable-up-arrow", Description: "Disable the binding of the Up Arrow key to atuin"},
+ {Name: "--shell", Description: "Set the shell for generating completions"},
+ {Name: "--out-dir", Description: "Set the output directory"},
+ {Name: "--help", Description: "Print help"},
+ {Name: "--version", Description: "Print version"},
+ },
+ })
+}
diff --git a/commands/sys/basename.go b/commands/sys/basename.go
new file mode 100644
index 0000000..364dab8
--- /dev/null
+++ b/commands/sys/basename.go
@@ -0,0 +1,16 @@
+package sys
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "basename",
+ Description: "Return filename portion of pathname",
+ Options: []core.Option{
+ {Name: "-a", Description: "Treat every argument as a string"},
+ {Name: "-s", Description: "Suffix to remove from string"},
+ },
+ })
+}
diff --git a/commands/sys/bc.go b/commands/sys/bc.go
new file mode 100644
index 0000000..94193ce
--- /dev/null
+++ b/commands/sys/bc.go
@@ -0,0 +1,21 @@
+package sys
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "bc",
+ Description: "An arbitrary precision calculator language",
+ Options: []core.Option{
+ {Name: "--help", Description: "Print the usage and exit"},
+ {Name: "--interactive", Description: "Force interactive mode"},
+ {Name: "--mathlib", Description: "Define the standard math library"},
+ {Name: "--warn", Description: "Give warnings for extensions to POSIX bc"},
+ {Name: "--standard", Description: "Process exactly the POSIX bc language"},
+ {Name: "--quiet", Description: "Do not print the normal GNU bc welcome"},
+ {Name: "--version", Description: "Print the version number and copyright and quit"},
+ },
+ })
+}
diff --git a/commands/sys/btop.go b/commands/sys/btop.go
new file mode 100644
index 0000000..78d50d3
--- /dev/null
+++ b/commands/sys/btop.go
@@ -0,0 +1,21 @@
+package sys
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "btop",
+ Description: "Beautifuler htop (interactive process viewer)",
+ Options: []core.Option{
+ {Name: "--help", Description: "Shows help for btop"},
+ {Name: "--low-color", Description: "Disables truecolor, converts 24-bit colors to 256-color"},
+ {Name: "--tty_on", Description: "Forces ON tty mode, max 16 colors and tty friendly graph symbol"},
+ {Name: "--tty_off", Description: "Forces OFF tty mode"},
+ {Name: "--preset", Description: "Start with preset"},
+ {Name: "--utf-force", Description: "Force start even if no UTF-8 locale was detected"},
+ {Name: "--debug", Description: "Shows the version of btop"},
+ },
+ })
+}
diff --git a/commands/sys/bundle.go b/commands/sys/bundle.go
new file mode 100644
index 0000000..85b8136
--- /dev/null
+++ b/commands/sys/bundle.go
@@ -0,0 +1,72 @@
+package sys
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "bundle",
+ Description: "Gem",
+ Subcommands: []core.Subcommand{
+ {Name: "install", Description: "Install the gems specified by the Gemfile or Gemfile.lock"},
+ {Name: "update", Description: "Update dependencies to their latest versions"},
+ {Name: "exec", Description: "Execute a command in the context of the bundle"},
+ {Name: "add", Description: "Add gem to the Gemfile and run bundle install"},
+ {Name: "binstubs", Description: "Install the binstubs of the listed gems"},
+ {Name: "show", Description: "Show the source location of a particular gem in the bundle"},
+ {Name: "outdated", Description: "Show all of the outdated gems in the current bundle"},
+ {Name: "console", Description: "Start an IRB session in the current bundle"},
+ {Name: "open", Description: "Open an installed gem in the editor"},
+ {Name: "lock", Description: "Generate a lockfile for your dependencies"},
+ {Name: "viz", Description: "Generate a visual representation of your dependencies"},
+ {Name: "init", Description: "Generate a simple Gemfile, placed in the current directory"},
+ {Name: "gem", Description: "Create a simple gem, suitable for development with Bundler"},
+ {Name: "platform", Description: "Display platform compatibility information"},
+ {Name: "clean", Description: "Clean up unused gems in your Bundler directory"},
+ {Name: "doctor", Description: "Display warnings about common problems"},
+ },
+ Options: []core.Option{
+ {Name: "--binstubs", Description: "Create binstubs in dir"},
+ {Name: "--clean", Description: "Remove unused gems after install"},
+ {Name: "--deployment", Description: "For Production and CI use"},
+ {Name: "--force", Description: "Redownload all gems"},
+ {Name: "--frozen", Description: "Do not allow lock file to update"},
+ {Name: "--full-index", Description: "Cache the full index locally"},
+ {Name: "--gemfile", Description: "The gemfile to use"},
+ {Name: "--jobs", Description: "Maximum number of parallel installs"},
+ {Name: "--local", Description: "Use only gems already downloaded or cached"},
+ {Name: "--no-cache", Description: "Do not use vendor/cache"},
+ {Name: "--no-prune", Description: "Do not remove stale gems"},
+ {Name: "--path", Description: "Path the install gems too"},
+ {Name: "--quiet", Description: "Do not print to stdout"},
+ {Name: "--retry", Description: "Retry failed network requests N times"},
+ {Name: "--shebang", Description: "Uses the specified ruby executable for binstubs"},
+ {Name: "--standalone", Description: "Makes a bundle that can work without depending on Rubygems or Bundler at runtime"},
+ {Name: "--system", Description: "Use system Rubygems location"},
+ {Name: "--trust-policy", Description: "Apply the Rubygems security policy"},
+ {Name: "--with", Description: "Groups to install"},
+ {Name: "--without", Description: "Groups to NOT install"},
+ {Name: "--all", Description: "Update all gems specified in Gemfile"},
+ {Name: "--group", Description: "Only update the gems in the specified group"},
+ {Name: "--source", Description: "The name of a :git or :path source used in the Gemfile"},
+ {Name: "--ruby", Description: "Update the locked version of Ruby to the current version of Ruby"},
+ {Name: "--bundler", Description: "Update the locked version of bundler to the invoked bundler version"},
+ {Name: "--patch", Description: "Prefer updating only to next patch version"},
+ {Name: "--minor", Description: "Prefer updating only to next minor version"},
+ {Name: "--major", Description: "Prefer updating to next major version (default)"},
+ {Name: "--strict", Description: "Do not allow any gem to be updated past latest --patch | --minor | --major"},
+ {Name: "--conservative", Description: "Do not allow shared dependencies to be updated"},
+ {Name: "--keep-file-descriptors", Description: "Pass all file descriptors to the new process"},
+ {Name: "--version", Description: "Specify version requirements"},
+ {Name: "--skip-install", Description: "Adds the gem to the Gemfile but does not install it"},
+ {Name: "--optimistic", Description: "Adds optimistic declaration of version"},
+ {Name: "--dry-run", Description: "Locks the Gemfile before running the command"},
+ {Name: "--paths", Description: "List the paths of all gems that are required by your Gemfile"},
+ {Name: "--pre", Description: "Check for newer pre-release gems"},
+ {Name: "--parseable", Description: "Use minimal formatting for more parseable output"},
+ {Name: "--groups", Description: "List gems organized by groups"},
+ {Name: "--update-strict", Description: "Prefer updating only to next minor version"},
+ },
+ })
+}
diff --git a/commands/sys/cal.go b/commands/sys/cal.go
new file mode 100644
index 0000000..bff22e2
--- /dev/null
+++ b/commands/sys/cal.go
@@ -0,0 +1,17 @@
+package sys
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "cal",
+ Description: "Displays a calendar and the date of Easter",
+ Options: []core.Option{
+ {Name: "-h", Description: "Turns off highlighting of today"},
+ {Name: "-j", Description: "Display Julian days (days one-based, numbered from January 1)"},
+ {Name: "-m", Description: "Display a calendar for the specified year"},
+ },
+ })
+}
diff --git a/commands/sys/cci.go b/commands/sys/cci.go
new file mode 100644
index 0000000..b89fc5e
--- /dev/null
+++ b/commands/sys/cci.go
@@ -0,0 +1,91 @@
+package sys
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "cci",
+ Description: "CumulusCI command line interface",
+ Subcommands: []core.Subcommand{
+ {Name: "flow", Description: "Commands for finding and running flows for a project"},
+ {Name: "doc", Description: "Exports RST format documentation for all flows"},
+ {Name: "info", Description: "Displays information for a flow"},
+ {Name: "FLOW_NAME", Description: "Name of the flow"},
+ {Name: "list", Description: "List available flows for the current context"},
+ {Name: "run", Description: "Runs a flow"},
+ {Name: "TEXT", Description: "Name of the target org"},
+ {Name: "org", Description: "Commands for connecting and interacting with Salesforce orgs"},
+ {Name: "browser", Description: "Opens a browser window and logs into the org using the stored OAuth credentials"},
+ {Name: "ORGNAME", Description: "Name of the org"},
+ {Name: "connect", Description: "Connects a new org's credentials using OAuth Web Flow"},
+ {Name: "default", Description: "Sets an org as the default org for tasks and flows"},
+ {Name: "import", Description: "Import an org from Salesforce DX"},
+ {Name: "prune", Description: "Removes all expired scratch orgs from the current project"},
+ {Name: "remove", Description: "Removes an org from the keychain"},
+ {Name: "scratch", Description: "Connects a Salesforce DX Scratch Org to the keychain"},
+ {Name: "plan", Description: "Commands for getting information about MetaDeploy plans"},
+ {Name: "PLAN_NAME", Description: "Name of the plan"},
+ {Name: "robot", Description: "Commands for working with Robot Framework"},
+ {Name: "install_playwright", Description: "Install libraries necessary to use playwright with robot framework"},
+ {Name: "uninstall_playwright", Description: "Uninstalls the robotframework-browser package and node modules"},
+ {Name: "service", Description: "Commands for connecting services to the keychain"},
+ {Name: "connected_app", Description: "Connect a Connected App service to CumulusCI"},
+ {Name: "devhub", Description: "Connect a DevHub service to CumulusCI"},
+ {Name: "github", Description: "Connect a GitHub service to CumulusCI"},
+ {Name: "github_enterprise", Description: "Connect a GitHub Enterprise service to CumulusCI"},
+ {Name: "marketing_cloud", Description: "Connect a Marketing Cloud service to CumulusCI"},
+ {Name: "metaci", Description: "Connect a MetaCI service to CumulusCI"},
+ {Name: "metadeploy", Description: "Connect a MetaDeploy service to CumulusCI"},
+ {Name: "oauth2_client", Description: "Connect an OAuth2 Client service to CumulusCI"},
+ {Name: "rename", Description: "Rename a service"},
+ {Name: "update", Description: "Allow users to update attribute values of a particular service"},
+ {Name: "shell", Description: "Drop into a Python shell"},
+ {Name: "task", Description: "Commands for finding and running tasks for a project"},
+ {Name: "version", Description: "Print the current version of CumulusCI"},
+ {Name: "error", Description: "Get or share information about an error"},
+ {Name: "gist", Description: "Creates a GitHub gist from the latest logfile"},
+ {Name: "project", Description: "Commands for interacting with project repository configurations"},
+ {Name: "init", Description: "Initialize a new project for use with the cumulusci toolbelt"},
+ },
+ Options: []core.Option{
+ {Name: "--project", Description: "Include project-specific flows only"},
+ {Name: "--help", Description: "Help for flow doc"},
+ {Name: "--plain", Description: "Print the table using plain ascii"},
+ {Name: "--json", Description: "Print a json string"},
+ {Name: "--org", Description: "Specify the target org. By default, runs against the current default org"},
+ {Name: "--delete-org", Description: "If set, deletes the scratch org after the flow completes"},
+ {Name: "--debug", Description: "Drops into pdb, the Python debugger, on an exception"},
+ {Name: "-o", Description: "Task specific options"},
+ {Name: "--no-prompt", Description: "Help for flow run"},
+ {Name: "-p", Description: "Navigate to the specified page after logging in"},
+ {Name: "-r", Description: "Display the target URL, but don't open a browser"},
+ {Name: "--sandbox", Description: "If set, connects to a Salesforce sandbox org"},
+ {Name: "--login-url", Description: "If set, login to this hostname"},
+ {Name: "--default", Description: "If set, sets the connected org as the new default org"},
+ {Name: "--global-org", Description: "If set, the connected org is available to all CumulusCI projects"},
+ {Name: "--include-active", Description: "Remove all scratch orgs, regardless of expiry"},
+ {Name: "--devhub", Description: "If provided, overrides the devhub used to create the scratch org"},
+ {Name: "--days", Description: "If set, don't set a password for the org"},
+ {Name: "--python", Description: "Python code to run directly"},
+ {Name: "--messages", Description: "Show only plan messages"},
+ {Name: "-n", Description: "Dry run"},
+ {Name: "--login_url", Description: "Default Salesforce Login URL to be used with this Connected App"},
+ {Name: "--callback_url", Description: "Callback URL configured on the Connected App"},
+ {Name: "--client_id", Description: "Client ID/Consumer Key from the Connected App"},
+ {Name: "--client_secret", Description: "Client Secret/Consumer Secret from the Connected App"},
+ {Name: "--username", Description: "Username or alias of the SFDX org to use as a Dev Hub"},
+ {Name: "--email", Description: "Personal Access Token for GitHub. Leave blank to log in via browser"},
+ {Name: "--token", Description: "Personal Access Token"},
+ {Name: "--oauth2_client", Description: "Set this service as the global default"},
+ {Name: "--app_name", Description: "The Heroku app name"},
+ {Name: "--url", Description: "The main url to the MetaCI site"},
+ {Name: "--auth_uri", Description: "The URI for where users are directed to login"},
+ {Name: "--token_uri", Description: "The URI for where we request an access token"},
+ {Name: "-s", Description: "Help for cci service remove"},
+ {Name: "--script", Description: "Path to a script to run"},
+ {Name: "--resolution-strategy", Description: "The resolution strategy to use. Defaults to production"},
+ },
+ })
+}
diff --git a/commands/sys/cdk8s.go b/commands/sys/cdk8s.go
new file mode 100644
index 0000000..d7ed894
--- /dev/null
+++ b/commands/sys/cdk8s.go
@@ -0,0 +1,34 @@
+package sys
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "cdk8s",
+ Description: "CDK for K8s",
+ Subcommands: []core.Subcommand{
+ {Name: "init", Description: "Create a new, empty CDK8S project"},
+ {Name: "type", Description: "Select language you are using"},
+ {Name: "import", Description: "Import a CRD schema to generate generate resources"},
+ {Name: "spec", Description: "Path to the CRD schema"},
+ {Name: "synth", Description: "Synthesizes Kubernetes manifests for all charts in your app"},
+ },
+ Options: []core.Option{
+ {Name: "--language", Description: "Output programming language"},
+ {Name: "--class-prefix", Description: "A prefix to add to all generated class names"},
+ {Name: "--no-class-prefix", Description: "Does not add a prefix to generated class names"},
+ {Name: "--exclude", Description: "Do not import types that match these regular expressions"},
+ {Name: "--output", Description: "Output directory"},
+ {Name: "--app", Description: "Command to use in order to execute cdk8s app"},
+ {Name: "--stdout", Description: "Write synthesized manifests to STDOUT instead of the output directory"},
+ {Name: "--plugins-dir", Description: "Directory to store cdk8s plugins"},
+ {Name: "--validate", Description: "Apply validation plugins on the resulting manifests"},
+ {Name: "--no-validate", Description: "Disable validation"},
+ {Name: "--version", Description: "The current version"},
+ {Name: "--help", Description: "Show help"},
+ {Name: "--check-upgrade", Description: "Check for cdk8s-cli upgrade"},
+ },
+ })
+}
diff --git a/commands/sys/chezmoi.go b/commands/sys/chezmoi.go
new file mode 100644
index 0000000..4b7de5f
--- /dev/null
+++ b/commands/sys/chezmoi.go
@@ -0,0 +1,99 @@
+package sys
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "chezmoi",
+ Description: "Attribute modifier",
+ Subcommands: []core.Subcommand{
+ {Name: "manage", Description: "Add an existing file, directory, or symlink to the source state"},
+ {Name: "apply", Description: "Update the destination directory to match the target state"},
+ {Name: "archive", Description: "Generate a tar archive of the target state"},
+ {Name: "cat", Description: "Print the target contents of a file, script, or symlink"},
+ {Name: "cd", Description: "Launch a shell in the source directory"},
+ {Name: "chattr", Description: "Change the attributes of a target in the source state"},
+ {Name: "completion", Description: "Generate shell completion code"},
+ {Name: "data", Description: "Print the template data"},
+ {Name: "decrypt", Description: "Decrypt file or standard input"},
+ {Name: "diff", Description: "Print the diff between the target state and the destination state"},
+ {Name: "doctor", Description: "Check your system for potential problems"},
+ {Name: "dump", Description: "Generate a dump of the target state"},
+ {Name: "edit", Description: "Edit the source state of a target"},
+ {Name: "edit-config", Description: "Edit the configuration file"},
+ {Name: "encrypt", Description: "Encrypt file or standard input"},
+ {Name: "execute-template", Description: "Execute the given template(s)"},
+ {Name: "unmanage", Description: "Remove a target from the source state"},
+ {Name: "git", Description: "Run git in the source directory"},
+ {Name: "ignored", Description: "Print ignored targets"},
+ {Name: "import", Description: "Import an archive into the source state"},
+ {Name: "license", Description: "Print license"},
+ {Name: "list", Description: "List the managed entries in the destination directory"},
+ {Name: "merge-all", Description: "Perform a three-way merge for each modified file"},
+ {Name: "purge", Description: "Purge chezmoi's configuration and data"},
+ {Name: "re-add", Description: "Re-add modified files"},
+ {Name: "rm", Description: "Remove a target from the source state and the destination directory"},
+ {Name: "secret", Description: "Interact with a secret manager"},
+ {Name: "keyring", Description: "Interact with keyring"},
+ {Name: "delete", Description: "Delete a value from keyring"},
+ {Name: "get", Description: "Get a value from keyring"},
+ {Name: "set", Description: "Set a value in keyring"},
+ {Name: "source-path", Description: "Print the source path of a target"},
+ {Name: "state", Description: "Manipulate the persistent state"},
+ {Name: "delete-bucket", Description: "Delete a bucket from the persistent state"},
+ {Name: "get-bucket", Description: "Get a bucket from the persistent state"},
+ {Name: "reset", Description: "Reset the persistent state"},
+ {Name: "status", Description: "Show the status of targets"},
+ {Name: "target-path", Description: "Print the target path of a source path"},
+ {Name: "unmanaged", Description: "List the unmanaged files in the destination directory"},
+ {Name: "update", Description: "Pull and apply any changes"},
+ {Name: "upgrade", Description: "Upgrade chezmoi to the latest released version"},
+ {Name: "help", Description: "Help about any command"},
+ {Name: "generate", Description: "Generate a file for use with chezmoi"},
+ },
+ Options: []core.Option{
+ {Name: "--autotemplate", Description: "Generate the template when adding files as templates"},
+ {Name: "--create", Description: "Add files that should exist, irrespective of their contents"},
+ {Name: "--encrypt", Description: "Encrypt files"},
+ {Name: "--exact", Description: "Add directories exactly"},
+ {Name: "--exclude", Description: "Exclude entry types"},
+ {Name: "--follow", Description: "Add symlink targets instead of symlinks"},
+ {Name: "--include", Description: "Include entry types"},
+ {Name: "--prompt", Description: "Prompt before adding each entry"},
+ {Name: "--recursive", Description: "Recurse into subdirectories"},
+ {Name: "--template", Description: "Add files as templates"},
+ {Name: "--template-symlinks", Description: "Add symlinks with target in source or home dirs as templates"},
+ {Name: "--init", Description: "Recreate config file from template"},
+ {Name: "--format", Description: "Set archive format"},
+ {Name: "--gzip", Description: "Compress output with gzip"},
+ {Name: "--pager", Description: "Set pager"},
+ {Name: "--reverse", Description: "Reverse the direction of the diff"},
+ {Name: "--use-builtin-diff", Description: "Use the builtin diff"},
+ {Name: "--apply", Description: "Apply after editing"},
+ {Name: "--hardlink", Description: "Invoke editor with a hardlink to the source file"},
+ {Name: "--promptBool", Description: "Simulate promptBool"},
+ {Name: "--promptInt", Description: "Simulate promptInt"},
+ {Name: "--promptString", Description: "Simulate promptString"},
+ {Name: "--stdinisatty", Description: "Simulate stdinIsATTY"},
+ {Name: "--remove-destination", Description: "Remove destination before import"},
+ {Name: "--strip-components", Description: "Strip leading path components"},
+ {Name: "--branch", Description: "Set initial branch to checkout"},
+ {Name: "--config-path", Description: "Path to write generated config file"},
+ {Name: "--data", Description: "Include existing template data"},
+ {Name: "--depth", Description: "Create a shallow clone"},
+ {Name: "--guess-repo-url", Description: "Guess the repo URL"},
+ {Name: "--one-shot", Description: "Run in one-shot mode"},
+ {Name: "--purge", Description: "Purge config and source directories after running"},
+ {Name: "--purge-binary", Description: "Purge chezmoi binary after running"},
+ {Name: "--ssh", Description: "Use ssh instead of https when guessing dotfile repo URL"},
+ {Name: "--binary", Description: "Purge chezmoi binary"},
+ {Name: "--service", Description: "Service"},
+ {Name: "--user", Description: "User"},
+ {Name: "--value", Description: "Value"},
+ {Name: "--bucket", Description: "Bucket"},
+ {Name: "--key", Description: "Key"},
+ },
+ })
+}
diff --git a/commands/sys/chsh.go b/commands/sys/chsh.go
new file mode 100644
index 0000000..82f16d4
--- /dev/null
+++ b/commands/sys/chsh.go
@@ -0,0 +1,18 @@
+package sys
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "chsh",
+ Description: "Change your login shell",
+ Options: []core.Option{
+ {Name: "-s", Description: "Specify login shell"},
+ {Name: "-l", Description: "Print list of shells and exit"},
+ {Name: "-u", Description: "Print help message and exit"},
+ {Name: "-v", Description: "Print version and exit"},
+ },
+ })
+}
diff --git a/commands/sys/codesign.go b/commands/sys/codesign.go
new file mode 100644
index 0000000..5288930
--- /dev/null
+++ b/commands/sys/codesign.go
@@ -0,0 +1,20 @@
+package sys
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "codesign",
+ Description: "Create and manipulate code signatures",
+ Options: []core.Option{
+ {Name: "--all-architectures", Description: "Display information about the code at the path(s) given"},
+ {Name: "-D", Description: "Constructs and prints the hosting chain of a running program"},
+ {Name: "-i", Description: "Indicates the granularity of code signing. Pagesize must be a power of two"},
+ {Name: "-r", Description: "Sign the code at the path(s) given using this identity"},
+ {Name: "-v", Description: "Requests verification of code signatures"},
+ {Name: "--continue", Description: "During static validation, do not validate the contents of the code's resources"},
+ },
+ })
+}
diff --git a/commands/sys/croc.go b/commands/sys/croc.go
new file mode 100644
index 0000000..5beb74b
--- /dev/null
+++ b/commands/sys/croc.go
@@ -0,0 +1,45 @@
+package sys
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "croc",
+ Description: "Send file(s), or folder",
+ Subcommands: []core.Subcommand{
+ {Name: "send", Description: "Send file(s), or folder"},
+ {Name: "relay", Description: "Start your own relay"},
+ {Name: "help", Description: "Shows a list of commands or help for one command"},
+ },
+ Options: []core.Option{
+ {Name: "--code", Description: "Codephrase used to connect to relay"},
+ {Name: "--hash", Description: "Hash algorithm"},
+ {Name: "--text", Description: "Send some text"},
+ {Name: "--no-local", Description: "Disable local relay when sending"},
+ {Name: "--no-multi", Description: "Disable multiplexing"},
+ {Name: "--ports", Description: "Ports of the local relay"},
+ {Name: "--host", Description: "Host of the relay"},
+ {Name: "--help", Description: "Show help for croc"},
+ {Name: "--internal-dns", Description: "Use a built-in DNS stub resolver rather than the host operating system"},
+ {Name: "--remember", Description: "Save these settings to reuse next time"},
+ {Name: "--debug", Description: "Toggle debug mode"},
+ {Name: "--yes", Description: "Automatically agree to all prompts"},
+ {Name: "--stdout", Description: "Redirect file to stdout"},
+ {Name: "--no-compress", Description: "Disable compression"},
+ {Name: "--ask", Description: "Make sure sender and recipient are prompted"},
+ {Name: "--local", Description: "Force to use only local connections"},
+ {Name: "--ignore-stdin", Description: "Ignore piped stdin"},
+ {Name: "--overwrite", Description: "Do not prompt to overwrite"},
+ {Name: "--curve", Description: "Choose an encryption curve"},
+ {Name: "--ip", Description: "Set sender ip if known"},
+ {Name: "--relay", Description: "Address of the relay"},
+ {Name: "--relay6", Description: "Ipv6 address of the relay"},
+ {Name: "--out", Description: "Specify an output folder to receive the file"},
+ {Name: "--pass", Description: "Add a socks5 proxy"},
+ {Name: "--throttleUpload", Description: "Throttle the upload speed e.g. 500k"},
+ {Name: "--version", Description: "Print the version"},
+ },
+ })
+}
diff --git a/commands/sys/crontab.go b/commands/sys/crontab.go
new file mode 100644
index 0000000..384f0f0
--- /dev/null
+++ b/commands/sys/crontab.go
@@ -0,0 +1,18 @@
+package sys
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "crontab",
+ Description: "Maintain crontab file for individual users",
+ Options: []core.Option{
+ {Name: "-e", Description: "Edit the current crontab"},
+ {Name: "-l", Description: "Display the current crontab"},
+ {Name: "-r", Description: "Remove the current crontab"},
+ {Name: "-u", Description: "Specify the name of the user whose crontab is to be tweaked"},
+ },
+ })
+}
diff --git a/commands/sys/date.go b/commands/sys/date.go
new file mode 100644
index 0000000..d437b4e
--- /dev/null
+++ b/commands/sys/date.go
@@ -0,0 +1,23 @@
+package sys
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "date",
+ Description: "Display or set date and time",
+ Options: []core.Option{
+ {Name: "-d", Description: "Set the kernel's value for daylight saving time"},
+ {Name: "-f", Description: "The format with which to parse the new date value"},
+ {Name: "-j", Description: "Don't try to set the date"},
+ {Name: "-n", Description: "Only set time on the current machine, instead of all machines in the local group"},
+ {Name: "-R", Description: "Use RFC 2822 date and time output format"},
+ {Name: "-r", Description: "Number of seconds since the Epoch (00:00:00 UTC, January 1, 1970)"},
+ {Name: "-t", Description: "Set the system's value for minutes west of GMT"},
+ {Name: "-u", Description: "Display or set the date in UTC (Coordinated Universal) time"},
+ {Name: "-v", Description: "[+|-]val[ymwdHMS]"},
+ },
+ })
+}
diff --git a/commands/sys/dateseq.go b/commands/sys/dateseq.go
new file mode 100644
index 0000000..fa3f5c0
--- /dev/null
+++ b/commands/sys/dateseq.go
@@ -0,0 +1,18 @@
+package sys
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "dateseq",
+ Description: "Print help and exit",
+ Options: []core.Option{
+ {Name: "--help", Description: "Print help and exit"},
+ {Name: "--version", Description: "Print version and exit"},
+ {Name: "--quiet", Description: "Suppress message about date/time and duration parse errors and fix-ups"},
+ {Name: "-f", Description: "Date/time"},
+ },
+ })
+}
diff --git a/commands/sys/dcli.go b/commands/sys/dcli.go
new file mode 100644
index 0000000..206316b
--- /dev/null
+++ b/commands/sys/dcli.go
@@ -0,0 +1,59 @@
+package sys
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "dcli",
+ Description: "Display help for command",
+ Subcommands: []core.Subcommand{
+ {Name: "sync", Description: "Manually synchronize the local vault with Dashlane"},
+ {Name: "read", Description: "Retrieve a secret from the local vault via its path"},
+ {Name: "path", Description: "Path to the secret (dl:/// or dl:///)"},
+ {Name: "password", Description: "Retrieve a password from the local vault and copy it to the clipboard"},
+ {Name: "otp", Description: "Retrieve an OTP code from local vault and copy it to the clipboard"},
+ {Name: "note", Description: "Retrieve a secure note from the local vault and open it"},
+ {Name: "accounts", Description: "Manage your accounts connected to the CLI"},
+ {Name: "whoami", Description: "Prints the login email of the account currently in use"},
+ {Name: "devices", Description: "Operations on devices"},
+ {Name: "list", Description: "Lists all registered devices that can access your account"},
+ {Name: "device ids", Description: "Ids of the devices to remove"},
+ {Name: "register", Description: "Registers a new device to be used in non-interactive mode"},
+ {Name: "device name", Description: "Name of the device to register"},
+ {Name: "team", Description: "Team related commands"},
+ {Name: "credentials", Description: "Team credentials operations"},
+ {Name: "generate", Description: "Generate new team credentials"},
+ {Name: "revoke", Description: "Revoke credentials by access key"},
+ {Name: "accessKey", Description: "Access key of the credentials to revoke"},
+ {Name: "members", Description: "List team members"},
+ {Name: "page", Description: "Page number"},
+ {Name: "limit", Description: "Limit of members per page"},
+ {Name: "logs", Description: "List audit logs"},
+ {Name: "report", Description: "Get team report"},
+ {Name: "days", Description: "Number of days in history"},
+ {Name: "configure", Description: "Configure the CLI"},
+ {Name: "disable-auto-sync", Description: "Disable automatic synchronization which is done once per hour (default: false)"},
+ {Name: "backup", Description: "Backup your local vault (will use the current directory by default)"},
+ {Name: "logout", Description: "Logout and clean your local database and OS keychain"},
+ },
+ Options: []core.Option{
+ {Name: "-i", Description: "Input file of a template to inject the credential into"},
+ {Name: "-o", Description: "Output file to write the injected template to"},
+ {Name: "--print", Description: "Prints just the OTP code, instead of copying it to the clipboard"},
+ {Name: "--json", Description: "Output in JSON format"},
+ {Name: "--all", Description: "Remove all devices including this one (dangerous)"},
+ {Name: "--others", Description: "Remove all other devices"},
+ {Name: "--csv", Description: "Output in CSV format"},
+ {Name: "--human-readable", Description: "Output dates in human readable format"},
+ {Name: "--start", Description: "Start timestamp in ms"},
+ {Name: "--end", Description: "Log type"},
+ {Name: "--category", Description: "Log category"},
+ {Name: "--directory", Description: "Logout and clean your local database and OS keychain"},
+ {Name: "-h", Description: "Display help for command"},
+ {Name: "-V", Description: "Output the version number"},
+ {Name: "--debug", Description: "Print debug messages"},
+ },
+ })
+}
diff --git a/commands/sys/dd.go b/commands/sys/dd.go
new file mode 100644
index 0000000..eb12a19
--- /dev/null
+++ b/commands/sys/dd.go
@@ -0,0 +1,12 @@
+package sys
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "dd",
+ Description: "The same as",
+ })
+}
diff --git a/commands/sys/ddev.go b/commands/sys/ddev.go
new file mode 100644
index 0000000..a2bbe8f
--- /dev/null
+++ b/commands/sys/ddev.go
@@ -0,0 +1,100 @@
+package sys
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "ddev",
+ Description: "DDEV-Local local development environment",
+ Subcommands: []core.Subcommand{
+ {Name: "auth", Description: "A collection of authentication commands"},
+ {Name: "ssh", Description: "Add ssh key authentication to the ddev-ssh-auth container"},
+ {Name: "clean", Description: "Removes items ddev has created"},
+ {Name: "composer", Description: "Executes a composer command within the web container"},
+ {Name: "config", Description: "Create or modify a ddev project configuration in the current directory"},
+ {Name: "global", Description: "Change global configuration"},
+ {Name: "d", Description: "A collection of debugging commands"},
+ {Name: "capabilities", Description: "Show capabilities of this version of ddev"},
+ {Name: "compose-config", Description: "Prints the docker-compose configuration of the current project"},
+ {Name: "configyaml", Description: "Prints the project config.*.yaml usage"},
+ {Name: "dockercheck", Description: "Diagnose DDEV docker/colima setup"},
+ {Name: "download-images", Description: "Download all images required by ddev"},
+ {Name: "fix-commands", Description: "Fix up custom/shell commands without running ddev start"},
+ {Name: "mutagen", Description: "Allows access to any mutagen command"},
+ {Name: "nfsmount", Description: "Checks to see if nfs mounting works for current project"},
+ {Name: "refresh", Description: "Refreshes docker cache for project"},
+ {Name: "router-nginx-config", Description: "Prints the nginx config of the router"},
+ {Name: "test", Description: "Run diagnostics on ddev using the embedded test_ddev.sh script"},
+ {Name: "delete", Description: "Remove all project information (including database) for an existing project"},
+ {Name: "images", Description: "Deletes drud/ddev-* docker images not in use by current ddev version"},
+ {Name: "desc", Description: "Get a detailed description of a running ddev project"},
+ {Name: "export-db", Description: "Dump a database to a file or to stdout"},
+ {Name: "get", Description: "Get/Download a 3rd party add-on (service, provider, etc.)"},
+ {Name: "hostname", Description: "Manage your hostfile entries"},
+ {Name: "import-db", Description: "Import a sql file into the project"},
+ {Name: "l", Description: "List projects"},
+ {Name: "logs", Description: "Get the logs from your running services"},
+ {Name: "monitor", Description: "Monitor mutagen status"},
+ {Name: "reset", Description: "Reset mutagen for project"},
+ {Name: "st", Description: "Shows mutagen sync status"},
+ {Name: "sync", Description: "Explicit sync for mutagen"},
+ {Name: "sc", Description: "Uses 'docker stop' to pause/stop the containers belonging to a project"},
+ {Name: "powerdown", Description: "Completely stop all projects and containers"},
+ {Name: "pull", Description: "Pull files and database using a configured provider plugin"},
+ {Name: "push", Description: "Push files and database using a configured provider plugin"},
+ {Name: "restart", Description: "Restart a project or several projects"},
+ {Name: "service", Description: "Add or remove, enable or disable extra services"},
+ {Name: "disable", Description: "Disable a 3rd party service"},
+ {Name: "enable", Description: "Enable a 3rd party service"},
+ {Name: "share", Description: "Share project on the internet via ngrok"},
+ {Name: "snapshot", Description: "Create a database snapshot for one or more projects"},
+ {Name: "add", Description: "Start a ddev project"},
+ {Name: "version", Description: "Print ddev version and component versions"},
+ {Name: "help", Description: "Help about any command"},
+ },
+ Options: []core.Option{
+ {Name: "--ssh-key-path", Description: "Full path to ssh key directory"},
+ {Name: "--all", Description: "Clean all ddev projects"},
+ {Name: "--dry-run", Description: "Run the clean command without deleting"},
+ {Name: "--yes", Description: "Yes - skip confirmation prompt"},
+ {Name: "--auto-restart-containers", Description: "If true, automatically restart containers after a reboot or docker restart"},
+ {Name: "--disable-http2", Description: "If true, 'ddev start' will fail when a hook fails"},
+ {Name: "--instrumentation-opt-in", Description: "Instrumentation-opt-in=true"},
+ {Name: "--letsencrypt-email", Description: "If true, web container will use mutagen caching/asynchronous updates"},
+ {Name: "--nfs-mount-enabled", Description: "Enable NFS mounting on all projects globally"},
+ {Name: "--no-bind-mounts", Description: "For example, --omit-containers=dba,ddev-ssh-agent"},
+ {Name: "--router-bind-all-interfaces", Description: "Router-bind-all-interfaces=true"},
+ {Name: "--simple-formatting", Description: "If true, use simple formatting and no color for tables"},
+ {Name: "--table-style", Description: "Table style for list and describe, see ~/.ddev/global_config.yaml for values"},
+ {Name: "--use-letsencrypt", Description: "A comma-delimited list of FQDNs for the project"},
+ {Name: "--additional-hostnames", Description: "A comma-delimited list of hostnames for the project"},
+ {Name: "--apptype", Description: "Automatically run config without prompting"},
+ {Name: "--bind-all-interfaces", Description: "Bind host ports on all interfaces, not just on localhost network interface"},
+ {Name: "--composer-root", Description: "Overrides the default composer root directory for the web service"},
+ {Name: "--composer-root-default", Description: "Unsets a web service composer root directory override"},
+ {Name: "--composer-version", Description: "Prompts ddev to create the docroot if it doesn't exist"},
+ {Name: "--database", Description: "Specify the database type:version to use. Defaults to mariadb:10.4"},
+ {Name: "--db-image", Description: "Sets the db container image"},
+ {Name: "--db-image-default", Description: "Sets the default db container image for this ddev version"},
+ {Name: "--db-working-dir", Description: "Overrides the default working directory for the db service"},
+ {Name: "--db-working-dir-default", Description: "Unsets a db service working directory override"},
+ {Name: "--dba-image", Description: "Sets the dba container image"},
+ {Name: "--dba-image-default", Description: "Sets the default dba container image for this ddev version"},
+ {Name: "--dba-working-dir", Description: "Overrides the default working directory for the dba service"},
+ {Name: "--dba-working-dir-default", Description: "Unsets a dba service working directory override"},
+ {Name: "--dbimage-extra-packages", Description: "Prevent ddev from creating or updating CMS settings files"},
+ {Name: "--docroot", Description: "Decide whether 'ddev start' should be interrupted by a failing hook"},
+ {Name: "--host-db-port", Description: "The db container's localhost-bound port"},
+ {Name: "--host-dba-port", Description: "The web container's localhost-bound https port"},
+ {Name: "--host-webserver-port", Description: "The web container's localhost-bound port"},
+ {Name: "--http-port", Description: "The router HTTP port for this project"},
+ {Name: "--https-port", Description: "The router HTTPS port for this project"},
+ {Name: "--image-defaults", Description: "Sets the default web, db, and dba container images"},
+ {Name: "--mailhog-https-port", Description: "Router port to be used for mailhog access (https)"},
+ {Name: "--mailhog-port", Description: "Router port to be used for mailhog access"},
+ {Name: "--mutagen-enabled", Description: "Enable mutagen asynchronous update of project in web container"},
+ },
+ })
+}
diff --git a/commands/sys/defaults.go b/commands/sys/defaults.go
new file mode 100644
index 0000000..6f92213
--- /dev/null
+++ b/commands/sys/defaults.go
@@ -0,0 +1,28 @@
+package sys
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "defaults",
+ Description: "Global domain",
+ Subcommands: []core.Subcommand{
+ {Name: "read", Description: "Shows defaults"},
+ {Name: "write", Description: "Writes key for domain"},
+ {Name: "delete", Description: "Deletes domain or key in domain"},
+ {Name: "rename", Description: "Renames old_key to new_key"},
+ {Name: "domains", Description: "Lists all domains"},
+ {Name: "find", Description: "Lists all entries containing word"},
+ {Name: "word", Description: "The word to search for"},
+ {Name: "help", Description: "Show help text"},
+ {Name: "read-type", Description: "Shows the type for the given domain, key"},
+ },
+ Options: []core.Option{
+ {Name: "-globalDomain", Description: "Global domain"},
+ {Name: "-app", Description: "Application name"},
+ {Name: "-string", Description: "Command line interface to a user's defaults"},
+ },
+ })
+}
diff --git a/commands/sys/degit.go b/commands/sys/degit.go
new file mode 100644
index 0000000..4abaf40
--- /dev/null
+++ b/commands/sys/degit.go
@@ -0,0 +1,19 @@
+package sys
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "degit",
+ Description: "Straightforward project scaffolding",
+ Options: []core.Option{
+ {Name: "--help", Description: "Print help"},
+ {Name: "-f", Description: "Overwrite existing files"},
+ {Name: "-c", Description: "Use a cache"},
+ {Name: "-v", Description: "Be verbose?"},
+ {Name: "-m", Description: "Clone mode"},
+ },
+ })
+}
diff --git a/commands/sys/deta.go b/commands/sys/deta.go
new file mode 100644
index 0000000..c6099cb
--- /dev/null
+++ b/commands/sys/deta.go
@@ -0,0 +1,60 @@
+package sys
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "deta",
+ Description: "Runtime",
+ Subcommands: []core.Subcommand{
+ {Name: "login", Description: "Trigger the login process for the Deta CLI"},
+ {Name: "version", Description: "Print the Deta version"},
+ {Name: "upgrade", Description: "Upgrade Deta CLI version"},
+ {Name: "projects", Description: "List Deta projects"},
+ {Name: "new", Description: "Create a new Deta Micro"},
+ {Name: "path", Description: "Path to new directory for the micro"},
+ {Name: "name", Description: "Name of the new micro"},
+ {Name: "project", Description: "Name of the existing project"},
+ {Name: "runtime", Description: "The selected runtime"},
+ {Name: "deploy", Description: "Deploy new code to a Deta Micro"},
+ {Name: "details", Description: "Get detailed information about a specific Deta micro"},
+ {Name: "watch", Description: "Auto-deploy locally saved changes in real time to your Deta micro"},
+ {Name: "auth", Description: "Change auth settings for a Deta Micro"},
+ {Name: "disable", Description: "Disable HTTP Auth for a Deta Micro"},
+ {Name: "enable", Description: "Enable HTTP Auth for a Deta Micro"},
+ {Name: "create-api-key", Description: "Create an API key for a Deta Micro"},
+ {Name: "description", Description: "The api-key description"},
+ {Name: "outfile", Description: "The api-key output file"},
+ {Name: "delete-api-key", Description: "Delete an API key for a Deta Micro"},
+ {Name: "pull", Description: "Pull the latest deployed code of a Deta Micro to your local machine"},
+ {Name: "clone", Description: "Clone a Deta Micro"},
+ {Name: "update", Description: "Update a Deta Micro's name or environment variables"},
+ {Name: "env", Description: "Path to env file"},
+ {Name: "visor", Description: "Change the Visor settings for a Deta Micro"},
+ {Name: "open", Description: "Open Micro's visor page in the browser"},
+ {Name: "run", Description: "Run a Deta Micro from the CLI"},
+ {Name: "action", Description: "The action to be performed on the micro. See docs for full examples and details"},
+ {Name: "cron", Description: "Change cron settings for a Deta Micro"},
+ {Name: "set", Description: "Set Deta Micro to run on a schedule"},
+ {Name: "expression", Description: "The cron expression to be set"},
+ {Name: "remove", Description: "Remove a schedule from a Deta Micro"},
+ },
+ Options: []core.Option{
+ {Name: "-h", Description: "Show help for login"},
+ {Name: "-v", Description: "Upgrade CLI to specific version"},
+ {Name: "-n", Description: "Create a micro with Node (node14.x) runtime"},
+ {Name: "-p", Description: "Create a micro with Python (python 3.9) runtime"},
+ {Name: "--name", Description: "Set the name of the new micro"},
+ {Name: "--project", Description: "Set the project under which the micro is created"},
+ {Name: "--runtime", Description: "Create a micro with a specified runtime"},
+ {Name: "-d", Description: "Set the api-key description"},
+ {Name: "-o", Description: "Set the api-key output file"},
+ {Name: "-f", Description: "Force the overwrite of existing files"},
+ {Name: "-r", Description: "The new runtime of the micro"},
+ {Name: "-e", Description: "The new env file of the micro"},
+ {Name: "-l", Description: "Show the micro logs"},
+ },
+ })
+}
diff --git a/commands/sys/dirname.go b/commands/sys/dirname.go
new file mode 100644
index 0000000..888af1b
--- /dev/null
+++ b/commands/sys/dirname.go
@@ -0,0 +1,12 @@
+package sys
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "dirname",
+ Description: "Return directory portion of pathname",
+ })
+}
diff --git a/commands/sys/do_release_upgrade.go b/commands/sys/do_release_upgrade.go
new file mode 100644
index 0000000..7a006b7
--- /dev/null
+++ b/commands/sys/do_release_upgrade.go
@@ -0,0 +1,21 @@
+package sys
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "do-release-upgrade",
+ Description: "Upgrade Ubuntu to latest release",
+ Options: []core.Option{
+ {Name: "-h", Description: "Show help message and exit"},
+ {Name: "-d", Description: "If using the latest supported release, upgrade to the development release"},
+ {Name: "-p", Description: "Try upgrading to the latest release using the upgrader from Ubuntu-proposed"},
+ {Name: "-m", Description: "Run in a special upgrade mode"},
+ {Name: "--mode", Description: "Run in a special upgrade mode"},
+ {Name: "-f", Description: "Run the specified frontend"},
+ {Name: "--frontend", Description: "Run the specified frontend"},
+ },
+ })
+}
diff --git a/commands/sys/dog.go b/commands/sys/dog.go
new file mode 100644
index 0000000..eb2b047
--- /dev/null
+++ b/commands/sys/dog.go
@@ -0,0 +1,40 @@
+package sys
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "dog",
+ Description: "Human-readable host names, nameservers, types, or classes",
+ Subcommands: []core.Subcommand{
+ {Name: "A", Description: "Query Domain A Record"},
+ {Name: "MX", Description: "Query Domain MX Record"},
+ {Name: "CNAME", Description: "Query Domain CNAME Record"},
+ {Name: "TXT", Description: "Query Domain TXT Record"},
+ {Name: "NS", Description: "Query NS Record"},
+ {Name: "SOA", Description: "Query SOA Record"},
+ {Name: "TTL", Description: "Query TTL Record"},
+ {Name: "ANY +noall +answer", Description: "Query ALL DNS Records"},
+ },
+ Options: []core.Option{
+ {Name: "-q", Description: "Host name or IP address to query"},
+ {Name: "-t", Description: "Type of the DNS record being queried (A, MX, NS...)"},
+ {Name: "-n", Description: "Address of the nameserver to send packets to"},
+ {Name: "-class", Description: "Network class of the DNS record being queried (IN, CH, HS)"},
+ {Name: "--edns", Description: "Whether to OPT in to EDNS (disable, hide, show)"},
+ {Name: "--txid", Description: "Set the transaction ID to a specific value"},
+ {Name: "-Z", Description: "Set uncommon protocol-level tweaks"},
+ {Name: "-U", Description: "Use the DNS protocol over UDP"},
+ {Name: "-T", Description: "Use the DNS protocol over TCP"},
+ {Name: "-S", Description: "Use the DNS-over-TLS protocol"},
+ {Name: "-H", Description: "Use the DNS-over-HTTPS protocol"},
+ {Name: "-1", Description: "Short mode: display nothing but the first result"},
+ {Name: "-J", Description: "Display the output as JSON"},
+ {Name: "--color", Description: "When to colourise the output (always, automatic, never)"},
+ {Name: "--seconds", Description: "Do not format durations, display them as seconds"},
+ {Name: "--time", Description: "Print how long the response took to arrive"},
+ },
+ })
+}
diff --git a/commands/sys/dotnet.go b/commands/sys/dotnet.go
new file mode 100644
index 0000000..bf904ab
--- /dev/null
+++ b/commands/sys/dotnet.go
@@ -0,0 +1,19 @@
+package sys
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "dotnet",
+ Description: "The dotnet cli",
+ Options: []core.Option{
+ {Name: "--version", Description: "Prints out a list of the installed .NET SDKs"},
+ {Name: "-?", Description: "Prints out a list of available commands"},
+ {Name: "-d", Description: "Enables diagnostic output"},
+ {Name: "-v", Description: "Path containing probing policy and assemblies to probe"},
+ {Name: "--additional-deps", Description: "Version of the .NET runtime to use to run the application"},
+ },
+ })
+}
diff --git a/commands/sys/dscacheutil.go b/commands/sys/dscacheutil.go
new file mode 100644
index 0000000..d85d0ca
--- /dev/null
+++ b/commands/sys/dscacheutil.go
@@ -0,0 +1,25 @@
+package sys
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "dscacheutil",
+ Description: "Utility for managing the Directory Service cache",
+ Subcommands: []core.Subcommand{
+ {Name: "category", Description: "Category to query"},
+ },
+ Options: []core.Option{
+ {Name: "-h", Description: "List the options for calling dscacheutil"},
+ {Name: "-q", Description: "Query the Directory Service cache"},
+ {Name: "-a", Description: "Attribute to query"},
+ {Name: "-cachedump", Description: "Get an overview of the cache by default"},
+ {Name: "-buckets", Description: "Get an overview of the cache by default"},
+ {Name: "-entries", Description: "Dump detailed information about cache entries"},
+ {Name: "-configuration", Description: "Flush the entire cache"},
+ {Name: "-statistics", Description: "Get statistics from the cache, including an overview an detailed call statistics"},
+ },
+ })
+}
diff --git a/commands/sys/dscl.go b/commands/sys/dscl.go
new file mode 100644
index 0000000..621d8e3
--- /dev/null
+++ b/commands/sys/dscl.go
@@ -0,0 +1,38 @@
+package sys
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "dscl",
+ Description: "Prompt for password",
+ Subcommands: []core.Subcommand{
+ {Name: "read", Description: "Prints a directory"},
+ {Name: "readall", Description: "Prints all the records of a given type"},
+ {Name: "readpl", Description: "Prints the contents of plist_path"},
+ {Name: "readpli", Description: "Prints the contents of plist_path for the plist at value_index of the key"},
+ {Name: "list", Description: "Lists the subdirectories of the given directory"},
+ {Name: "search", Description: "Searches for records that match a pattern"},
+ {Name: "create", Description: "Creates a new record"},
+ {Name: "createpl", Description: "Creates a string, or array of strings at plist_path"},
+ {Name: "append", Description: "Appends one or more values to a property in a given record"},
+ {Name: "delete", Description: "Delete a directory, property, or value"},
+ {Name: "deletepl", Description: "Deletes a value in a plist"},
+ {Name: "deletepli", Description: "Deletes a value for the plist at value_index of the key"},
+ {Name: "passwd", Description: "Changes the password of a user"},
+ {Name: "new password", Description: "New password of the user"},
+ },
+ Options: []core.Option{
+ {Name: "-p", Description: "Prompt for password"},
+ {Name: "-u", Description: "Authenticate as user"},
+ {Name: "-P", Description: "Authenticate with password"},
+ {Name: "-f", Description: "Targeted local node database file path"},
+ {Name: "-raw", Description: "Don't strip off prefix from DirectoryService API constants"},
+ {Name: "-plist", Description: "Print out record(s) or attribute(s) in XML plist format"},
+ {Name: "-url", Description: "Print record attribute values in URL-style encoding"},
+ {Name: "-q", Description: "Quiet - no interactive prompt"},
+ },
+ })
+}
diff --git a/commands/sys/dtm.go b/commands/sys/dtm.go
new file mode 100644
index 0000000..3419f1b
--- /dev/null
+++ b/commands/sys/dtm.go
@@ -0,0 +1,52 @@
+package sys
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "dtm",
+ Description: "Plugin",
+ Subcommands: []core.Subcommand{
+ {Name: "apply", Description: "Create or update DevOps tools according to DevStream configuration file"},
+ {Name: "completion", Description: "Generate the autocompletion script for dtm for the specified shell"},
+ {Name: "bash", Description: "Generate autocompletion script for bash"},
+ {Name: "fish", Description: "Generate autocompletion script for fish"},
+ {Name: "powershell", Description: "Generate autocompletion script for powershell"},
+ {Name: "zsh", Description: "Generate autocompletion script for zsh"},
+ {Name: "delete", Description: "Delete DevOps tools according to DevStream configuration file"},
+ {Name: "develop", Description: "Develop is used for develop a new plugin"},
+ {Name: "create-plugin", Description: "Create a new plugin"},
+ {Name: "validate-plugin", Description: "Validate a plugin"},
+ {Name: "init", Description: "Download needed plugins according to the config file"},
+ {Name: "list", Description: "This command only supports listing plugins now"},
+ {Name: "plugins", Description: "List all plugins"},
+ {Name: "show", Description: "Show is used to print plugins' configuration templates or status"},
+ {Name: "config", Description: "Show configuration information"},
+ {Name: "status", Description: "Show status information"},
+ {Name: "upgrade", Description: "Upgrade dtm to the latest release version"},
+ {Name: "verify", Description: "Verify DevOps tools according to DevStream config file and state"},
+ {Name: "version", Description: "Print the version number of DevStream"},
+ {Name: "help", Description: "Help about any command"},
+ },
+ Options: []core.Option{
+ {Name: "--config-file", Description: "Config file"},
+ {Name: "--plugin-dir", Description: "Plugins directory"},
+ {Name: "--yes", Description: "Apply directly without confirmation"},
+ {Name: "--force", Description: "Force delete by config"},
+ {Name: "--name", Description: "Specify name of the plugin to be created"},
+ {Name: "--all", Description: "Validate all plugins"},
+ {Name: "--arch", Description: "Download plugins for specific arch"},
+ {Name: "--download-only", Description: "Download plugins only"},
+ {Name: "--os", Description: "Download plugins for specific os"},
+ {Name: "--plugins", Description: "The plugins to be downloaded"},
+ {Name: "--filter", Description: "Filter plugin by regex"},
+ {Name: "--plugin", Description: "Specify name with the plugin"},
+ {Name: "--template", Description: "Print a template config, e.g. quickstart/gitops/"},
+ {Name: "--id", Description: "Specify id with the plugin instance"},
+ {Name: "--debug", Description: "Debug level log"},
+ {Name: "--help", Description: "Display help"},
+ },
+ })
+}
diff --git a/commands/sys/echo.go b/commands/sys/echo.go
new file mode 100644
index 0000000..4cc223d
--- /dev/null
+++ b/commands/sys/echo.go
@@ -0,0 +1,17 @@
+package sys
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "echo",
+ Description: "Environment Variable",
+ Options: []core.Option{
+ {Name: "-n", Description: "Do not print the trailing newline character"},
+ {Name: "-e", Description: "Interpret escape sequences"},
+ {Name: "-E", Description: "Disable escape sequences"},
+ },
+ })
+}
diff --git a/commands/sys/eleventy.go b/commands/sys/eleventy.go
new file mode 100644
index 0000000..1c71a1a
--- /dev/null
+++ b/commands/sys/eleventy.go
@@ -0,0 +1,12 @@
+package sys
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "eleventy",
+ Description: "Eleventy is a simpler static site generator",
+ })
+}
diff --git a/commands/sys/exec.go b/commands/sys/exec.go
new file mode 100644
index 0000000..8c571c7
--- /dev/null
+++ b/commands/sys/exec.go
@@ -0,0 +1,12 @@
+package sys
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "exec",
+ Description: "Replace the current shell with a program",
+ })
+}
diff --git a/commands/sys/fastlane.go b/commands/sys/fastlane.go
new file mode 100644
index 0000000..935fc09
--- /dev/null
+++ b/commands/sys/fastlane.go
@@ -0,0 +1,55 @@
+package sys
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "fastlane",
+ Description: "Helps you with your initial fastlane setup",
+ Subcommands: []core.Subcommand{
+ {Name: "init", Description: "Helps you with your initial fastlane setup"},
+ {Name: "swift", Description: "Fastlane configuration written in Swift (Beta). Swift setup is still in beta"},
+ {Name: "appleID", Description: "Your Apple ID"},
+ {Name: "action", Description: "Shows more information for a specific command"},
+ {Name: "actions", Description: "Lists all available fastlane actions"},
+ {Name: "add_plugin", Description: "Add a new plugin to your fastlane setup"},
+ {Name: "docs", Description: "Generate a markdown based documentation based on the Fastfile"},
+ {Name: "enable_auto_complete", Description: "Enable tab auto completion"},
+ {Name: "env", Description: "Print your fastlane environment, use this when you submit an issue on GitHub"},
+ {Name: "help", Description: "Display global or [command] help documentation"},
+ {Name: "install_plugins", Description: "Install all plugins for this project"},
+ {Name: "lanes", Description: "Lists all available lanes and shows their description"},
+ {Name: "list", Description: "Lists all available lanes without description"},
+ {Name: "new_action", Description: "Create a new custom action for fastlane"},
+ {Name: "new_plugin", Description: "Create a new plugin that can be used with fastlane"},
+ {Name: "run", Description: "Run a fastlane one-off action without a full lane"},
+ {Name: "search_plugins", Description: "Search for plugins, search query is optional"},
+ {Name: "socket_server", Description: "Starts local socket server and enables only a single local connection"},
+ {Name: "seconds", Description: "Connection timeout in seconds"},
+ {Name: "port", Description: "The port on localhost"},
+ {Name: "trigger", Description: "Run a specific lane. Pass the lane name and optionally the platform first"},
+ {Name: "lane", Description: "Specific lane to trigger"},
+ {Name: "update_fastlane", Description: "Update fastlane to the latest release"},
+ {Name: "update_plugins", Description: "Update all plugin dependencies"},
+ },
+ Options: []core.Option{
+ {Name: "-u", Description: "Only iOS projects Your Apple ID"},
+ {Name: "-f", Description: "Overwrite the existing README.md in the ./fastlane folder"},
+ {Name: "-c", Description: "Add custom command(s) for which tab auto complete should be enabled too"},
+ {Name: "-j", Description: "Output the lanes in JSON instead of text"},
+ {Name: "--name", Description: "Name of your new action"},
+ {Name: "-s", Description: "Keeps socket server up even after error or disconnects, requires CTRL-C to kill"},
+ {Name: "-p", Description: "Sets the port on localhost for the socket connection"},
+ {Name: "--disable_runner_upgrades", Description: "Prevents fastlane from attempting to update FastlaneRunner swift project"},
+ {Name: "--swift_server_port", Description: "Prevents fastlane from attempting to update FastlaneRunner swift project"},
+ {Name: "--platform", Description: "Only show actions available on the given platform"},
+ {Name: "-h", Description: "Show help for fastlane"},
+ {Name: "-v", Description: "Show version information for fastlane"},
+ {Name: "--verbose", Description: "Show version information for fastlane"},
+ {Name: "--capture_output", Description: "Captures the output of the current run, and generates a markdown issue template"},
+ {Name: "--troubleshoot", Description: "Add environment(s) to use with `dotenv`"},
+ },
+ })
+}
diff --git a/commands/sys/fdisk.go b/commands/sys/fdisk.go
new file mode 100644
index 0000000..14a667a
--- /dev/null
+++ b/commands/sys/fdisk.go
@@ -0,0 +1,29 @@
+package sys
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "fdisk",
+ Description: "Manipulate disk partition table",
+ Options: []core.Option{
+ {Name: "--help", Description: "Show help for fdisk"},
+ {Name: "--version", Description: "Show version for lsblk"},
+ {Name: "--sector-size", Description: "Specify the sector size of the disk"},
+ {Name: "--protect-boot", Description: "Specify the compatibility mode, 'dos' or 'nondos'"},
+ {Name: "--color", Description: "Colorize the output"},
+ {Name: "--list", Description: "List the partition tables for the specified devices and then exit"},
+ {Name: "--list-details", Description: "Like --list, but provides more details"},
+ {Name: "--lock", Description: "Use exclusive BSD lock for device or file it operates"},
+ {Name: "--noauto-pt", Description: "Don't automatically create a default partition table on empty device"},
+ {Name: "--output", Description: "Desc"},
+ {Name: "--getsz", Description: "This option is DEPRECATED in favour of blockdev(8)"},
+ {Name: "--type", Description: "When listing partition tables, show sizes in 'sectors' or in 'cylinders'"},
+ {Name: "--cylinders", Description: "Specify the number of cylinders of the disk"},
+ {Name: "--heads", Description: "The argument when can be auto, never or always"},
+ {Name: "--wipe-partitions", Description: "The argument when can be auto, never or always"},
+ },
+ })
+}
diff --git a/commands/sys/ffmpeg.go b/commands/sys/ffmpeg.go
new file mode 100644
index 0000000..36ba152
--- /dev/null
+++ b/commands/sys/ffmpeg.go
@@ -0,0 +1,54 @@
+package sys
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "ffmpeg",
+ Description: "Play, record, convert, and stream audio and video",
+ Options: []core.Option{
+ {Name: "-i", Description: "Input file"},
+ {Name: "-L", Description: "Show license"},
+ {Name: "-h", Description: "Show help"},
+ {Name: "-help", Description: "Show help"},
+ {Name: "--help", Description: "Show help"},
+ {Name: "-version", Description: "Show version"},
+ {Name: "-buildconf", Description: "Show build configuration"},
+ {Name: "-formats", Description: "Show available formats"},
+ {Name: "-muxers", Description: "Show available muxers"},
+ {Name: "-demuxers", Description: "Show available demuxers"},
+ {Name: "-devices", Description: "Show available devices"},
+ {Name: "-codecs", Description: "Show available codecs"},
+ {Name: "-decoders", Description: "Show available decoders"},
+ {Name: "-encoders", Description: "Show available encoders"},
+ {Name: "-bsfs", Description: "Show available bit stream filters"},
+ {Name: "-protocols", Description: "Show available protocols"},
+ {Name: "-filters", Description: "Show available filters"},
+ {Name: "-pix_fmts", Description: "Show available pixel formats"},
+ {Name: "-layouts", Description: "Show standard channel layouts"},
+ {Name: "-sample_fmts", Description: "Show available audio sample formats"},
+ {Name: "-dispositions", Description: "Show available stream dispositions"},
+ {Name: "-colors", Description: "Show available color names"},
+ {Name: "-sources", Description: "List sources of the input device"},
+ {Name: "-sinks", Description: "List sinks of the output device"},
+ {Name: "-hwaccels", Description: "Show available HW acceleration methods"},
+ {Name: "-loglevel", Description: "Set logging level"},
+ {Name: "-v", Description: "Set logging level"},
+ {Name: "-report", Description: "Generate a report"},
+ {Name: "-max_alloc", Description: "Set maximum size of a single allocated block"},
+ {Name: "-y", Description: "Overwrite output files"},
+ {Name: "-n", Description: "Never overwrite output files"},
+ {Name: "-ignore_unknown", Description: "Ignore unknown stream types"},
+ {Name: "-filter_threads", Description: "Number of non-complex filter threads"},
+ {Name: "-filter_complex_threads", Description: "Number of threads for -filter_complex"},
+ {Name: "-stats", Description: "Print progress report during encoding"},
+ {Name: "-max_error_rate", Description: "Change audio volume (256=normal)"},
+ {Name: "-cpuflags", Description: "Force specific cpu flags"},
+ {Name: "-cpucount", Description: "Force specific cpu count"},
+ {Name: "-hide_banner", Description: "Do not show program banner"},
+ {Name: "-copy_unknown", Description: "Copy unknown stream types"},
+ },
+ })
+}
diff --git a/commands/sys/firefox.go b/commands/sys/firefox.go
new file mode 100644
index 0000000..38834f9
--- /dev/null
+++ b/commands/sys/firefox.go
@@ -0,0 +1,49 @@
+package sys
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "firefox",
+ Description: "Free open-source web browser developer by Mozilla",
+ Options: []core.Option{
+ {Name: "--display", Description: "Specify an X display to use"},
+ {Name: "--sync", Description: "Make X calls synchronous"},
+ {Name: "--g-fatal-warnings", Description: "Make all warnings fatal"},
+ {Name: "-h", Description: "Print help message and exit"},
+ {Name: "-v", Description: "Print version information and exit"},
+ {Name: "--full-version", Description: "Print full version information and exit"},
+ {Name: "-P", Description: "Specify profile to use"},
+ {Name: "--profile", Description: "Specify profile to use by folder"},
+ {Name: "--migration", Description: "Start with migration wizard"},
+ {Name: "--ProfileManager", Description: "Start with ProfileManager"},
+ {Name: "--no-remote", Description: "Do not accept or send remote commands; implies --new-instance"},
+ {Name: "--new-instance", Description: "Open new instance, not a new window in running instance"},
+ {Name: "--safe-mode", Description: "Disables extensions and themes for this session"},
+ {Name: "--allow-downgrade", Description: "Allows downgrading a profile"},
+ {Name: "--MOZ_LOG", Description: "Treated as MOZ_LOG= environment variable, overrides it"},
+ {Name: "--MOZ_LOG_FILE", Description: "Run without a GUI"},
+ {Name: "--jsdebugger", Description: "Start the devtools server on a TCP port or Unix domain socket path"},
+ {Name: "--browser", Description: "Open a browser window"},
+ {Name: "--new-window", Description: "Open a URL in a new window"},
+ {Name: "--new-tab", Description: "Open a URL in a new tab"},
+ {Name: "--private-window", Description: "Open a URL in a new private window"},
+ {Name: "--preferences", Description: "Open the preferences dialog"},
+ {Name: "--screenshot", Description: "Take a screenshot"},
+ {Name: "--window-size", Description: "Size of your screenshot"},
+ {Name: "--search", Description: "Search for a term in your default search engine"},
+ {Name: "--setDefaultBrowser", Description: "Set Firefox as the default browser"},
+ {Name: "--first-startup", Description: "Run post-install actions before opening a new window"},
+ {Name: "--kiosk", Description: "Start the browser in kiosk mode"},
+ {Name: "--disable-pinch", Description: "Disable touch-screen and touch-pad pinch gestures"},
+ {Name: "--jsconsole", Description: "Open the Browser Console"},
+ {Name: "--devtools", Description: "Open DevTools on initial load"},
+ {Name: "--marionette", Description: "Enable remote debugging server"},
+ {Name: "--remote-debugging-port", Description: "Defaults to port 9222"},
+ {Name: "--allow-remote-hosts", Description: "Values of the Host header to allow for incoming requests"},
+ {Name: "--allow-remote-origins", Description: "Values of the Origin header to allow for incoming requests"},
+ },
+ })
+}
diff --git a/commands/sys/fisher.go b/commands/sys/fisher.go
new file mode 100644
index 0000000..e71b210
--- /dev/null
+++ b/commands/sys/fisher.go
@@ -0,0 +1,24 @@
+package sys
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "fisher",
+ Description: "[Prompt] - ๐ The ultimate Fish prompt",
+ Subcommands: []core.Subcommand{
+ {Name: "install", Description: "Install plugin"},
+ {Name: "remove", Description: "Remove plugins"},
+ {Name: "installed plugins", Description: "The plugin you want to remove"},
+ {Name: "update", Description: "Update plugins"},
+ {Name: "list", Description: "List plugins"},
+ {Name: "RegEx", Description: "Search in list with regular expression"},
+ },
+ Options: []core.Option{
+ {Name: "--help", Description: "Show help for fisher"},
+ {Name: "--version", Description: "Show fisher version"},
+ },
+ })
+}
diff --git a/commands/sys/fmt.go b/commands/sys/fmt.go
new file mode 100644
index 0000000..39af327
--- /dev/null
+++ b/commands/sys/fmt.go
@@ -0,0 +1,15 @@
+package sys
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "fmt",
+ Description: "Simple text formatter",
+ Options: []core.Option{
+ {Name: "-c", Description: "File(s) to format"},
+ },
+ })
+}
diff --git a/commands/sys/forc.go b/commands/sys/forc.go
new file mode 100644
index 0000000..c4a69af
--- /dev/null
+++ b/commands/sys/forc.go
@@ -0,0 +1,67 @@
+package sys
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "forc",
+ Description: "Fuel Orchestrator",
+ Subcommands: []core.Subcommand{
+ {Name: "addr2line", Description: "Show location and context of an opcode address in its source file"},
+ {Name: "build", Description: "Compile the current or target project"},
+ {Name: "check", Description: "Check the current or target project and all of its dependencies for errors"},
+ {Name: "completions", Description: "Generate tab-completion scripts for your shell"},
+ {Name: "bash", Description: "Bourne Again SHell (bash)"},
+ {Name: "elvish", Description: "Elvish shell"},
+ {Name: "fish", Description: "Friendly Interactive SHell (fish)"},
+ {Name: "power-shell", Description: "PowerShell"},
+ {Name: "zsh", Description: "Z SHell (zsh)"},
+ {Name: "fig", Description: "Fig"},
+ {Name: "new", Description: "Create a new Forc project at ``"},
+ {Name: "init", Description: "Create a new Forc project in an existing directory"},
+ {Name: "parse-bytecode", Description: "Parse bytecode file into a debug format"},
+ {Name: "test", Description: "Run the Sway unit tests for the current project"},
+ {Name: "update", Description: "Update dependencies in the Forc dependencies directory"},
+ {Name: "plugins", Description: "List all forc plugins"},
+ {Name: "template", Description: "Create a new Forc project from a git template"},
+ {Name: "run", Description: "Run script project. Crafts a script transaction then sends it to a running node"},
+ {Name: "crypto", Description: "Forc plugin for hashing arbitrary data"},
+ {Name: "keccak256", Description: "Hashes the argument or file with this algorithm"},
+ {Name: "sha256", Description: "Hashes the argument or file with this algorithm"},
+ {Name: "address", Description: "Converts an address to another format"},
+ {Name: "get-public-key", Description: "Get the public key from a message and its signature"},
+ {Name: "new-key", Description: "Creates a new key for use with fuel-core"},
+ {Name: "parse-secret", Description: "Parses a private key to view the associated public key"},
+ {Name: "help", Description: "Print this message or the help of the given subcommand(s)"},
+ {Name: "doc", Description: "Forc plugin for building a Sway package's documentation"},
+ {Name: "fmt", Description: "Forc plugin for running the Sway code formatter"},
+ {Name: "submit", Description: "A `forc` plugin for interacting with a Fuel node"},
+ {Name: "deploy", Description: "Build output file options"},
+ },
+ Options: []core.Option{
+ {Name: "-S", Description: "Where to search for the project root"},
+ {Name: "-g", Description: "Source file mapping in JSON format"},
+ {Name: "-c", Description: "How many lines of context to show"},
+ {Name: "-i", Description: "Opcode index"},
+ {Name: "-h", Description: "Print help information"},
+ {Name: "--help", Description: "Compile the current or target project"},
+ {Name: "-p", Description: "Path to the project, if not specified, current working directory will be used"},
+ {Name: "-t", Description: "Terse mode. Limited warning and error output"},
+ {Name: "-o", Description: "If set, outputs a binary file representing the script bytes"},
+ {Name: "-T", Description: "Specify shell to enable tab-completion for"},
+ {Name: "--target", Description: "Bourne Again SHell (bash)"},
+ {Name: "-r", Description: "Pretty-print the logs emitted from tests"},
+ {Name: "-l", Description: "Print `Log` and `LogData` receipts for tests"},
+ {Name: "-d", Description: "Dependency to be updated. If not set, all dependencies will be updated"},
+ {Name: "-u", Description: "The template url, should be a git repo"},
+ {Name: "-k", Description: "Key type to generate. It can either be `block-production` or `peering`"},
+ {Name: "--key-type", Description: "Print help information"},
+ {Name: "-s", Description: "Silent mode. Don't output any warnings or errors to the command line"},
+ {Name: "-f", Description: "Print help information"},
+ {Name: "-v", Description: "Use verbose output"},
+ {Name: "-L", Description: "Set the log level"},
+ },
+ })
+}
diff --git a/commands/sys/forge.go b/commands/sys/forge.go
new file mode 100644
index 0000000..c13b292
--- /dev/null
+++ b/commands/sys/forge.go
@@ -0,0 +1,53 @@
+package sys
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "forge",
+ Description: "A command line interface for managing Atlassian-hosted apps",
+ Subcommands: []core.Subcommand{
+ {Name: "autocomplete", Description: "Configures autocomplete for the Forge CLI"},
+ {Name: "create", Description: "Create an app"},
+ {Name: "deploy", Description: "Deploy your app to an environment"},
+ {Name: "feedback", Description: "Let us know what you think about Forge"},
+ {Name: "install", Description: "Manage app installations"},
+ {Name: "list", Description: "List app installations"},
+ {Name: "help", Description: "Display help for command"},
+ {Name: "lint", Description: "Check the source files for common errors"},
+ {Name: "login", Description: "Log in to your Atlassian account"},
+ {Name: "logout", Description: "Log out of your Atlassian account"},
+ {Name: "logs", Description: "View app logs"},
+ {Name: "providers", Description: "Manage external providers"},
+ {Name: "configure", Description: "Configure provider credentials"},
+ {Name: "register", Description: "Register an app you didn't create so you can run commands for it"},
+ {Name: "settings", Description: "Manage Forge CLI settings"},
+ {Name: "set", Description: "Update Forge CLI setting (choices: usage-analytics)"},
+ {Name: "uninstall", Description: "Uninstall the app from an Atlassian site"},
+ {Name: "variables", Description: "Manage app environment variables"},
+ {Name: "unset", Description: "Remove an environment variable"},
+ {Name: "webtrigger", Description: "Get a web trigger URL"},
+ {Name: "whoami", Description: "Display the account information of the logged in user"},
+ },
+ Options: []core.Option{
+ {Name: "--verbose", Description: "Enable verbose mode"},
+ {Name: "-h", Description: "Display help for command"},
+ {Name: "-t", Description: "Specify the template to use"},
+ {Name: "-d", Description: "Specify the directory to create (uses the template name by default)"},
+ {Name: "-f", Description: "Disable pre-deployment checks"},
+ {Name: "-e", Description: "Run the command without input prompts"},
+ {Name: "-p", Description: "Product (Jira, Confluence, Compass)"},
+ {Name: "--upgrade", Description: "Upgrade an existing installation"},
+ {Name: "--confirm-scopes", Description: "Skip confirmation of scopes for the app before installing or upgrading the app"},
+ {Name: "--non-interactive", Description: "Run the command without input prompts"},
+ {Name: "--fix", Description: "Attempt to automatically fix any issues encountered"},
+ {Name: "-u", Description: "Specify the email to use"},
+ {Name: "-n", Description: "Number of invocations to return"},
+ {Name: "-s", Description: "Group logs by invocation ID"},
+ {Name: "--encrypt", Description: "Encrypt variable"},
+ {Name: "-V", Description: "Output the version number"},
+ },
+ })
+}
diff --git a/commands/sys/fzf.go b/commands/sys/fzf.go
new file mode 100644
index 0000000..1d126f3
--- /dev/null
+++ b/commands/sys/fzf.go
@@ -0,0 +1,54 @@
+package sys
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "fzf",
+ Description: "A general-purpose command-line fuzzy finder",
+ Options: []core.Option{
+ {Name: "-x", Description: "Enables extended-search mode"},
+ {Name: "-e", Description: "Enables Exact-match"},
+ {Name: "--algo", Description: "Fuzzy matching algorithm"},
+ {Name: "-i", Description: "Case-insensitive match (default: smart-case match)"},
+ {Name: "--literal", Description: "Do not normalize latin script letters before matching"},
+ {Name: "-n", Description: "Comma-separated list of field index expressions for limiting search scope"},
+ {Name: "--with-nth", Description: "Transform the presentation of each line using field index expressions"},
+ {Name: "-d", Description: "Field delimiter regex (default: AWK-style)"},
+ {Name: "--tac", Description: "Reverse the order of the input"},
+ {Name: "--disabled", Description: "Do not perform search"},
+ {Name: "--tiebreak", Description: "Comma-separated list of sort criteria to apply when the scores are tied"},
+ {Name: "-m", Description: "Enable multi-select with tab/shift-tab"},
+ {Name: "--no-mouse", Description: "Disable mouse"},
+ {Name: "--bind", Description: "Custom key bindings. Refer to the man page"},
+ {Name: "--cycle", Description: "Enable cyclic scroll"},
+ {Name: "--keep-right", Description: "Keep the right end of the line visible on overflow"},
+ {Name: "--no-hscroll", Description: "Disable horizontal scroll"},
+ {Name: "--hscroll-off", Description: "Number of screen columns to keep to the right of the highlighted substring"},
+ {Name: "--filepath-word", Description: "Make word-wise movements respect path separators"},
+ {Name: "--jump-labels", Description: "Label characters for jump and jump-accept"},
+ {Name: "--height", Description: "Height[%]"},
+ {Name: "--min-height", Description: "Minimum height when --height is given in percent"},
+ {Name: "--layout", Description: "Choose layout"},
+ {Name: "--border", Description: "Draw border around the finder"},
+ {Name: "--margin", Description: "Screen margin (TRBL | TB,RL | T,RL,B | T,R,B,L)"},
+ {Name: "--padding", Description: "Padding inside border (TRBL | TB,RL | T,RL,B | T,R,B,L)"},
+ {Name: "--info", Description: "Finder info style"},
+ {Name: "--prompt", Description: "Input prompt"},
+ {Name: "--pointer", Description: "Pointer to the current line"},
+ {Name: "--marker", Description: "Multi-select marker"},
+ {Name: "--header", Description: "String to print as header"},
+ {Name: "--header-lines", Description: "The first N lines of the input are treated as header"},
+ {Name: "--ansi", Description: "Enable processing of ANSI color codes"},
+ {Name: "--tabstop", Description: "Number of spaces for a tab character"},
+ {Name: "--color", Description: "Base scheme"},
+ {Name: "--no-bold", Description: "Do not use bold text"},
+ {Name: "--history", Description: "History file"},
+ {Name: "--history-size", Description: "Maximum number of history entries"},
+ {Name: "--preview", Description: "Command to preview highlighted line ({})"},
+ {Name: "--preview-window", Description: "Preview window layout"},
+ },
+ })
+}
diff --git a/commands/sys/fzf_tmux.go b/commands/sys/fzf_tmux.go
new file mode 100644
index 0000000..5630de8
--- /dev/null
+++ b/commands/sys/fzf_tmux.go
@@ -0,0 +1,54 @@
+package sys
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "fzf-tmux",
+ Description: "Opens a fuzzy finder in a tmux pane",
+ Options: []core.Option{
+ {Name: "-x", Description: "Enables extended-search mode"},
+ {Name: "-e", Description: "Enables Exact-match"},
+ {Name: "--algo", Description: "Fuzzy matching algorithm"},
+ {Name: "-i", Description: "Case-insensitive match (default: smart-case match)"},
+ {Name: "--literal", Description: "Do not normalize latin script letters before matching"},
+ {Name: "-n", Description: "Comma-separated list of field index expressions for limiting search scope"},
+ {Name: "--with-nth", Description: "Transform the presentation of each line using field index expressions"},
+ {Name: "-d", Description: "Field delimiter regex (default: AWK-style)"},
+ {Name: "--tac", Description: "Reverse the order of the input"},
+ {Name: "--disabled", Description: "Do not perform search"},
+ {Name: "--tiebreak", Description: "Comma-separated list of sort criteria to apply when the scores are tied"},
+ {Name: "-m", Description: "Enable multi-select with tab/shift-tab"},
+ {Name: "--no-mouse", Description: "Disable mouse"},
+ {Name: "--bind", Description: "Custom key bindings. Refer to the man page"},
+ {Name: "--cycle", Description: "Enable cyclic scroll"},
+ {Name: "--keep-right", Description: "Keep the right end of the line visible on overflow"},
+ {Name: "--no-hscroll", Description: "Disable horizontal scroll"},
+ {Name: "--hscroll-off", Description: "Number of screen columns to keep to the right of the highlighted substring"},
+ {Name: "--filepath-word", Description: "Make word-wise movements respect path separators"},
+ {Name: "--jump-labels", Description: "Label characters for jump and jump-accept"},
+ {Name: "--height", Description: "Height[%]"},
+ {Name: "--min-height", Description: "Minimum height when --height is given in percent"},
+ {Name: "--layout", Description: "Choose layout"},
+ {Name: "--border", Description: "Draw border around the finder"},
+ {Name: "--margin", Description: "Screen margin (TRBL | TB,RL | T,RL,B | T,R,B,L)"},
+ {Name: "--padding", Description: "Padding inside border (TRBL | TB,RL | T,RL,B | T,R,B,L)"},
+ {Name: "--info", Description: "Finder info style"},
+ {Name: "--prompt", Description: "Input prompt"},
+ {Name: "--pointer", Description: "Pointer to the current line"},
+ {Name: "--marker", Description: "Multi-select marker"},
+ {Name: "--header", Description: "String to print as header"},
+ {Name: "--header-lines", Description: "The first N lines of the input are treated as header"},
+ {Name: "--ansi", Description: "Enable processing of ANSI color codes"},
+ {Name: "--tabstop", Description: "Number of spaces for a tab character"},
+ {Name: "--color", Description: "Base scheme"},
+ {Name: "--no-bold", Description: "Do not use bold text"},
+ {Name: "--history", Description: "History file"},
+ {Name: "--history-size", Description: "Maximum number of history entries"},
+ {Name: "--preview", Description: "Command to preview highlighted line ({})"},
+ {Name: "--preview-window", Description: "Preview window layout"},
+ },
+ })
+}
diff --git a/commands/sys/gltfjsx.go b/commands/sys/gltfjsx.go
new file mode 100644
index 0000000..943874f
--- /dev/null
+++ b/commands/sys/gltfjsx.go
@@ -0,0 +1,23 @@
+package sys
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "gltfjsx",
+ Description: "GLTF to JSX converter",
+ Options: []core.Option{
+ {Name: "-t", Description: "Add Typescript definitions"},
+ {Name: "-v", Description: "Verbose output w/ names and empty groups"},
+ {Name: "-m", Description: "Include metadata (as userData)"},
+ {Name: "-s", Description: "Let meshes cast and receive shadows"},
+ {Name: "-w", Description: "Prettier printWidth (default: 120)"},
+ {Name: "-p", Description: "Number of fractional digits (default: 2)"},
+ {Name: "-d", Description: "Draco binary path"},
+ {Name: "-r", Description: "Sets directory from which .gltf file is served"},
+ {Name: "-D", Description: "Debug output"},
+ },
+ })
+}
diff --git a/commands/sys/goto.go b/commands/sys/goto.go
new file mode 100644
index 0000000..b7c8682
--- /dev/null
+++ b/commands/sys/goto.go
@@ -0,0 +1,23 @@
+package sys
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "goto",
+ Description: "Goto",
+ Options: []core.Option{
+ {Name: "--help", Description: "Show help for goto"},
+ {Name: "--register", Description: "Registers an alias"},
+ {Name: "--unregister", Description: "Unregister an alias"},
+ {Name: "--push", Description: "Pushes the current directory onto the stack, then performs goto"},
+ {Name: "--pop", Description: "Pops the top directory from the stack, then changes to that directory"},
+ {Name: "--list", Description: "Pops the top directory from the stack, then changes to that directory"},
+ {Name: "--expand", Description: "Expands an alias"},
+ {Name: "--cleanup", Description: "Cleans up non existent directory aliases"},
+ {Name: "--version", Description: "Displays the version of the goto script"},
+ },
+ })
+}
diff --git a/commands/sys/gum.go b/commands/sys/gum.go
new file mode 100644
index 0000000..ce2c2b4
--- /dev/null
+++ b/commands/sys/gum.go
@@ -0,0 +1,73 @@
+package sys
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "gum",
+ Description: "Background Color",
+ Subcommands: []core.Subcommand{
+ {Name: "choose", Description: "Choose an option from a list of choices"},
+ {Name: "confirm", Description: "Ask a user to confirm an action"},
+ {Name: "prompt", Description: "Prompt to display"},
+ {Name: "filter", Description: "Filter items from a list"},
+ {Name: "format", Description: "Format a string using a template"},
+ {Name: "template", Description: "Template string to format"},
+ {Name: "input", Description: "Prompt for some input"},
+ {Name: "join", Description: "Join text vertically or horizontally"},
+ {Name: "text", Description: "Text to join"},
+ {Name: "spin", Description: "Display spinner while running a command"},
+ {Name: "style", Description: "Apply coloring, borders, spacing to text"},
+ {Name: "write", Description: "Prompt for long-form text"},
+ {Name: "file", Description: "Pick a file from a folder"},
+ {Name: "path", Description: "The path to the folder to begin traversing"},
+ {Name: "table", Description: "Render a table of data"},
+ {Name: "pager", Description: "Scroll through a file"},
+ {Name: "content", Description: "Display content to scroll"},
+ },
+ Options: []core.Option{
+ {Name: "--background", Description: "Background Color"},
+ {Name: "--foreground", Description: "Foreground Color"},
+ {Name: "--border", Description: "Border Style"},
+ {Name: "--border-background", Description: "Border Background Color"},
+ {Name: "--border-foreground", Description: "Border Foreground Color"},
+ {Name: "--align", Description: "Text Alignment"},
+ {Name: "--height", Description: "Text height"},
+ {Name: "--width", Description: "Text width"},
+ {Name: "--margin", Description: "Text margin"},
+ {Name: "--padding", Description: "Text padding"},
+ {Name: "--bold", Description: "Bold text"},
+ {Name: "--faint", Description: "Faint text"},
+ {Name: "--italic", Description: "Italicize text"},
+ {Name: "--strikethrough", Description: "Strikethrough text"},
+ {Name: "--underline", Description: "Underline text"},
+ {Name: "--cursor", Description: "Prefix to show on item that corresponds to the cursor position"},
+ {Name: "--cursor-prefix", Description: "Prefix to show on the cursor item"},
+ {Name: "--selected-prefix", Description: "Prefix to show on selected items"},
+ {Name: "--unselected-prefix", Description: "Prefix to show on unselected items"},
+ {Name: "--selected", Description: "Options that should start as selected"},
+ {Name: "--limit", Description: "Maximum number of options to pick"},
+ {Name: "--no-limit", Description: "Pick unlimited number of options (ignores limit)"},
+ {Name: "--affirmative", Description: "The title of the affirmative action"},
+ {Name: "--negative", Description: "The title of the negative action"},
+ {Name: "--default", Description: "Default confirmation action"},
+ {Name: "--timeout", Description: "Timeout for confirmation"},
+ {Name: "--indicator", Description: "Character for selection"},
+ {Name: "--placeholder", Description: "Placeholder value"},
+ {Name: "--prompt", Description: "Prompt to display"},
+ {Name: "--value", Description: "Initial filter"},
+ {Name: "--reverse", Description: "Display from the bottom of the screen"},
+ {Name: "--type", Description: "Format to use"},
+ {Name: "--char-limit", Description: "Maximum value length"},
+ {Name: "--password", Description: "Mask input characters"},
+ {Name: "--horizontal", Description: "Join (potentially multi-line) strings horizontally"},
+ {Name: "--vertical", Description: "Join (potentially multi-line) strings vertically"},
+ {Name: "--show-output", Description: "Show output of command"},
+ {Name: "--spinner", Description: "Spinner type"},
+ {Name: "--title", Description: "Text to display to user while spinning"},
+ {Name: "--show-cursor-line", Description: "Show cursor line"},
+ },
+ })
+}
diff --git a/commands/sys/herd.go b/commands/sys/herd.go
new file mode 100644
index 0000000..610efba
--- /dev/null
+++ b/commands/sys/herd.go
@@ -0,0 +1,41 @@
+package sys
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "herd",
+ Description: "Display this application version",
+ Subcommands: []core.Subcommand{
+ {Name: "phpVersion", Description: "The PHP version you want to use; e.g 8.1"},
+ {Name: "nodeVersion", Description: "The Node version you want to use; e.g 21"},
+ {Name: "links", Description: "Display all of the registered Herd links"},
+ {Name: "list", Description: "List commands"},
+ {Name: "namespace", Description: "The namespace name"},
+ {Name: "site", Description: "The site to get the PHP executable path for"},
+ },
+ Options: []core.Option{
+ {Name: "--help", Description: "Display this application version"},
+ {Name: "--quiet", Description: "Do not output any message"},
+ {Name: "--verbose", Description: "Force ANSI output"},
+ {Name: "--no-ansi", Description: "Disable ANSI output"},
+ {Name: "--no-interaction", Description: "Do not ask any interactive question"},
+ {Name: "--debug", Description: "Tail the completion debug log"},
+ {Name: "--path", Description: "Get the URL to the current share tunnel for Expose"},
+ {Name: "--format", Description: "Change the version of PHP used by Herd to serve the current working directory"},
+ {Name: "--site", Description: "Change the version of Node used by the CLI for the current working directory"},
+ {Name: "--secure", Description: "Link the site with a trusted TLS certificate"},
+ {Name: "--isolate", Description: "Isolate the site to the PHP version specified, for example 8.3"},
+ {Name: "--raw", Description: "To output raw command list"},
+ {Name: "--lines", Description: "Show the log viewer UI for the given site"},
+ {Name: "--sites", Description: "Get or set the loopback address used for Herd sites"},
+ {Name: "--json", Description: "Get all of the paths registered with Herd"},
+ {Name: "--expireIn", Description: "Secure the given domain with a trusted TLS certificate"},
+ {Name: "--expiring", Description: "Limits the results to only sites expiring within the next 60 days"},
+ {Name: "--days", Description: "Share the current site via an Expose tunnel"},
+ {Name: "--all", Description: "Change the version of PHP used by Herd"},
+ },
+ })
+}
diff --git a/commands/sys/hop.go b/commands/sys/hop.go
new file mode 100644
index 0000000..2be86b2
--- /dev/null
+++ b/commands/sys/hop.go
@@ -0,0 +1,40 @@
+package sys
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "hop",
+ Description: "Interact with Hop in your terminal",
+ Subcommands: []core.Subcommand{
+ {Name: "auth", Description: "Authenticate with Hop"},
+ {Name: "help", Description: "Prints this message or the help of the given subcommand(s)"},
+ {Name: "login", Description: "Login to Hop"},
+ {Name: "logout", Description: "Logout the current user"},
+ {Name: "deploy", Description: "Deploy a new container"},
+ {Name: "ignite", Description: "Interact with Ignite containers"},
+ {Name: "ls", Description: "List all deployments"},
+ {Name: "rm", Description: "Delete a deployment"},
+ {Name: "link", Description: "Link an existing deployment to a hopfile"},
+ {Name: "projects", Description: "Interact with projects"},
+ {Name: "info", Description: "Get information about a project"},
+ {Name: "new", Description: "Create a new project"},
+ {Name: "switch", Description: "Switch to a different project"},
+ {Name: "whoami", Description: "Get information about the current user"},
+ },
+ Options: []core.Option{
+ {Name: "--type", Description: "Type of the container, defaults to `ephemeral`"},
+ {Name: "--containers", Description: "Number of containers to use, defaults to 1 if `scaling` is manual"},
+ {Name: "--cpu", Description: "The number of CPUs to use, defaults to 1"},
+ {Name: "--env", Description: "Environment variables to set, in the form of KEY=VALUE"},
+ {Name: "--name", Description: "Name of the deployment, defaults to the directory name"},
+ {Name: "--project", Description: "Namespace or ID of the project to use"},
+ {Name: "--ram", Description: "Amount of RAM to use, defaults to 512MB"},
+ {Name: "--scaling", Description: "Scaling strategy, defaults to `manual`"},
+ {Name: "--help", Description: "Prints help information"},
+ {Name: "--version", Description: "Prints version information"},
+ },
+ })
+}
diff --git a/commands/sys/hostname.go b/commands/sys/hostname.go
new file mode 100644
index 0000000..e1c4571
--- /dev/null
+++ b/commands/sys/hostname.go
@@ -0,0 +1,17 @@
+package sys
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "hostname",
+ Description: "Set or print name of current host system",
+ Options: []core.Option{
+ {Name: "-f", Description: "Include domain information in the printed name"},
+ {Name: "-s", Description: "Trim off any domain information from the printed name"},
+ {Name: "-d", Description: "Only print domain information"},
+ },
+ })
+}
diff --git a/commands/sys/htop.go b/commands/sys/htop.go
new file mode 100644
index 0000000..d79daa3
--- /dev/null
+++ b/commands/sys/htop.go
@@ -0,0 +1,26 @@
+package sys
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "htop",
+ Description: "Improved top (interactive process viewer)",
+ Options: []core.Option{
+ {Name: "--help", Description: "Show help for htop"},
+ {Name: "--no-color", Description: "Use a monochrome color scheme"},
+ {Name: "--delay", Description: "Delay between updates, in tenths of sec"},
+ {Name: "--filter", Description: "Filter commands"},
+ {Name: "--highlight-changes", Description: "Highlight new and old processes"},
+ {Name: "--no-mouse", Description: "Disable the mouse"},
+ {Name: "--pid", Description: "Show only the given PIDs"},
+ {Name: "--sort-key", Description: "Sort by COLUMN in list view"},
+ {Name: "--tree", Description: "Show the tree view"},
+ {Name: "--user", Description: "Show only processes for a given user (or $USER)"},
+ {Name: "--no-unicode", Description: "Do not use unicode but plain ASCII"},
+ {Name: "--version", Description: "Print version info"},
+ },
+ })
+}
diff --git a/commands/sys/http.go b/commands/sys/http.go
new file mode 100644
index 0000000..6fd31d1
--- /dev/null
+++ b/commands/sys/http.go
@@ -0,0 +1,36 @@
+package sys
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "http",
+ Description: "HTTPie: command-line HTTP client for the API era",
+ Options: []core.Option{
+ {Name: "--json", Description: "Disables all sorting while formatting output"},
+ {Name: "--sorted", Description: "Re-enables all sorting options while formatting output"},
+ {Name: "--format-options", Description: "Controls output formatting"},
+ {Name: "--print", Description: "Request headers"},
+ {Name: "--headers", Description: "Print only the response headers. Shortcut for --print=h"},
+ {Name: "--body", Description: "Print only the response body. Shortcut for --print=b"},
+ {Name: "--verbose", Description: "Request headers"},
+ {Name: "--stream", Description: "Always stream the response body by line, i.e., behave like `tail -f'"},
+ {Name: "--output", Description: "Create or read a session without updating it form the request/response exchange"},
+ {Name: "--auth", Description: "Basic HTTP auth"},
+ {Name: "--ignore-netrc", Description: "Ignore credentials from .netrc"},
+ {Name: "--offline", Description: "Build the request and print it but donโt actually send it"},
+ {Name: "--proxy", Description: "Follow 30x Location redirects"},
+ {Name: "--max-redirects", Description: "By default, requests have a limit of 30 redirects (works with --follow)"},
+ {Name: "--max-headers", Description: "Bypass dot segment (/../ or /./) URL squashing"},
+ {Name: "--chunked", Description: "Enable streaming via chunked transfer encoding"},
+ {Name: "--verify", Description: "A string in the OpenSSL cipher list format"},
+ {Name: "--cert", Description: "Do not attempt to read stdin"},
+ {Name: "--help", Description: "Show the help message and exit"},
+ {Name: "--version", Description: "Show version and exit"},
+ {Name: "--traceback", Description: "Prints the exception traceback should one occur"},
+ {Name: "--default-scheme", Description: "The default scheme to use if not specified in the URL"},
+ },
+ })
+}
diff --git a/commands/sys/hyper.go b/commands/sys/hyper.go
new file mode 100644
index 0000000..ed7b04b
--- /dev/null
+++ b/commands/sys/hyper.go
@@ -0,0 +1,23 @@
+package sys
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "hyper",
+ Description: "Hyper is an Electron-based terminal",
+ Subcommands: []core.Subcommand{
+ {Name: "install", Description: "Install a plugin"},
+ {Name: "docs", Description: "Open the npm page of a plugin"},
+ {Name: "help", Description: "Display help"},
+ {Name: "list", Description: "List installed plugins"},
+ {Name: "list-remote", Description: "List plugins available on npm"},
+ {Name: "search", Description: "Search for plugins on npm"},
+ {Name: "uninstall", Description: "Uninstall plugin"},
+ {Name: "plugin", Description: "Plugin to uninstall"},
+ {Name: "version", Description: "Show version"},
+ },
+ })
+}
diff --git a/commands/sys/hyperfine.go b/commands/sys/hyperfine.go
new file mode 100644
index 0000000..c60660d
--- /dev/null
+++ b/commands/sys/hyperfine.go
@@ -0,0 +1,32 @@
+package sys
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "hyperfine",
+ Description: "A command-line benchmarking tool",
+ Options: []core.Option{
+ {Name: "--warmup", Description: "Perform warmupruns (number) before the actual benchmarking starts"},
+ {Name: "--min-runs", Description: "Perform at least NUM runs for each command"},
+ {Name: "--max-runs", Description: "Perform at most NUM runs for each command. Default: no limit"},
+ {Name: "--runs", Description: "Perform exactly NUM runs for each command"},
+ {Name: "--setup", Description: "Execute cmd once before each set of timing runs"},
+ {Name: "--prepare", Description: "Perform benchmark runs for each value in the range min..max"},
+ {Name: "--parameter-step-size", Description: "Perform benchmark runs for each value in the comma-separated list of values"},
+ {Name: "--style", Description: "Set output style type"},
+ {Name: "--shell", Description: "Set the shell to use for executing benchmarked commands"},
+ {Name: "--ignore-failure", Description: "Ignore non-zero exit codes of the benchmarked commands"},
+ {Name: "--time-unit", Description: "Set the time unit to use for the benchmark results"},
+ {Name: "--export-asciidoc", Description: "Export the timing summary statistics as an AsciiDoc table to the given file"},
+ {Name: "--export-csv", Description: "Export the timing summary statistics as CSV to the given file"},
+ {Name: "--export-json", Description: "Export the timing summary statistics as a Markdown table to the given file"},
+ {Name: "--show-output", Description: "Print the stdout and stderr of the benchmark instead of suppressing it"},
+ {Name: "--command-name", Description: "Identify a command with the given name"},
+ {Name: "--help", Description: "Prints help message"},
+ {Name: "--version", Description: "Shows version information"},
+ },
+ })
+}
diff --git a/commands/sys/ibus.go b/commands/sys/ibus.go
new file mode 100644
index 0000000..80cec71
--- /dev/null
+++ b/commands/sys/ibus.go
@@ -0,0 +1,26 @@
+package sys
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "ibus",
+ Description: "Set or get engine",
+ Subcommands: []core.Subcommand{
+ {Name: "engine", Description: "Set or get engine"},
+ {Name: "exit", Description: "Exit ibus-daemon"},
+ {Name: "list-engine", Description: "Show available engines"},
+ {Name: "watch", Description: "Not implemented"},
+ {Name: "version", Description: "Show version"},
+ {Name: "read-cache", Description: "Show the content of registry cache"},
+ {Name: "write-cache", Description: "Create registry cache"},
+ {Name: "address", Description: "Print the D-Bus address of ibus-daemon"},
+ {Name: "read-config", Description: "Show the configuration values"},
+ {Name: "reset-config", Description: "Reset the configuration values"},
+ {Name: "emoji", Description: "Save emoji on dialog to clipboard"},
+ {Name: "help", Description: "Show this information"},
+ },
+ })
+}
diff --git a/commands/sys/id.go b/commands/sys/id.go
new file mode 100644
index 0000000..c5e78b7
--- /dev/null
+++ b/commands/sys/id.go
@@ -0,0 +1,20 @@
+package sys
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "id",
+ Description: "Display the full name of the user",
+ Options: []core.Option{
+ {Name: "-A", Description: "Display the full name of the user"},
+ {Name: "-G", Description: "Display the MAC label of the current process"},
+ {Name: "-P", Description: "Display the id as a password file entry"},
+ {Name: "-g", Description: "Display the effective group ID as a number"},
+ {Name: "-n", Description: "Make the output human-readable"},
+ {Name: "-u", Description: "Display the effective user ID as a number"},
+ },
+ })
+}
diff --git a/commands/sys/ignite_cli.go b/commands/sys/ignite_cli.go
new file mode 100644
index 0000000..ff25293
--- /dev/null
+++ b/commands/sys/ignite_cli.go
@@ -0,0 +1,27 @@
+package sys
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "ignite-cli",
+ Description: "Output usage information",
+ Subcommands: []core.Subcommand{
+ {Name: "new", Description: "Create a new React Native app"},
+ {Name: "g", Description: "Generate components and other app features"},
+ {Name: "update", Description: "Update installed generators"},
+ {Name: "doctor", Description: "Check your environment & display versions of installed dependencies"},
+ },
+ Options: []core.Option{
+ {Name: "-h", Description: "Output usage information"},
+ {Name: "-v", Description: "Output the version number"},
+ {Name: "--expo", Description: "Use Expo"},
+ {Name: "--bundle", Description: "Set the bundle ID of the app"},
+ {Name: "--list", Description: "List installed generators"},
+ {Name: "--update", Description: "Update installed generators"},
+ {Name: "--all", Description: "Update all installed generators"},
+ },
+ })
+}
diff --git a/commands/sys/install.go b/commands/sys/install.go
new file mode 100644
index 0000000..6a28228
--- /dev/null
+++ b/commands/sys/install.go
@@ -0,0 +1,20 @@
+package sys
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "install",
+ Description: "Use suffix as the backup suffix if -b is given",
+ Options: []core.Option{
+ {Name: "-B", Description: "Use suffix as the backup suffix if -b is given"},
+ {Name: "-b", Description: "Create directories. Missing parent directories are created as required"},
+ {Name: "-f", Description: "Specify a group. A numeric GID is allowed"},
+ {Name: "-M", Description: "Disable all use of mmap(2)"},
+ {Name: "-m", Description: "Specify an owner. A numeric UID is allowed"},
+ {Name: "-p", Description: "Causes install to show when -C actually installs something"},
+ },
+ })
+}
diff --git a/commands/sys/join.go b/commands/sys/join.go
new file mode 100644
index 0000000..1691d0e
--- /dev/null
+++ b/commands/sys/join.go
@@ -0,0 +1,18 @@
+package sys
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "join",
+ Description: "The join utility performs an",
+ Options: []core.Option{
+ {Name: "-a", Description: "Replace empty output fields with string"},
+ {Name: "-o", Description: "Join on the field'th field of file1"},
+ {Name: "-2", Description: "Join on the field'th field of file2"},
+ {Name: "-j", Description: "Join on the field'th field of both file1 and file2"},
+ },
+ })
+}
diff --git a/commands/sys/julia.go b/commands/sys/julia.go
new file mode 100644
index 0000000..c74979f
--- /dev/null
+++ b/commands/sys/julia.go
@@ -0,0 +1,51 @@
+package sys
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "julia",
+ Description: "The Julia Programming Language",
+ Options: []core.Option{
+ {Name: "-v", Description: "Display version information"},
+ {Name: "-h", Description: "Print help message for julia (--help-hidden for more)"},
+ {Name: "--help-hidden", Description: "Uncommon options not shown by `-h`"},
+ {Name: "--project", Description: "Set given directory as the home project/environment"},
+ {Name: "-J", Description: "Start up with the given system image file"},
+ {Name: "-H", Description: "Set location of `julia` executable"},
+ {Name: "--startup-file", Description: "Load `~/.julia/config/startup.jl`"},
+ {Name: "--handle-signals", Description: "Enable or disable Julia's default signal handlers"},
+ {Name: "--sysimage-native-code", Description: "Use native code from system image if available"},
+ {Name: "--compiled-modules", Description: "Enable or disable incremental precompilation of modules"},
+ {Name: "-e", Description: "Evaluate given expr"},
+ {Name: "-E", Description: "Evaluate given expr and display the result"},
+ {Name: "-L", Description: "Load given file immediately on all processors"},
+ {Name: "-t", Description: "Number of threads"},
+ {Name: "-p", Description: "Number of additional local worker processes"},
+ {Name: "--machine-file", Description: "Run processes on hosts listed in given file"},
+ {Name: "-i", Description: "Interactive mode; REPL runs and isinteractive() is true"},
+ {Name: "-q", Description: "Quiet startup: no banner, suppress REPL warnings"},
+ {Name: "--banner", Description: "Enable or disable startup banner"},
+ {Name: "--color", Description: "Enable or disable color text"},
+ {Name: "--history-file", Description: "Load or save history"},
+ {Name: "--depwarn", Description: "Enable or disable method overwrite warnings"},
+ {Name: "--warn-scope", Description: "Enable or disable warning for ambiguous top-level scope"},
+ {Name: "-C", Description: "Level of optimization"},
+ {Name: "-g", Description: "Enable / Set the level of debug info generation"},
+ {Name: "--inline", Description: "Control whether inlining is permitted, including overriding @inline declarations"},
+ {Name: "--check-bounds", Description: "Emit bounds checks always, never, or respect @inbounds declarations"},
+ {Name: "--polly", Description: "Enable or disable the polyhedral optimizer Polly (overrides @polly declaration)"},
+ {Name: "--math-mode", Description: "Enable or disable JIT compiler, or request exhaustive or minimal compilation"},
+ {Name: "--output-o", Description: "Generate an object file (including system image data)"},
+ {Name: "--output-ji", Description: "Generate a system image data file (.ji)"},
+ {Name: "--output-unopt-bc", Description: "Generate unoptimized LLVM bitcode (.bc)"},
+ {Name: "--output-jit-bc", Description: "Dump all IR generated by the frontend (not including system image)"},
+ {Name: "--output-bc", Description: "Generate LLVM bitcode (.bc)"},
+ {Name: "--output-asm", Description: "Generate an assembly file (.s)"},
+ {Name: "--output-incremental", Description: "Generate an incremental output file (rather than complete)"},
+ {Name: "--image-codegen", Description: "Force generate code in imaging mode"},
+ },
+ })
+}
diff --git a/commands/sys/kafkactl.go b/commands/sys/kafkactl.go
new file mode 100644
index 0000000..de23ec1
--- /dev/null
+++ b/commands/sys/kafkactl.go
@@ -0,0 +1,83 @@
+package sys
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "kafkactl",
+ Description: "Command-line interface for Apache Kafka",
+ Subcommands: []core.Subcommand{
+ {Name: "edit", Description: "Alter topics, partitions"},
+ {Name: "partition", Description: "Alter a partition"},
+ {Name: "topic", Description: "Alter a topic"},
+ {Name: "attach", Description: "Run kafkactl pod in kubernetes and attach to it"},
+ {Name: "clone", Description: "Clone topics, consumerGroups"},
+ {Name: "cg", Description: "Clone existing consumerGroup with all offsets"},
+ {Name: "completion", Description: "Generate shell auto-completion file"},
+ {Name: "config", Description: "Show and edit configurations"},
+ {Name: "currentContext", Description: "Show current context"},
+ {Name: "getContexts", Description: "List configured contexts"},
+ {Name: "useContext", Description: "Switch active context"},
+ {Name: "view", Description: "Show contents of config file"},
+ {Name: "consume", Description: "Consume messages from a topic"},
+ {Name: "create", Description: "Create topics, consumerGroups, acls"},
+ {Name: "acl", Description: "Create an acl"},
+ {Name: "delete", Description: "Delete topics, consumerGroups, consumer-group-offset, acls"},
+ {Name: "consumer-groups", Description: "Delete a consumer-group"},
+ {Name: "cgo", Description: "Delete a consumer-group-offset"},
+ {Name: "describe", Description: "Describe topics, consumerGroups, brokers"},
+ {Name: "broker", Description: "Describe a broker"},
+ {Name: "list", Description: "Get info about topics, consumerGroups, acls, brokers"},
+ {Name: "brokers", Description: "List brokers"},
+ {Name: "topics", Description: "List available topics"},
+ {Name: "produce", Description: "Produce messages to a topic"},
+ {Name: "reset", Description: "Reset consumerGroupsOffset"},
+ {Name: "version", Description: "Print the version of kafkactl"},
+ {Name: "help", Description: "Help about any command"},
+ },
+ Options: []core.Option{
+ {Name: "--replicas", Description: "Set replicas for a partition"},
+ {Name: "--validate-only", Description: "Validate only"},
+ {Name: "--config", Description: "Configs in format `key=value`"},
+ {Name: "--partitions", Description: "Number of partitions"},
+ {Name: "--replication-factor", Description: "Replication factor"},
+ {Name: "--output", Description: "Output format. One of: compact"},
+ {Name: "--exit", Description: "Stop consuming when latest offset is reached"},
+ {Name: "--from-beginning", Description: "Set offset for consumer to the oldest offset"},
+ {Name: "--group", Description: "Consumer group to join"},
+ {Name: "--key-encoding", Description: "Key encoding (auto-detected by default). One of: none|hex|base64"},
+ {Name: "--key-proto-type", Description: "Key protobuf message type"},
+ {Name: "--max-messages", Description: "Stop consuming after n messages have been read"},
+ {Name: "--offset", Description: "Output format. One of: json|yaml"},
+ {Name: "--print-headers", Description: "Print message headers"},
+ {Name: "--print-keys", Description: "Print message keys"},
+ {Name: "--print-schema", Description: "Print details about avro schema used for decoding"},
+ {Name: "--print-timestamps", Description: "Print message timestamps"},
+ {Name: "--proto-file", Description: "Additional protobuf description file for searching message description"},
+ {Name: "--proto-import-path", Description: "Additional path to search files listed in proto 'import' directive"},
+ {Name: "--protoset-file", Description: "Additional compiled protobuf description file for searching message description"},
+ {Name: "--separator", Description: "Separator to split key and value"},
+ {Name: "--tail", Description: "Show only the last n messages on the topic"},
+ {Name: "--value-encoding", Description: "Value encoding (auto-detected by default). One of: none|hex|base64"},
+ {Name: "--value-proto-type", Description: "Value protobuf message type"},
+ {Name: "--allow", Description: "Acl of permissionType 'allow' (choose this or 'deny')"},
+ {Name: "--cluster", Description: "Create acl for the cluster"},
+ {Name: "--deny", Description: "Acl of permissionType 'deny' (choose this or 'allow')"},
+ {Name: "--host", Description: "Hosts to allow"},
+ {Name: "--operation", Description: "Operations of acl"},
+ {Name: "--pattern", Description: "Pattern type. one of (match, prefixed, literal)"},
+ {Name: "--principal", Description: "Principal to be authenticated"},
+ {Name: "--topic", Description: "Create acl for a topic"},
+ {Name: "--newest", Description: "Set the offset to newest offset (for all partitions or the specified partition)"},
+ {Name: "--oldest", Description: "Set the offset to oldest offset (for all partitions or the specified partition)"},
+ {Name: "--partition", Description: "Partition to create group for. -1 stands for all partitions"},
+ {Name: "--groups", Description: "Delete acl for a consumer group"},
+ {Name: "--topics", Description: "Delete acl for a topic"},
+ {Name: "--only-with-lag", Description: "Show only partitions that have a lag"},
+ {Name: "--print-members", Description: "Print group members"},
+ {Name: "--print-topics", Description: "Print topic details"},
+ },
+ })
+}
diff --git a/commands/sys/kamal.go b/commands/sys/kamal.go
new file mode 100644
index 0000000..2eebd48
--- /dev/null
+++ b/commands/sys/kamal.go
@@ -0,0 +1,48 @@
+package sys
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "kamal",
+ Description: "Skip image build and push",
+ Subcommands: []core.Subcommand{
+ {Name: "boot", Description: "Boot new accessory service on host (use NAME=all to boot all accessories)"},
+ {Name: "upload", Description: "Upload accessory files to host"},
+ {Name: "directories", Description: "Create accessory directories on host"},
+ {Name: "start", Description: "Start existing accessory container on host"},
+ {Name: "stop", Description: "Stop existing accessory container on host"},
+ {Name: "restart", Description: "Restart existing accessory container on host"},
+ {Name: "details", Description: "Show details about accessory on host (use NAME=all to show all accessories)"},
+ {Name: "exec", Description: "Execute a custom command on servers"},
+ {Name: "logs", Description: "Show log lines from accessory on host"},
+ {Name: "status", Description: "Show status of accessory on host"},
+ {Name: "remove", Description: "Remove accessory container, image and data directory from host"},
+ },
+ Options: []core.Option{
+ {Name: "-P", Description: "Skip image build and push"},
+ {Name: "--since", Description: "Number of lines to show from each server"},
+ {Name: "--grep", Description: "Show lines with grep match only (use this to fetch specific requests by id)"},
+ {Name: "--follow", Description: "Follow log on primary server (or specific host set by --hosts)"},
+ {Name: "--verbose", Description: "Detailed logging"},
+ {Name: "--quiet", Description: "Minimal logging"},
+ {Name: "--version", Description: "Run commands against a specific app version"},
+ {Name: "--primary", Description: "Run commands only on primary host instead of all"},
+ {Name: "--hosts", Description: "Run commands on these hosts instead of all (separate by comma)"},
+ {Name: "--roles", Description: "Run commands on these roles instead of all (separate by comma)"},
+ {Name: "--config_file", Description: "Path to config file"},
+ {Name: "-d", Description: "Specify destination to use"},
+ {Name: "--skip_hooks", Description: "Don't run hooks"},
+ {Name: "-i", Description: "Execute command over ssh for an interactive shell (use for console/bash)"},
+ {Name: "--reuse", Description: "Reuse currently running container instead of starting a new one"},
+ {Name: "-y", Description: "Proceed without confirmation question"},
+ {Name: "--interactive", Description: "Execute command over ssh for an interactive shell (use for console/bash)"},
+ {Name: "--stop", Description: "Stop the stale containers found"},
+ {Name: "--rolling", Description: "Start existing Traefik container on servers"},
+ {Name: "--json", Description: "Output as JSON"},
+ {Name: "--confirmed", Description: "Proceed without confirmation question"},
+ },
+ })
+}
diff --git a/commands/sys/kitty.go b/commands/sys/kitty.go
new file mode 100644
index 0000000..ea91379
--- /dev/null
+++ b/commands/sys/kitty.go
@@ -0,0 +1,57 @@
+package sys
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "kitty",
+ Description: "A cat like utility to display images in the terminal",
+ Subcommands: []core.Subcommand{
+ {Name: "close-tab", Description: "Close the specified tab(s)"},
+ {Name: "close-window", Description: "Close the specified window(s)"},
+ {Name: "detach-tab", Description: "Detach the specified tab"},
+ {Name: "detach-window", Description: "Detach the specified window"},
+ {Name: "disable-ligatures", Description: "Control ligature rendering for the specified windows/tabs"},
+ {Name: "env", Description: "Change the environment variables seen by processing in newly launched windows"},
+ {Name: "focus-tab", Description: "The active window in the specified tab will be focused"},
+ {Name: "get-colors", Description: "Get the terminal colors for the specified window"},
+ {Name: "set-tab-title", Description: "Set the title for the specified tab(s)"},
+ {Name: "set-window-title", Description: "Set the title of the specified window(s)"},
+ {Name: "signal-child", Description: "Send one or more signals to the foreground process in the specified window(s)"},
+ },
+ Options: []core.Option{
+ {Name: "--align", Description: "Horizontal alignment for the displayed image"},
+ {Name: "--place", Description: "Choose where on the screen to display the image"},
+ {Name: "--scale-up", Description: "Mirror the image about a horizontal or vertical axis or both"},
+ {Name: "--clear", Description: "Remove all images currently displayed on the screen"},
+ {Name: "--transfer-mode", Description: "Which mechanism to use to transfer images to the terminal"},
+ {Name: "--detect-support", Description: "Detect support for image display in the terminal"},
+ {Name: "--detection-timeout", Description: "How long to wait for detection to complete before aborting"},
+ {Name: "--print-window-size", Description: "Print the current terminal window size in pixels"},
+ {Name: "--stdin", Description: "Read an image from stdin"},
+ {Name: "-T", Description: "Set the OS window title"},
+ {Name: "-C", Description: "Specify a path to the configuration file(s) to use"},
+ {Name: "-o", Description: "Override individual configuration options"},
+ {Name: "-d", Description: "Change to the specified directory when launching"},
+ {Name: "--session", Description: "Path to a file containing the startup session"},
+ {Name: "--hold", Description: "Remain open after child process exits"},
+ {Name: "-1", Description: "Only a single instance of kitty will run"},
+ {Name: "--instance-group", Description: "Kitty will open a new window in an existing instance and quit immediately"},
+ {Name: "--listen-on", Description: "Tell kitty to listen on the specified address for control messages"},
+ {Name: "--start-as", Description: "Control how the initial kitty window is created"},
+ {Name: "-v", Description: "The current kitty version"},
+ {Name: "-h", Description: "Display this help message"},
+ {Name: "--to", Description: "An address for the kitty instance to control"},
+ {Name: "-m", Description: "The tab to match"},
+ {Name: "--self", Description: "Close the tab of the window this command is run in, rather than the active tab"},
+ {Name: "--target-group", Description: "Close the specified group of tabs"},
+ {Name: "-t", Description: "The tab to match"},
+ {Name: "-a", Description: "Disable in all windows"},
+ {Name: "--no-response", Description: "Don't wait for a response indicating the success of the action"},
+ {Name: "-c", Description: "The window to match"},
+ {Name: "--temporary", Description: "The title can be overwritten by escape sequences"},
+ },
+ })
+}
diff --git a/commands/sys/klist.go b/commands/sys/klist.go
new file mode 100644
index 0000000..f4dc372
--- /dev/null
+++ b/commands/sys/klist.go
@@ -0,0 +1,22 @@
+package sys
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "klist",
+ Description: "Credential cache to list",
+ Options: []core.Option{
+ {Name: "-c", Description: "Credential cache to list"},
+ {Name: "--cache", Description: "Credential cache to list"},
+ {Name: "-s", Description: "Display AFS tokens"},
+ {Name: "-5", Description: "Display v5 cred cache (this is the default)"},
+ {Name: "-f", Description: "Include ticket flags in short form, each character stands for a specific flag"},
+ {Name: "-v", Description: "Verbose output. Include all possible information"},
+ {Name: "-l", Description: "JSON formatted output"},
+ {Name: "--hidden", Description: "Verbose output"},
+ },
+ })
+}
diff --git a/commands/sys/kool.go b/commands/sys/kool.go
new file mode 100644
index 0000000..11f3bf7
--- /dev/null
+++ b/commands/sys/kool.go
@@ -0,0 +1,52 @@
+package sys
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "kool",
+ Description: "Script",
+ Subcommands: []core.Subcommand{
+ {Name: "create", Description: "Create a new project using a preset"},
+ {Name: "preset", Description: "Preset that will be used to create the project"},
+ {Name: "folder", Description: "Folder where the project will be created"},
+ {Name: "deploy", Description: "Deploy a local application to a Kool Cloud environment"},
+ {Name: "destroy", Description: "Destroy an environment deployed to Kool Cloud"},
+ {Name: "exec", Description: "Execute a command inside a running service container deployed to Kool Cloud"},
+ {Name: "logs", Description: "See the logs of running service container deployed to Kool Cloud"},
+ {Name: "docker", Description: "Create a new container (a powered up 'docker run')"},
+ {Name: "image", Description: "Docker image"},
+ {Name: "command", Description: "Command to execute inside the container"},
+ {Name: "service", Description: "Service you want to execute a command"},
+ {Name: "info", Description: "Print out information about the local environment"},
+ {Name: "recipe", Description: "Adds configuration for some recipe in the current work directory"},
+ {Name: "run", Description: "Execute a script defined in kool.yml"},
+ {Name: "script", Description: "Script to be executed"},
+ {Name: "self-update", Description: "Update kool to the latest version"},
+ {Name: "share", Description: "Live share your local environment on the Internet using an HTTP tunnel"},
+ {Name: "start", Description: "Start service containers defined in docker-compose.yml"},
+ {Name: "status", Description: "Show the status of all service containers"},
+ {Name: "stop", Description: "Stop and destroy running service containers"},
+ },
+ Options: []core.Option{
+ {Name: "--verbose", Description: "Increases output verbosity"},
+ {Name: "--help", Description: "Help for create"},
+ {Name: "--container", Description: "Container target"},
+ {Name: "--follow", Description: "Follow log output"},
+ {Name: "--tail", Description: "Help for logs"},
+ {Name: "--env", Description: "Environment variables"},
+ {Name: "--network", Description: "Connect a container to a network"},
+ {Name: "--publish", Description: "Publish a container's port(s) to the host"},
+ {Name: "--volume", Description: "Bind mount a volume"},
+ {Name: "--detach", Description: "Detached mode: Run command in the background"},
+ {Name: "--purge", Description: "Remove all persistent data from volume mounts on containers"},
+ {Name: "--rebuild", Description: "Updates and builds service's images"},
+ {Name: "--port", Description: "The name of the local service container you want to share"},
+ {Name: "--subdomain", Description: "The subdomain used to generate your public https://subdomain.kool.live URL"},
+ {Name: "--foreground", Description: "Start containers in foreground mode"},
+ {Name: "--profile", Description: "Specify a profile to enable"},
+ },
+ })
+}
diff --git a/commands/sys/launchctl.go b/commands/sys/launchctl.go
new file mode 100644
index 0000000..dda6023
--- /dev/null
+++ b/commands/sys/launchctl.go
@@ -0,0 +1,88 @@
+package sys
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "launchctl",
+ Description: "Service or domain target",
+ Subcommands: []core.Subcommand{
+ {Name: "bootstrap", Description: "Bootstraps a domain or a service into a domain"},
+ {Name: "bootout", Description: "Tears down a domain or removes a service from a domain"},
+ {Name: "enable", Description: "Enables an existing service"},
+ {Name: "disable", Description: "Disables an existing service"},
+ {Name: "kickstart", Description: "Forces an existing service to start"},
+ {Name: "attach", Description: "Attach the system's debugger to a service"},
+ {Name: "debug", Description: "Configures the next invocation of a service for debugging"},
+ {Name: "argv", Description: "Variable args: argv0 argv1"},
+ {Name: "kill", Description: "Sends a signal to the service instance"},
+ {Name: "signal", Description: "Specify signal-name or signal-number"},
+ {Name: "blame", Description: "Prints the reason a service is running"},
+ {Name: "print", Description: "Prints a description of a domain or service"},
+ {Name: "print-cache", Description: "Prints information about the service cache"},
+ {Name: "print-disabled", Description: "Prints which services are disabled"},
+ {Name: "plist", Description: "Prints a property list embedded in a binary (targets the Info.plist by default)"},
+ {Name: "segment", Description: "Segment or section"},
+ {Name: "procinfo", Description: "Prints port information about a process"},
+ {Name: "hostinfo", Description: "Prints port information about the host"},
+ {Name: "resolveport", Description: "Resolves a port name from a process to an endpoint in launchd"},
+ {Name: "limit", Description: "Reads or modifies launchd's resource limits"},
+ {Name: "runstats", Description: "Prints performance statistics for a service"},
+ {Name: "examine", Description: "Runs the specified analysis tool against launchd in a non-re-entrant manner"},
+ {Name: "config", Description: "Modifies persistent configuration parameters for launchd domains"},
+ {Name: "param", Description: "A key for a key/value pair"},
+ {Name: "value", Description: "A value for a key/value pair"},
+ {Name: "dumpstate", Description: "Dumps launchd state to stdout"},
+ {Name: "dumpjpcategory", Description: "Dumps the jetsam properties category for all services"},
+ {Name: "reboot", Description: "Initiates a system reboot of the specified type"},
+ {Name: "remove", Description: "Unloads the specified service name"},
+ {Name: "list", Description: "Lists information about services"},
+ {Name: "start", Description: "Starts the specified service"},
+ {Name: "stop", Description: "Stops the specified service if it is running"},
+ {Name: "setenv", Description: "Sets the specified environment variables for all services within the domain"},
+ {Name: "unsetenv", Description: "Unsets the specified environment variables for all services within the domain"},
+ {Name: "getenv", Description: "Gets the value of an environment variable from within launchd"},
+ {Name: "bsexec", Description: "Execute a program in another process' bootstrap context"},
+ {Name: "asuser", Description: "Execute a program in the bootstrap context of a given user"},
+ {Name: "submit", Description: "Submit a basic job from the command line"},
+ {Name: "label", Description: "Unique label to assign to launchd"},
+ {Name: "command", Description: "Command to run"},
+ {Name: "managerpid", Description: "Prints the PID of the launchd controlling the session"},
+ {Name: "manageruid", Description: "Prints the UID of the current launchd session"},
+ {Name: "managername", Description: "Prints the name of the current launchd session"},
+ {Name: "error", Description: "Prints a description of an error"},
+ {Name: "type", Description: "Error domain type"},
+ {Name: "code", Description: "Numeric code"},
+ {Name: "variant", Description: "Prints the launchd variant"},
+ {Name: "version", Description: "Prints the launchd version"},
+ {Name: "help", Description: "Prints the usage for a given subcommand"},
+ },
+ Options: []core.Option{
+ {Name: "-w", Description: "Enable if disabled"},
+ {Name: "-F", Description: "Force load"},
+ {Name: "-S", Description: "Session"},
+ {Name: "-D", Description: "Load files from specified domain"},
+ {Name: "-k", Description: "Kill instance before restarting"},
+ {Name: "-p", Description: "Print PID"},
+ {Name: "-s", Description: "Force the service to start"},
+ {Name: "-x", Description: "Attach xpcproxy"},
+ {Name: "--program", Description: "Use program path as executable"},
+ {Name: "--guard-malloc", Description: "Turn on libgmalloc"},
+ {Name: "--malloc-stack-logging", Description: "Turn on malloc(3) stack logging"},
+ {Name: "--malloc-nano-allocator", Description: "Turn on malloc(3) nano allocator"},
+ {Name: "--debug-libraries", Description: "Set the DYLD_IMAGE_SUFFIX"},
+ {Name: "--introspection-libraries", Description: "Add introspection libraries to the DYLD_IMAGE_PATH"},
+ {Name: "--NSZombie", Description: "Enables NSZombie"},
+ {Name: "--32", Description: "Runs service on appropriate 32-bit architecture"},
+ {Name: "--stdin", Description: "Sets the stdin path"},
+ {Name: "--stdout", Description: "Sets the stdout path"},
+ {Name: "--stderr", Description: "Sets the stderr path"},
+ {Name: "--environment", Description: "Sets environment variables"},
+ {Name: "-o", Description: "Std out path"},
+ {Name: "-e", Description: "Std err path"},
+ {Name: "-l", Description: "Label flag"},
+ },
+ })
+}
diff --git a/commands/sys/leaf.go b/commands/sys/leaf.go
new file mode 100644
index 0000000..b055bf9
--- /dev/null
+++ b/commands/sys/leaf.go
@@ -0,0 +1,41 @@
+package sys
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "leaf",
+ Description: "Create and interact with your leaf projects",
+ Subcommands: []core.Subcommand{
+ {Name: "completion", Description: "Dump the shell completion script"},
+ {Name: "create", Description: "[init] Create a new Leaf PHP project"},
+ {Name: "project name", Description: "Name of the project"},
+ {Name: "deploy", Description: "[publish] Deploy your leaf project"},
+ {Name: "help", Description: "Display help for a command"},
+ {Name: "install", Description: "Add a new package to your leaf app"},
+ {Name: "package name", Description: "Name of the package"},
+ {Name: "interact", Description: "Interact with your application"},
+ {Name: "list", Description: "List commands"},
+ {Name: "run", Description: "Run a script in your composer.json"},
+ {Name: "command name", Description: "Name of the command"},
+ {Name: "serve", Description: "Run your Leaf app"},
+ {Name: "port number", Description: "The port number to run the server on"},
+ {Name: "test", Description: "Test your leaf application through leaf alchemy"},
+ {Name: "test:setup", Description: "Add tests to your application"},
+ {Name: "uninstall", Description: "Uninstall a package"},
+ {Name: "update", Description: "Update leaf cli to the latest version"},
+ },
+ Options: []core.Option{
+ {Name: "-h", Description: "Do not output any message"},
+ {Name: "-V", Description: "Display this application version"},
+ {Name: "--ansi", Description: "Force ANSI output"},
+ {Name: "--no-ansi", Description: "Disable ANSI output"},
+ {Name: "-n", Description: "Do not ask any interactive question"},
+ {Name: "-v", Description: "Dump the shell completion script"},
+ {Name: "--port", Description: "The port number to run the server on"},
+ {Name: "--watch", Description: "Watch for changes and restart the server"},
+ },
+ })
+}
diff --git a/commands/sys/lima.go b/commands/sys/lima.go
new file mode 100644
index 0000000..add9722
--- /dev/null
+++ b/commands/sys/lima.go
@@ -0,0 +1,15 @@
+package sys
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "lima",
+ Description: "Lima is an alias for",
+ Options: []core.Option{
+ {Name: "-h", Description: "Help for lima"},
+ },
+ })
+}
diff --git a/commands/sys/login.go b/commands/sys/login.go
new file mode 100644
index 0000000..d545a2b
--- /dev/null
+++ b/commands/sys/login.go
@@ -0,0 +1,18 @@
+package sys
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "login",
+ Description: "Begin session on the system",
+ Options: []core.Option{
+ {Name: "-p", Description: "Preserve environment"},
+ {Name: "-r", Description: "Perform autologin protocol for rlogin"},
+ {Name: "-h", Description: "Specify host"},
+ {Name: "-f", Description: "Don't authenticate user, user is preauthenticated"},
+ },
+ })
+}
diff --git a/commands/sys/lsblk.go b/commands/sys/lsblk.go
new file mode 100644
index 0000000..e70e66f
--- /dev/null
+++ b/commands/sys/lsblk.go
@@ -0,0 +1,39 @@
+package sys
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "lsblk",
+ Description: "List block devices",
+ Options: []core.Option{
+ {Name: "--help", Description: "Show help for lsblk"},
+ {Name: "--version", Description: "Show version for lsblk"},
+ {Name: "--all", Description: "Also list empty devices and RAM disk devices"},
+ {Name: "--bytes", Description: "Print the SIZE column in bytes"},
+ {Name: "--discard", Description: "Do not print holder devices or slaves"},
+ {Name: "--dedup", Description: "Use column as a de-duplication key to de-duplicate output tree"},
+ {Name: "--exclude", Description: "Output info about filesystems"},
+ {Name: "--include", Description: "Include devices specified by the comma-separated list of major device numbers"},
+ {Name: "--ascii", Description: "Use ASCII characters for tree formatting"},
+ {Name: "--json", Description: "Use JSON output format"},
+ {Name: "--list", Description: "Produce output in the form of a list"},
+ {Name: "--merge", Description: "Output info about device owner, group and mode"},
+ {Name: "--noheadings", Description: "Do not print a header line"},
+ {Name: "--output", Description: "Specify which output columns to print"},
+ {Name: "--output-all", Description: "Output all available columns"},
+ {Name: "--pairs", Description: "Produce output in the form of key-value pairs"},
+ {Name: "--raw", Description: "Produce output in raw format"},
+ {Name: "--scsi", Description: "Output info about SCSI devices only"},
+ {Name: "--inverse", Description: "Print dependencies in inverse order"},
+ {Name: "--tree", Description: "Force tree-like output format"},
+ {Name: "--topology", Description: "Output info about block-device topology"},
+ {Name: "--width", Description: "Specifies output width as a number of characters"},
+ {Name: "--sort", Description: "Sort output lines by column"},
+ {Name: "--zoned", Description: "Print the zone model for each device"},
+ {Name: "--sysroot", Description: "Device to list"},
+ },
+ })
+}
diff --git a/commands/sys/lsof.go b/commands/sys/lsof.go
new file mode 100644
index 0000000..721e3df
--- /dev/null
+++ b/commands/sys/lsof.go
@@ -0,0 +1,45 @@
+package sys
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "lsof",
+ Description: "List open files",
+ Options: []core.Option{
+ {Name: "-?", Description: "Help"},
+ {Name: "-a", Description: "Apply AND to the selections (defaults to OR)"},
+ {Name: "-b", Description: "Avoid kernel blocks"},
+ {Name: "-c", Description: "Select the listing of files for processes executing a command"},
+ {Name: "-d", Description: "Search tree for all open instances/files/directories of directory. *SLOW?*"},
+ {Name: "-f", Description: "Inhibit path name arguments to be interpreted"},
+ {Name: "-F", Description: "Select fields to output"},
+ {Name: "-g", Description: "Exclude or select by process group IDs (PGID)"},
+ {Name: "-i", Description: "Selects files by [46][protocol][@hostname|hostaddr][:service|port]"},
+ {Name: "-l", Description: "Inhibit conversion of user IDs to login names"},
+ {Name: "-L", Description: "Disable listing of file link counts"},
+ {Name: "-M", Description: "Disable portMap registration"},
+ {Name: "-n", Description: "No host names"},
+ {Name: "-N", Description: "Select NFS files"},
+ {Name: "-o", Description: "List file offset"},
+ {Name: "-O", Description: "No overhead *RISKY*"},
+ {Name: "-p", Description: "Exclude or select process identification numbers (PIDs)"},
+ {Name: "-P", Description: "No port names"},
+ {Name: "-r", Description: "Repeat every t seconds (15) forever"},
+ {Name: "-R", Description: "List parent PID"},
+ {Name: "-s", Description: "List file size or exclude/select protocol"},
+ {Name: "-S", Description: "Stat timeout in seconds (lstat/readlink/stat)"},
+ {Name: "-T", Description: "Disable TCP/TPI info"},
+ {Name: "-t", Description: "Specify terse listing"},
+ {Name: "-u", Description: "Exclude/select login|UID set"},
+ {Name: "-U", Description: "Select Unix socket"},
+ {Name: "-v", Description: "List version info"},
+ {Name: "-V", Description: "Verbose search"},
+ {Name: "-w", Description: "Disable warnings"},
+ {Name: "-x", Description: "Cross over +d|+D File systems or symbolic links"},
+ {Name: "-X", Description: "File descriptor table only"},
+ },
+ })
+}
diff --git a/commands/sys/man.go b/commands/sys/man.go
new file mode 100644
index 0000000..f39e85b
--- /dev/null
+++ b/commands/sys/man.go
@@ -0,0 +1,34 @@
+package sys
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "man",
+ Description: "Format and display manual pages",
+ Options: []core.Option{
+ {Name: "-C", Description: "Specify the configuration file to use"},
+ {Name: "-M", Description: "Specify the list of directories to search (colon separated)"},
+ {Name: "-P", Description: "Specify the pager program"},
+ {Name: "-B", Description: "Specify which browser to use for HTML files"},
+ {Name: "-H", Description: "Specify a command that renders HTML files as text"},
+ {Name: "-S", Description: "Specify a colon-separated list of manual sections to search"},
+ {Name: "-a", Description: "Open every matching page instead of just the first"},
+ {Name: "-c", Description: "Reformat the source page, even when an up-to-date cat-page exists"},
+ {Name: "-d", Description: "Don't actually display the pages (dry run)"},
+ {Name: "-D", Description: "Both display and print debugging info"},
+ {Name: "-f", Description: "Equivalent to `whatis`"},
+ {Name: "-F", Description: "Format only, do not display"},
+ {Name: "-h", Description: "Print a help message and exit"},
+ {Name: "-k", Description: "Equivalent to apropos"},
+ {Name: "-K", Description: "Search for a given string in all pages"},
+ {Name: "-m", Description: "Specify an alternate set of pages to search based on the system name given"},
+ {Name: "-p", Description: "Specify the sequence of preprocessors to run before nroff or troff"},
+ {Name: "-t", Description: "Use `/usr/bin/groff -Tps -mandoc -c` to format the page"},
+ {Name: "-w", Description: "Print the location of files that would be displayed"},
+ {Name: "-W", Description: "Print file locations, one per line"},
+ },
+ })
+}
diff --git a/commands/sys/meroxa.go b/commands/sys/meroxa.go
new file mode 100644
index 0000000..d0824d7
--- /dev/null
+++ b/commands/sys/meroxa.go
@@ -0,0 +1,85 @@
+package sys
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "meroxa",
+ Description: "The Meroxa CLI",
+ Subcommands: []core.Subcommand{
+ {Name: "accounts", Description: "Manage Meroxa Accounts"},
+ {Name: "ls", Description: "List Meroxa Accounts"},
+ {Name: "set", Description: "Set active account"},
+ {Name: "api", Description: "Invoke Meroxa API"},
+ {Name: "app", Description: "Manage Turbine Data Applications"},
+ {Name: "deploy", Description: "Deploy a Turbine Data Application"},
+ {Name: "describe", Description: "Describe a Turbine Data Application"},
+ {Name: "init", Description: "Initialize a Turbine Data Application"},
+ {Name: "log", Description: "View relevant logs to the state of the given Turbine Data Application"},
+ {Name: "open", Description: "Open the link to a Turbine Data Application in the Dashboard"},
+ {Name: "rm", Description: "Remove a Turbine Data Application"},
+ {Name: "run", Description: "Execute a Turbine Data Application locally"},
+ {Name: "upgrade", Description: "Upgrade a Turbine Data Application"},
+ {Name: "auth", Description: "Authentication commands for Meroxa"},
+ {Name: "login", Description: "Login or Sign up to the Meroxa Platform"},
+ {Name: "logout", Description: "Clears local login credentials of the Meroxa Platform"},
+ {Name: "whoami", Description: "Display the current logged in user"},
+ {Name: "billing", Description: "Open your billing page in a web browser"},
+ {Name: "build", Description: "Inspect Process Builds on Meroxa"},
+ {Name: "completion", Description: "Generate completion script"},
+ {Name: "cfg", Description: "Manage your Meroxa CLI configuration"},
+ {Name: "env", Description: "Manage environments on Meroxa"},
+ {Name: "create", Description: "Create an environment"},
+ {Name: "repair", Description: "Repair environment"},
+ {Name: "update", Description: "Update an environment"},
+ {Name: "resource", Description: "Manage resources on Meroxa"},
+ {Name: "add", Description: "Add a resource to your Meroxa resource catalog"},
+ {Name: "rotate-tunnel-key", Description: "Rotate the tunnel key for a resource"},
+ {Name: "validate", Description: "Validate a resource"},
+ {Name: "transform", Description: "Manage transforms on Meroxa"},
+ {Name: "version", Description: "Display the Meroxa CLI version"},
+ {Name: "help", Description: "Help about any command"},
+ },
+ Options: []core.Option{
+ {Name: "--no-headers", Description: "Display output without headers"},
+ {Name: "--docker-hub-access-token", Description: "DockerHub access token to use to build and deploy the app"},
+ {Name: "--docker-hub-username", Description: "DockerHub username to use to build and deploy the app"},
+ {Name: "--env", Description: "Environment (name or UUID) where application will be deployed to"},
+ {Name: "--path", Description: "Path to the app directory (default is local directory)"},
+ {Name: "--skip-collection-validation", Description: "Skips unique destination collection and looping validations"},
+ {Name: "--spec", Description: "Deployment specification version to use to build and deploy the app"},
+ {Name: "--verbose", Description: "Prints more logging messages"},
+ {Name: "--lang", Description: "Language to use (js|go|py) (required)"},
+ {Name: "--mod-vendor", Description: "Path where application will be initialized (current directory as default)"},
+ {Name: "--skip-mod-init", Description: "Whether to run 'go mod init' while initializing a Go application"},
+ {Name: "--force", Description: "Skip confirmation"},
+ {Name: "--config", Description: "Environment cloud provider to use"},
+ {Name: "--region", Description: "Environment region"},
+ {Name: "--type", Description: "Environment type, when not specified"},
+ {Name: "--yes", Description: "Skip confirmation prompt"},
+ {Name: "--yolo", Description: "Skip confirmation"},
+ {Name: "--ca-cert", Description: "Trusted certificates for verifying resource"},
+ {Name: "--client-cert", Description: "Client certificate for authenticating to the resource"},
+ {Name: "--client-key", Description: "Client private key for authenticating to the resource"},
+ {Name: "--metadata", Description: "Resource metadata"},
+ {Name: "--password", Description: "Password"},
+ {Name: "--private-key-file", Description: "Path to private key file"},
+ {Name: "--ssh-private-key", Description: "SSH tunneling private key"},
+ {Name: "--ssh-url", Description: "SSH tunneling address"},
+ {Name: "--ssl", Description: "Use SSL"},
+ {Name: "--token", Description: "API Token"},
+ {Name: "--url", Description: "Resource url"},
+ {Name: "--username", Description: "Username"},
+ {Name: "--types", Description: "List resource types"},
+ {Name: "--name", Description: "New resource name"},
+ {Name: "--api-url", Description: "API url"},
+ {Name: "--cli-config-file", Description: "Meroxa configuration file"},
+ {Name: "--debug", Description: "Display any debugging information"},
+ {Name: "--json", Description: "Output json"},
+ {Name: "--timeout", Description: "Set the duration of the client timeout in seconds"},
+ {Name: "--help", Description: "Display help"},
+ },
+ })
+}
diff --git a/commands/sys/mkdocs.go b/commands/sys/mkdocs.go
new file mode 100644
index 0000000..6af66cc
--- /dev/null
+++ b/commands/sys/mkdocs.go
@@ -0,0 +1,39 @@
+package sys
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "mkdocs",
+ Description: "Project documentation with Markdown",
+ Subcommands: []core.Subcommand{
+ {Name: "build", Description: "Build the MkDocs documentation"},
+ {Name: "gh-deploy", Description: "Deploy your documentation to GitHub Pages"},
+ {Name: "new", Description: "Create a new MkDocs project"},
+ {Name: "serve", Description: "Run the builtin development server"},
+ },
+ Options: []core.Option{
+ {Name: "-h", Description: "Provide a specific MkDocs config"},
+ {Name: "-s", Description: "Enable strict mode. This will cause MkDocs to abort the build on any warnings"},
+ {Name: "-t", Description: "The theme to use when building your documentation"},
+ {Name: "--use-directory-urls", Description: "Use directory URLs when building pages (the default)"},
+ {Name: "--no-directory-urls", Description: "Don't use directory URLs when building pages"},
+ {Name: "-q", Description: "Silence warnings"},
+ {Name: "-v", Description: "Enable verbose output"},
+ {Name: "-c", Description: "Remove old files from the site directory before building (the default)"},
+ {Name: "--dirty", Description: "Only rebuild pages that have been modified since last build"},
+ {Name: "-d", Description: "The directory to output the result of the documentation build"},
+ {Name: "-m", Description: "Force the push to the repository"},
+ {Name: "--no-history", Description: "Replace the whole Git history with one new commit"},
+ {Name: "--ignore-version", Description: "Ignore check that build is not being deployed with an older version of MkDocs"},
+ {Name: "--shell", Description: "Use the shell when invoking Git"},
+ {Name: "-a", Description: "IP address and port to serve documentation locally (default: localhost:8000)"},
+ {Name: "--live-reload", Description: "Enable the live reloading in the development server (this is the default)"},
+ {Name: "--no-reload", Description: "Disable the live reloading in the development server"},
+ {Name: "--dirtyreload", Description: "A directory or file to watch for live reloading. Can be supplied multiple times"},
+ {Name: "-V", Description: "Show the version and exit"},
+ },
+ })
+}
diff --git a/commands/sys/mkfifo.go b/commands/sys/mkfifo.go
new file mode 100644
index 0000000..3dacd92
--- /dev/null
+++ b/commands/sys/mkfifo.go
@@ -0,0 +1,15 @@
+package sys
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "mkfifo",
+ Description: "Make FIFOs (first-in, first-out)",
+ Options: []core.Option{
+ {Name: "-m", Description: "FIFO(s) to create"},
+ },
+ })
+}
diff --git a/commands/sys/mkinitcpio.go b/commands/sys/mkinitcpio.go
new file mode 100644
index 0000000..c12ce21
--- /dev/null
+++ b/commands/sys/mkinitcpio.go
@@ -0,0 +1,40 @@
+package sys
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "mkinitcpio",
+ Description: "Create an initial ramdisk environment",
+ Options: []core.Option{
+ {Name: "--help", Description: "Show help for mkinitcpio"},
+ {Name: "--version", Description: "Display version information"},
+ {Name: "--addhooks", Description: "Add additional hooks to the image"},
+ {Name: "--config", Description: "Use config file to generate the ramdisk"},
+ {Name: "--generatedir", Description: "Set directory as the location where the initramfs is built"},
+ {Name: "--hookdir", Description: "Generate a CPIO image as filename"},
+ {Name: "--hookhelp", Description: "Output help for hookname"},
+ {Name: "--kernel", Description: "Use kernelversion, instead of the current running kernel"},
+ {Name: "--listhooks", Description: "List all available hooks"},
+ {Name: "--automods", Description: "Display modules found via autodetection"},
+ {Name: "--nocolor", Description: "Disable color output"},
+ {Name: "--uefi", Description: "Generate a UEFI executable as filename"},
+ {Name: "--allpresets", Description: "Process all presets contained in /etc/mkinitcpio.d"},
+ {Name: "--preset", Description: "Build initramfs image(s) according to specified preset"},
+ {Name: "--moduleroot", Description: "Specifies the root directory to find modules in"},
+ {Name: "--skiphooks", Description: "Skip hooks when generating the image"},
+ {Name: "--save", Description: "Saves the build directory for the initial ramdisk"},
+ {Name: "--builddir", Description: "Use tmpdir as the temporary build directory instead of /tmp"},
+ {Name: "--verbose", Description: "Verbose output"},
+ {Name: "--compress", Description: "Override the compression method with the compress program"},
+ {Name: "--cmdline", Description: "Use kernel command line with UEFI executable"},
+ {Name: "--splash", Description: "UEFI executables can show a bitmap file on boot"},
+ {Name: "--uefistub", Description: "UEFI stub image used for UEFI executable generation"},
+ {Name: "--kernelimage", Description: "Include a kernel image for the UEFI executable"},
+ {Name: "--microcode", Description: "Include microcode into the UEFI executable"},
+ {Name: "--osrelease", Description: "Include a os-release file for the UEFI executable"},
+ },
+ })
+}
diff --git a/commands/sys/mknod.go b/commands/sys/mknod.go
new file mode 100644
index 0000000..9579d43
--- /dev/null
+++ b/commands/sys/mknod.go
@@ -0,0 +1,19 @@
+package sys
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "mknod",
+ Description: "Create device special file",
+ Subcommands: []core.Subcommand{
+ {Name: "c", Description: "Create (c)haracter device"},
+ {Name: "b", Description: "Create (b)lock device"},
+ },
+ Options: []core.Option{
+ {Name: "-F", Description: "Format"},
+ },
+ })
+}
diff --git a/commands/sys/mosh.go b/commands/sys/mosh.go
new file mode 100644
index 0000000..e8a27d1
--- /dev/null
+++ b/commands/sys/mosh.go
@@ -0,0 +1,25 @@
+package sys
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "mosh",
+ Description: "Address of remote machine to log into",
+ Options: []core.Option{
+ {Name: "--help", Description: "Show help for mosh"},
+ {Name: "--client", Description: "Local echo options"},
+ {Name: "-4", Description: "Use IPv4 only"},
+ {Name: "-6", Description: "Use IPv6 only"},
+ {Name: "--family", Description: "Network Type"},
+ {Name: "--port", Description: "Server-side UDP port or range, (No effect on server-side SSH port)"},
+ {Name: "--bind-server", Description: "Do not allocate a pseudo tty on ssh connection"},
+ {Name: "--no-init", Description: "Do not send terminal initialization string"},
+ {Name: "--local", Description: "Run mosh-server locally without using ssh"},
+ {Name: "--experimental-remote-ip", Description: "Select the method for discovering the remote IP address to use for mosh"},
+ {Name: "--version", Description: "Version and copyright information"},
+ },
+ })
+}
diff --git a/commands/sys/mount.go b/commands/sys/mount.go
new file mode 100644
index 0000000..762f24c
--- /dev/null
+++ b/commands/sys/mount.go
@@ -0,0 +1,48 @@
+package sys
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "mount",
+ Description: "Mount disks and manage subtrees",
+ Options: []core.Option{
+ {Name: "-h", Description: "Help for abc"},
+ {Name: "-a", Description: "Mount all filesystems in fstab"},
+ {Name: "-c", Description: "Don't canonicalize paths"},
+ {Name: "-f", Description: "Dry run; skip the mount(2) syscall"},
+ {Name: "-F", Description: "Fork off for each device (use with -a)"},
+ {Name: "-T", Description: "Alternative file to /etc/fstab"},
+ {Name: "-i", Description: "Don't call the mount. helpers"},
+ {Name: "-l", Description: "Show also filesystem labels"},
+ {Name: "-m", Description: "Alias to '-o X-mount.mkdir"},
+ {Name: "-n", Description: "Don't write to /etc/mtab"},
+ {Name: "--options-mode", Description: "What to do with options loaded from fstab"},
+ {Name: "--options-source", Description: "Mount options source"},
+ {Name: "--options-source-force", Description: "Force use of options from fstab/mtab"},
+ {Name: "-o", Description: "Comma-separated list of mount options"},
+ {Name: "-O", Description: "Limit the set of filesystems (use with -a)"},
+ {Name: "-r", Description: "Mount the filesystem read-only (same as -o ro)"},
+ {Name: "-t", Description: "Limit the set of filesystem types"},
+ {Name: "--source", Description: "Explicitly specifies source"},
+ {Name: "--target", Description: "Explicitly specifies mountpoint"},
+ {Name: "--target-prefix", Description: "Specifies path used for all mountpoints"},
+ {Name: "-v", Description: "Say what is being done"},
+ {Name: "-w", Description: "Mount the filesystem read-write (default)"},
+ {Name: "-V", Description: "Display version"},
+ {Name: "-B", Description: "Mount a subtree somewhere else (same as -o bind)"},
+ {Name: "-M", Description: "Move a subtree to some other place"},
+ {Name: "-R", Description: "Mount a subtree and all submounts somewhere else"},
+ {Name: "--make-shared", Description: "Mark a subtree as shared"},
+ {Name: "--make-slave", Description: "Mark a subtree as slave"},
+ {Name: "--make-private", Description: "Mark a subtree as private"},
+ {Name: "--make-unbindable", Description: "Mark a subtree as unbindable"},
+ {Name: "--make-rshared", Description: "Recursively mark a whole subtree as shared"},
+ {Name: "--make-rslave", Description: "Recursively mark a whole subtree as slave"},
+ {Name: "--make-rprivate", Description: "Recursively mark a whole subtree as private"},
+ {Name: "--make-runbindable", Description: "Recursively mark a whole subtree as unbindable"},
+ },
+ })
+}
diff --git a/commands/sys/ncal.go b/commands/sys/ncal.go
new file mode 100644
index 0000000..85064bc
--- /dev/null
+++ b/commands/sys/ncal.go
@@ -0,0 +1,27 @@
+package sys
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "ncal",
+ Description: "Displays a calendar and the date of Easter",
+ Options: []core.Option{
+ {Name: "-h", Description: "Turns off highlighting of today"},
+ {Name: "-J", Description: "Display date of Easter (for western churches)"},
+ {Name: "-j", Description: "Display Julian days (days one-based, numbered from January 1)"},
+ {Name: "-m", Description: "Display a calendar for the specified year"},
+ {Name: "-o", Description: "Display date of Orthodox Easter (Greek and Russian Orthodox Churches)"},
+ {Name: "-p", Description: "Print the number of the week below each week column"},
+ {Name: "-3", Description: "Display the previous, current and next month surrounding today"},
+ {Name: "-A", Description: "Display the number of months after the current month"},
+ {Name: "-B", Description: "Display the number of months before the current month"},
+ {Name: "-C", Description: "Switch to cal mode"},
+ {Name: "-N", Description: "Switch to ncal mode"},
+ {Name: "-d", Description: "Use yyyy-mm as the current date (for debugging of date selection)"},
+ {Name: "-H", Description: "Use yyyy-mm-dd as the current date (for debugging of highlighting)"},
+ },
+ })
+}
diff --git a/commands/sys/neofetch.go b/commands/sys/neofetch.go
new file mode 100644
index 0000000..e374165
--- /dev/null
+++ b/commands/sys/neofetch.go
@@ -0,0 +1,54 @@
+package sys
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "neofetch",
+ Description: "The most complete system information CLI tool",
+ Options: []core.Option{
+ {Name: "--help", Description: "Show help for neofetch"},
+ {Name: "--disable", Description: "Disable information line"},
+ {Name: "--title_fqdn", Description: "Hide/Show Fully Qualified Domain Name in title"},
+ {Name: "--package_managers", Description: "Hide/Show Package Manager names"},
+ {Name: "--os_arch", Description: "Hide/Show OS architecture"},
+ {Name: "--speed_type", Description: "Change the type of cpu speed to display"},
+ {Name: "--speed_shorthand", Description: "Whether or not to show decimals in CPU speed"},
+ {Name: "--cpu_brand", Description: "Enable/Disable CPU brand in output"},
+ {Name: "--cpu_cores", Description: "Whether or not to display the number of CPU cores"},
+ {Name: "--cpu_speed", Description: "Hide/Show cpu speed"},
+ {Name: "--cpu_temp", Description: "Hide/Show cpu temperature"},
+ {Name: "--distro_shorthand", Description: "Shorten the output of distro"},
+ {Name: "--kernel_shorthand", Description: "Shorten the output of kernel"},
+ {Name: "--uptime_shorthand", Description: "Shorten the output of uptime"},
+ {Name: "--refresh_rate", Description: "Whether to display the refresh rate of each monitor"},
+ {Name: "--gpu_brand", Description: "Enable/Disable GPU brand in output"},
+ {Name: "--gpu_type", Description: "Which GPU to display"},
+ {Name: "--de_version", Description: "Show/Hide Desktop Environment version"},
+ {Name: "--gtk_shorthand", Description: "Shorten output of gtk theme/icons"},
+ {Name: "--gtk2", Description: "Enable/Disable gtk2 theme/font/icons output"},
+ {Name: "--gtk3", Description: "Enable/Disable gtk3 theme/font/icons output"},
+ {Name: "--shell_path", Description: "Enable/Disable showing $SHELL path"},
+ {Name: "--shell_version", Description: "Enable/Disable showing $SHELL version"},
+ {Name: "--disk_show", Description: "Which disks to display"},
+ {Name: "--disk_subtitle", Description: "What information to append to the Disk subtitle"},
+ {Name: "--disk_percent", Description: "Hide/Show disk percent"},
+ {Name: "--ip_host", Description: "URL to query for public IP"},
+ {Name: "--ip_timeout", Description: "Public IP timeout"},
+ {Name: "--memory_percent", Description: "Display memory percentage"},
+ {Name: "--memory_unit", Description: "Memory output unit"},
+ {Name: "--colors", Description: "Changes the text colors"},
+ {Name: "--underline", Description: "Enable/Disable the underline"},
+ {Name: "--underline_char", Description: "Character to use when underlining title"},
+ {Name: "--bold", Description: "Enable/Disable bold text"},
+ {Name: "--separator", Description: "Changes the default ':' separator to the specified string"},
+ {Name: "--color_blocks", Description: "Enable/Disable the color blocks"},
+ {Name: "--col_offset", Description: "Left-padding of color blocks"},
+ {Name: "--block_width", Description: "Width of color blocks in spaces"},
+ {Name: "--block_height", Description: "Height of color blocks in lines"},
+ {Name: "--block_range", Description: "Range of colors to print as blocks"},
+ },
+ })
+}
diff --git a/commands/sys/networkquality.go b/commands/sys/networkquality.go
new file mode 100644
index 0000000..05d071d
--- /dev/null
+++ b/commands/sys/networkquality.go
@@ -0,0 +1,20 @@
+package sys
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "networkQuality",
+ Description: "Measure the different aspects of network quality",
+ Options: []core.Option{
+ {Name: "-h", Description: "Show help for networkQuality"},
+ {Name: "-c", Description: "Produce computer readable output"},
+ {Name: "-s", Description: "Run tests sequentially instead of in parallel"},
+ {Name: "-v", Description: "Verbose output"},
+ {Name: "-C", Description: "Use a custom configuration URL"},
+ {Name: "-I", Description: "Bind test to interface"},
+ },
+ })
+}
diff --git a/commands/sys/networksetup.go b/commands/sys/networksetup.go
new file mode 100644
index 0000000..d2a1256
--- /dev/null
+++ b/commands/sys/networksetup.go
@@ -0,0 +1,95 @@
+package sys
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "networksetup",
+ Description: "Configuration tool for network settings in macOS",
+ Subcommands: []core.Subcommand{
+ {Name: "computername", Description: "The new name for your computer on the network"},
+ {Name: "ip", Description: "The IP address to set for the network service"},
+ {Name: "subnet", Description: "The subnet mask to apply"},
+ {Name: "router", Description: "The router address to set"},
+ {Name: "clientid", Description: "Optional DHCP client ID. Use 'Empty' to clear it"},
+ {Name: "prefixlength", Description: "The prefix length for the IPv6 address (e.g., 64)"},
+ {Name: "dns", Description: "IP addresses of DNS servers. Use 'empty' to clear all DNS entries"},
+ {Name: "domain", Description: "List of search domains. Use 'empty' to clear all existing domains"},
+ {Name: "newnetworkservicename", Description: "The name of the new 6 to 4 service to be created"},
+ {Name: "relayaddress", Description: "The manually specified relay address to be used by the 6 to 4 service"},
+ {Name: "portnumber", Description: "The port number for the proxy server"},
+ {Name: "authenticated", Description: "Specify whether proxy authentication is required"},
+ {Name: "on", Description: "Specify for to enable authenticated proxy support"},
+ {Name: "off", Description: "Specify for to disable authenticated proxy support"},
+ {Name: "username", Description: "The username for proxy authentication"},
+ {Name: "password", Description: "The password for proxy authentication"},
+ {Name: "url", Description: "The URL of the proxy auto-config (PAC) file"},
+ {Name: "network", Description: "The name of the Wi-Fi network to connect to"},
+ {Name: "index", Description: "The position in the preferred list"},
+ {Name: "securitytype", Description: "The security type of the network"},
+ {Name: "OPEN", Description: "No security"},
+ {Name: "WPA", Description: "WPA Personal"},
+ {Name: "WPA2", Description: "WPA2 Personal"},
+ {Name: "WPA/WPA2", Description: "WPA/WPA2 Personal"},
+ {Name: "WPAE", Description: "WPA Enterprise"},
+ {Name: "WPA2E", Description: "WPA2 Enterprise"},
+ {Name: "WPAE/WPA2E", Description: "WPA/WPA2 Enterprise"},
+ {Name: "WEP", Description: "Plain WEP"},
+ {Name: "8021XWEP", Description: "802.1X WEP"},
+ {Name: "networkservicename", Description: "The name for the new network service"},
+ {Name: "value", Description: "The MTU value to set, typically an integer representing the maximum packet size"},
+ {Name: "subtype", Description: "The media subtype to set for the hardware port or device"},
+ {Name: "name", Description: "The name to assign to the new VLAN"},
+ {Name: "parentdevice", Description: "The parent device over which the VLAN will be created"},
+ {Name: "tag", Description: "The VLAN tag to assign to the new VLAN"},
+ {Name: "device", Description: "The devices to include in the bond. Any number of devices can be specified"},
+ {Name: "account", Description: "The PPPoE account name"},
+ {Name: "pppoeName", Description: "Optional name for the PPPoE service"},
+ {Name: "location", Description: "The name for the new location"},
+ },
+ Options: []core.Option{
+ {Name: "-listnetworkserviceorder", Description: "Displays a list of all the network services on the server's hardware ports"},
+ {Name: "-listallhardwareports", Description: "Displays ethernet (or Wi-Fi) address for hardwareport or device specified"},
+ {Name: "-getcomputername", Description: "Displays the computer name"},
+ {Name: "-setcomputername", Description: "Sets computer name to . This name is used by AFP"},
+ {Name: "-getinfo", Description: "The IP address to set for the network service"},
+ {Name: "-setdhcp", Description: "Optional DHCP client ID. Use 'Empty' to clear it"},
+ {Name: "-setbootp", Description: "The IP address to set for the network service"},
+ {Name: "-getadditionalroutes", Description: "Use this command to turn IPv4 off on the specified "},
+ {Name: "-setv6off", Description: "Use this command to turn IPv6 off on the specified "},
+ {Name: "-setv6automatic", Description: "Use this command to set IPv6 to only use link local for "},
+ {Name: "-setv6manual", Description: "The IPv6 address to assign"},
+ {Name: "-getv6additionalroutes", Description: "Displays DNS info for "},
+ {Name: "-setdnsservers", Description: "IP addresses of DNS servers. Use 'empty' to clear all DNS entries"},
+ {Name: "-getsearchdomains", Description: "Displays Domain Name info for "},
+ {Name: "-setsearchdomains", Description: "List of search domains. Use 'empty' to clear all existing domains"},
+ {Name: "-create6to4service", Description: "The name of the new 6 to 4 service to be created"},
+ {Name: "-set6to4automatic", Description: "The name of the 6 to 4 service to be configured"},
+ {Name: "-getwebproxy", Description: "Displays Web proxy (server, port, enabled value) info for "},
+ {Name: "-setwebproxy", Description: "The domain name or IP address of the proxy server"},
+ {Name: "-setwebproxystate", Description: "Set Web proxy on to either or "},
+ {Name: "-getsecurewebproxy", Description: "The proxy server's domain or IP address"},
+ {Name: "-setsecurewebproxystate", Description: "Set Secure Web proxy on to either or "},
+ {Name: "-getsocksfirewallproxy", Description: "The proxy server's domain or IP address"},
+ {Name: "-setsocksfirewallproxystate", Description: "Set SOCKS Firewall proxy to either or "},
+ {Name: "-getproxybypassdomains", Description: "Displays Bypass Domain Names for "},
+ {Name: "-setproxybypassdomains", Description: "Domains to bypass proxy for. Use 'Empty' to clear all bypass domains"},
+ {Name: "-getproxyautodiscovery", Description: "Displays Proxy Auto Discover for "},
+ {Name: "-setproxyautodiscovery", Description: "Set Proxy Auto Discover for to either or "},
+ {Name: "-setautoproxyurl", Description: "Set proxy auto-config to url for and enable it"},
+ {Name: "-getautoproxyurl", Description: "Displays proxy auto-config (url, enabled) info for "},
+ {Name: "-getairportnetwork", Description: "Displays current Wi-Fi Network"},
+ {Name: "-setairportnetwork", Description: "Set Wi-Fi Network to using optional [password] if specified"},
+ {Name: "-getairportpower", Description: "Displays whether Wi-Fi power is on or off"},
+ {Name: "-setairportpower", Description: "Set Wi-Fi power to either or "},
+ {Name: "-getnetworkserviceenabled", Description: "Displays whether a service is on or off (enabled or disabled)"},
+ {Name: "-setnetworkserviceenabled", Description: "The name for the new network service"},
+ {Name: "-renamenetworkservice", Description: "The new name for the network service"},
+ {Name: "-duplicatenetworkservice", Description: "The new name for the duplicated network service"},
+ {Name: "-removenetworkservice", Description: "Get the MTU value for hardwareport or device specified"},
+ {Name: "-setMTU", Description: "Set MTU for hardwareport or device specified"},
+ },
+ })
+}
diff --git a/commands/sys/nextflow.go b/commands/sys/nextflow.go
new file mode 100644
index 0000000..eebf57a
--- /dev/null
+++ b/commands/sys/nextflow.go
@@ -0,0 +1,73 @@
+package sys
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "nextflow",
+ Description: "Session ID",
+ Subcommands: []core.Subcommand{
+ {Name: "clean", Description: "Clean up project cache and work directories (Default: last run)"},
+ {Name: "clone", Description: "Clone a project into a folder"},
+ {Name: "config", Description: "Print a project configuration"},
+ {Name: "console", Description: "Launch Nextflow interactive console"},
+ {Name: "drop", Description: "Delete the local copy of a project"},
+ {Name: "help", Description: "Print the usage help for a command"},
+ {Name: "info", Description: "Print project and system runtime information"},
+ {Name: "kuberun", Description: "Execute a workflow in a Kubernetes cluster (experimental)"},
+ {Name: "list", Description: "List all downloaded projects"},
+ {Name: "log", Description: "Print executions log and runtime info"},
+ {Name: "pull", Description: "Download or update a project"},
+ {Name: "run", Description: "Execute a pipeline project"},
+ {Name: "secrets", Description: "Handle and manage sensitive information for pipeline execution in a safe manner"},
+ {Name: "get", Description: "Allows retrieving a secret value e.g. nextflow secrets get FOO"},
+ {Name: "delete", Description: "Allows deleting an existing secret e.g. nextflow secrets delete FOO"},
+ {Name: "self-update", Description: "Update nextflow runtime to the latest available version"},
+ {Name: "view", Description: "View project script file(s)"},
+ },
+ Options: []core.Option{
+ {Name: "-after", Description: "Clean up runs executed after the specified one"},
+ {Name: "-before", Description: "Clean up runs executed before the specified one"},
+ {Name: "-but", Description: "Clean up all runs except the specified one"},
+ {Name: "-n", Description: "Print names of file to be removed without deleting them (Default: false)"},
+ {Name: "-f", Description: "Force clean command (Default: false)"},
+ {Name: "-h", Description: "Print the command usage (Default: false)"},
+ {Name: "-k", Description: "Do not print names of files removed (Default: false)"},
+ {Name: "-hub", Description: "Service hub where the project is hosted (Default: GitHub)"},
+ {Name: "-r", Description: "Revision to clone - It can be a git branch, tag or revision number"},
+ {Name: "-user", Description: "Private repository user name"},
+ {Name: "-flat", Description: "Print config using flat notation (Default: false)"},
+ {Name: "-profile", Description: "Choose a configuration profile"},
+ {Name: "-properties", Description: "Prints config using Java properties notatio (Default: false)"},
+ {Name: "-a", Description: "Show all configuration profiles"},
+ {Name: "-sort", Description: "Sort config attributes (Default: false)"},
+ {Name: "-u", Description: "Check for remote updates (Default: false)"},
+ {Name: "-d", Description: "Show detailed information (Default: false)"},
+ {Name: "-o", Description: "Output format, either: text (default), json, yaml"},
+ {Name: "-E", Description: "Exports all current system environment (Default: false)"},
+ {Name: "-ansi-log", Description: "Enable/disable ANSI console logging"},
+ {Name: "-bucket-dir", Description: "Remote bucket where intermediate result files are stored"},
+ {Name: "-cache", Description: "Enable/disable processes caching"},
+ {Name: "-disable-jobs-cancellation", Description: "Prevent the cancellation of child jobs on execution termination"},
+ {Name: "-dsl1", Description: "Execute the workflow using DSL1 syntax (Default: false)"},
+ {Name: "-dsl2", Description: "Execute the workflow using DSL2 syntax (Default: false)"},
+ {Name: "-dump-channels", Description: "Dump channels for debugging purpose"},
+ {Name: "-dump-hashes", Description: "Dump task hash keys for debugging purpose (Default: false)"},
+ {Name: "-e", Description: "Entry workflow name to be executed"},
+ {Name: "-head-cpus", Description: "Specify number of CPUs requested for the Nextflow pod (Default: 0)"},
+ {Name: "-head-memory", Description: "Specify amount of memory requested for the Nextflow pod"},
+ {Name: "-latest", Description: "Pull latest changes before run (Default: false)"},
+ {Name: "-lib", Description: "Library extension path"},
+ {Name: "-main-script", Description: "The script file to be executed when launching a project directory or repository"},
+ {Name: "-name", Description: "Assign a mnemonic name to the a pipeline run"},
+ {Name: "-offline", Description: "Do not check for remote project updates (Default: false)"},
+ {Name: "-params-file", Description: "Load script parameters from a JSON/YAML file"},
+ {Name: "-plugins", Description: "Specify the plugins to be applied for this run e.g. nf-amazon,nf-tower"},
+ {Name: "-pod-image", Description: "Specify the container image for the Nextflow pod"},
+ {Name: "-process", Description: "Set process options. Syntax: -process.key=value (Default: {}"},
+ {Name: "-qs", Description: "Max number of processes that can be executed in parallel by each executor"},
+ },
+ })
+}
diff --git a/commands/sys/nhost.go b/commands/sys/nhost.go
new file mode 100644
index 0000000..f63b246
--- /dev/null
+++ b/commands/sys/nhost.go
@@ -0,0 +1,27 @@
+package sys
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "nhost",
+ Description: "Nhost",
+ Subcommands: []core.Subcommand{
+ {Name: "deploy", Description: "Deploy local migrations and metadata changes to Nhost production"},
+ {Name: "dev", Description: "Start Nhost project for local development"},
+ {Name: "down", Description: "Stop and remove local Nhost backend started by `nhost dev`"},
+ {Name: "env", Description: "List environment variables"},
+ {Name: "env:pull", Description: "Sync remote environment variables to your local environment"},
+ {Name: "help", Description: "Display help for nhost"},
+ {Name: "init", Description: "Initialize current working directory as a Nhost project"},
+ {Name: "link", Description: "Link Nhost Project"},
+ {Name: "login", Description: "Login to your Nhost account"},
+ {Name: "logout", Description: "Logout from your Nhost account"},
+ },
+ Options: []core.Option{
+ {Name: "--email", Description: "Email address"},
+ },
+ })
+}
diff --git a/commands/sys/nmap.go b/commands/sys/nmap.go
new file mode 100644
index 0000000..1d7bd3c
--- /dev/null
+++ b/commands/sys/nmap.go
@@ -0,0 +1,35 @@
+package sys
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "nmap",
+ Description: "Network exploration tool and security / port scanner",
+ Options: []core.Option{
+ {Name: "-iR", Description: "Choose random targets"},
+ {Name: "--exclude", Description: "Excluide hosts/networks"},
+ {Name: "--excludefile", Description: "Exclude list from file"},
+ {Name: "-sT", Description: "TCP scan"},
+ {Name: "-sA", Description: "TCP ACK scan"},
+ {Name: "-sW", Description: "TCP Window scan"},
+ {Name: "-sM", Description: "TCP Maimon scan"},
+ {Name: "-sU", Description: "UDP scan"},
+ {Name: "-sP", Description: "Ping scan"},
+ {Name: "-sN", Description: "TCP Null scan"},
+ {Name: "-sF", Description: "FIN scan"},
+ {Name: "-sX", Description: "Xmas scan"},
+ {Name: "-sO", Description: "IP protocol scan"},
+ {Name: "-p", Description: "Scan specified ports"},
+ {Name: "-v", Description: "Increase verbosity level"},
+ {Name: "--osscan-limit", Description: "Limit OS detection to promising targets"},
+ {Name: "-6", Description: "Enable IPV6 scanning"},
+ {Name: "-V", Description: "Print version number"},
+ {Name: "-privileged", Description: "Assume that user is fully privileges"},
+ {Name: "-unprivileged", Description: "Assume that user lacks raw socket privileges"},
+ {Name: "--help", Description: "Show help for nmap"},
+ },
+ })
+}
diff --git a/commands/sys/nrm.go b/commands/sys/nrm.go
new file mode 100644
index 0000000..128fdf8
--- /dev/null
+++ b/commands/sys/nrm.go
@@ -0,0 +1,19 @@
+package sys
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "nrm",
+ Description: "Use the right package manage - remove",
+ Options: []core.Option{
+ {Name: "-g", Description: "Package will be removed from your `devDependencies`"},
+ {Name: "-P", Description: "Remove package from your `peerDependencies`"},
+ {Name: "-O", Description: "Remove package from your `optionalDependencies`"},
+ {Name: "--frozen", Description: "Don't generate a lockfile and fail if an update is needed"},
+ {Name: "-h", Description: "Output usage information"},
+ },
+ })
+}
diff --git a/commands/sys/ns.go b/commands/sys/ns.go
new file mode 100644
index 0000000..25f11ab
--- /dev/null
+++ b/commands/sys/ns.go
@@ -0,0 +1,52 @@
+package sys
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "ns",
+ Description: "Forces rebuilding the native application",
+ Subcommands: []core.Subcommand{
+ {Name: "next", Description: "The latest development release"},
+ },
+ Options: []core.Option{
+ {Name: "--clean", Description: "Forces rebuilding the native application"},
+ {Name: "--timeout", Description: "Specifies that you want to debug the app in an emulator"},
+ {Name: "--device", Description: "Specifies a connected device/emulator to start and run the app"},
+ {Name: "--force", Description: "Disables Hot Module Replacement (HMR)"},
+ {Name: "--framework-path", Description: "Show the output of the command in JSON format"},
+ {Name: "--justlaunch", Description: "Does not print the application output in the console"},
+ {Name: "--release", Description: "Bundle the application"},
+ {Name: "--help", Description: "Specifies that the command will produce and deploy an Android App Bundle"},
+ {Name: "--key-store-path", Description: "Provides the password for the keystore file specified with --key-store-path"},
+ {Name: "--key-store-alias", Description: "Provides the alias for the keystore file specified with --key-store-path"},
+ {Name: "--key-store-alias-password", Description: "Provides the password for the alias specified with --key-store-alias-password"},
+ {Name: "--sdk", Description: "Specifies the target simulator's sdk"},
+ {Name: "--debug-brk", Description: "Attaches the debug tools to a deployed and running app"},
+ {Name: "--no-watch", Description: "Changes in your code will not be livesynced"},
+ {Name: "--no-client", Description: "Sets the Android SDK that will be used to build the project"},
+ {Name: "--for-device", Description: "Open the CLI's documentation in your web browser"},
+ {Name: "--insecure", Description: "Enables anonymous usage reporting"},
+ {Name: "--template", Description: "Create a project using a predefined template"},
+ {Name: "--angular", Description: "Create a project using the Angular template"},
+ {Name: "--react", Description: "Create a project using the React template"},
+ {Name: "--vue", Description: "Create a project using the Vue template"},
+ {Name: "--svelte", Description: "Create a project using the Svelte template"},
+ {Name: "--typescript", Description: "Create a project using plain TypeScript"},
+ {Name: "--javascript", Description: "Create a project using plain JavaScript"},
+ {Name: "--path", Description: "Clean your Nativescript project"},
+ {Name: "--framework", Description: "Sets the unit testing framework to install"},
+ {Name: "--pluginName", Description: "Used to set the default file and class names in the plugin source"},
+ {Name: "--includeTypeScriptDemo", Description: "Specifies if a TypeScript demo should be created"},
+ {Name: "--includeAngularDemo", Description: "Specifies if an Angular demo should be created"},
+ {Name: "--background", Description: "Sets the background color of the splashscreen"},
+ {Name: "--hmr", Description: "Enables the hot module replacement (HMR) feature"},
+ {Name: "--ipa", Description: "Use the provided .ipa file instead of building the project"},
+ {Name: "--team-id", Description: "Lists all available Android devices"},
+ {Name: "--available-devices", Description: "Lists all available iOS devices"},
+ {Name: "-v", Description: "View your current Nativescript CLI version"},
+ },
+ })
+}
diff --git a/commands/sys/nylas.go b/commands/sys/nylas.go
new file mode 100644
index 0000000..0cece61
--- /dev/null
+++ b/commands/sys/nylas.go
@@ -0,0 +1,106 @@
+package sys
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "nylas",
+ Description: "A command line interface for Nylas",
+ Subcommands: []core.Subcommand{
+ {Name: "api", Description: "Access the Nylas API endpoints"},
+ {Name: "a", Description: "A API commands"},
+ {Name: "accounts", Description: "Accounts commands"},
+ {Name: "delete", Description: "Delete an Account"},
+ {Name: "get", Description: "Return All Accounts"},
+ {Name: "accounts:downgrade", Description: "Accounts:downgrade commands"},
+ {Name: "post", Description: "Cancel an Account"},
+ {Name: "accounts:revoke-all", Description: "Accounts:revoke-all commands"},
+ {Name: "accounts:token-info", Description: "Accounts:token-info commands"},
+ {Name: "accounts:upgrade", Description: "Accounts:upgrade commands"},
+ {Name: "applications", Description: "Gets your application info"},
+ {Name: "calendars", Description: "Calendars API commands"},
+ {Name: "availability", Description: "Availability commands"},
+ {Name: "availability:consecutive", Description: "Availability:consecutive commands"},
+ {Name: "free-busy", Description: "Free-busy commands"},
+ {Name: "put", Description: "Update A Calendar"},
+ {Name: "connect", Description: "Connect API commands"},
+ {Name: "detect-provider", Description: "Detect-provider commands"},
+ {Name: "contacts", Description: "Contacts API commands"},
+ {Name: "groups", Description: "Groups commands"},
+ {Name: "picture", Description: "Picture commands"},
+ {Name: "delta", Description: "Delta API commands"},
+ {Name: "latest:cursor", Description: "Latest:cursor commands"},
+ {Name: "longpoll", Description: "Longpoll commands"},
+ {Name: "streaming", Description: "Streaming commands"},
+ {Name: "drafts", Description: "Drafts API commands"},
+ {Name: "events", Description: "Events API commands"},
+ {Name: "to-ics", Description: "To-ics commands"},
+ {Name: "files", Description: "Files API commands"},
+ {Name: "download", Description: "Download commands"},
+ {Name: "folders", Description: "Folders API commands"},
+ {Name: "ip-addresses", Description: "Gets a list of Nylas IP addresses (paid customers only)"},
+ {Name: "job-statuses", Description: "Job-Statuses API commands"},
+ {Name: "labels", Description: "Labels API commands"},
+ {Name: "messages", Description: "Messages API commands"},
+ {Name: "neural", Description: "Neural API commands"},
+ {Name: "categorize", Description: "Categorize commands"},
+ {Name: "categorize:feedback", Description: "Categorize:feedback commands"},
+ {Name: "conversation", Description: "Conversation commands"},
+ {Name: "conversation:feedback", Description: "Conversation:feedback commands"},
+ {Name: "ocr", Description: "Ocr commands"},
+ {Name: "ocr:feedback", Description: "Ocr:feedback commands"},
+ {Name: "sentiment", Description: "Sentiment commands"},
+ {Name: "sentiment:feedback", Description: "Sentiment:feedback commands"},
+ {Name: "signature", Description: "Signature commands"},
+ {Name: "signature:feedback", Description: "Signature:feedback commands"},
+ {Name: "resources", Description: "Resources API commands"},
+ {Name: "send", Description: "Send API commands"},
+ {Name: "send-rsvp", Description: "Send-Rsvp API commands"},
+ {Name: "threads", Description: "Threads API commands"},
+ },
+ Options: []core.Option{
+ {Name: "--display_columns", Description: "Return All Accounts"},
+ {Name: "--body", Description: "Request body (or use < to redirect a JSON file)"},
+ {Name: "--limit", Description: "This is usage"},
+ {Name: "--country", Description: "Returns the contacts matching the contact's exact physical addresses"},
+ {Name: "--group", Description: "Returns the contacts belonging to the Contact Group matching this ID"},
+ {Name: "--postal_code", Description: "Returns the contacts matching the one of the contact's exact street address"},
+ {Name: "--cursor", Description: "The data cursor from `/delta/latest_cursor`"},
+ {Name: "--view", Description: "Streaming commands"},
+ {Name: "--any_email", Description: "Return threads containing messages that were CC'd to this email address"},
+ {Name: "--in", Description: "Return threads whose first message was received after this Unix-based timestamp"},
+ {Name: "--started_before", Description: "Return threads whose first message was received before this Unix-based timestamp"},
+ {Name: "--subject", Description: "Return threads with a matching literal subject"},
+ {Name: "--thread_id", Description: "Return messages belonging to a specific thread"},
+ {Name: "--to", Description: "Return threads containing messages sent to this email address"},
+ {Name: "--calendar_id", Description: "Return events belonging to the specified calendar ID"},
+ {Name: "--count", Description: "See [Count](/docs/api/#overview--count-view) for more information"},
+ {Name: "--description", Description: "Return events matching the specified description"},
+ {Name: "--ends_before", Description: "Return events ending before the specified unix timestamp"},
+ {Name: "--event_id", Description: "Return the event matching the specified event ID"},
+ {Name: "--metadata_key", Description: "Return events starting after the specified unix timestamp"},
+ {Name: "--starts_before", Description: "Return events starting before the specified unix timestamp"},
+ {Name: "--title", Description: "Return events matching the specified title"},
+ {Name: "--content_type", Description: "Return objects matching the specified content type"},
+ {Name: "--message_id", Description: "Return objects matching the specified message ID"},
+ {Name: "--from", Description: "Return threads containing messages sent from this email address"},
+ {Name: "--received_before", Description: "Return messages received before this unix timestamp"},
+ {Name: "--callback_domain", Description: "The domain for the callback URL"},
+ {Name: "--forward", Description: "Address to forward requests to (e.g. http://localhost:3000)"},
+ {Name: "--print", Description: "Prints the (json) payload to the console"},
+ {Name: "--triggers", Description: "The triggers to register for your webhooks"},
+ {Name: "--websocket_domain", Description: "The domain for the websocket server"},
+ {Name: "--access_token", Description: "Nylas account access token"},
+ {Name: "--config_dir", Description: "Config directory"},
+ {Name: "--config_file", Description: "Config file (default is config.yaml)"},
+ {Name: "--dashboard_api_url", Description: "Dashboard API URL"},
+ {Name: "--debug", Description: "Enable debugging output"},
+ {Name: "--disable_telemetry", Description: "Disables sending telemetry data"},
+ {Name: "--nylas_api_url", Description: "Nylas API URL"},
+ {Name: "--output", Description: "Output format (e.g. json, table)"},
+ {Name: "--region", Description: "Nylas Region (values: us, ireland, canada, australia)"},
+ },
+ })
+}
diff --git a/commands/sys/oh_my_posh.go b/commands/sys/oh_my_posh.go
new file mode 100644
index 0000000..3627278
--- /dev/null
+++ b/commands/sys/oh_my_posh.go
@@ -0,0 +1,47 @@
+package sys
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "oh-my-posh",
+ Description: "The config file to use",
+ Subcommands: []core.Subcommand{
+ {Name: "init", Description: "Initialize oh-my-posh for your shell"},
+ {Name: "get", Description: "Get oh-my-posh values"},
+ {Name: "shell", Description: "Get the current shell, example usage: 'oh-my-posh get shell'"},
+ {Name: "debug", Description: "Debug oh-my-posh, example usage: 'oh-my-posh debug'"},
+ {Name: "config", Description: "Interact with the oh-my-posh configuration"},
+ {Name: "edit", Description: "Edit the config file, example usage: 'oh-my-posh config edit'"},
+ {Name: "OUTPUT", Description: "The file to write to"},
+ {Name: "print", Description: "Print a prompt"},
+ {Name: "WIDTH", Description: "The terminal width"},
+ {Name: "COMMAND", Description: "The tooltip command"},
+ {Name: "ERROR CODE", Description: "The last error code"},
+ {Name: "EXECUTION TIME", Description: "The last command's execution time"},
+ {Name: "POWERSHELL WORKING DIRECTORY", Description: "The working directory according to PowerShell"},
+ {Name: "WORKING DIRECTORY", Description: "The working directory"},
+ {Name: "SHELL", Description: "The shell used"},
+ {Name: "NUM", Description: "The number of stacks"},
+ {Name: "version", Description: "Display the oh-my-posh version, example usage: 'oh-my-posh version'"},
+ },
+ Options: []core.Option{
+ {Name: "--config", Description: "The config file to use"},
+ {Name: "--format", Description: "The file format to use"},
+ {Name: "--print", Description: "Print the init script"},
+ {Name: "--write", Description: "The file to write to"},
+ {Name: "--terminal-width", Description: "The terminal width"},
+ {Name: "--command", Description: "The tooltip command"},
+ {Name: "--error", Description: "The last exit code, example usage: 'oh-my-posh print primary --error 127'"},
+ {Name: "--eval", Description: "Use eval to render the prompt, example usage: 'oh-my-posh print primary --eval'"},
+ {Name: "--execution-time", Description: "The last command's execution time"},
+ {Name: "--plain", Description: "The working directory according to PowerShell"},
+ {Name: "--pwd", Description: "The working directory"},
+ {Name: "--shell", Description: "The current shell, example usage: 'oh-my-posh print primary --shell fish'"},
+ {Name: "--stack-count", Description: "The number of stacks"},
+ {Name: "--help", Description: "Show help for oh-my-posh"},
+ },
+ })
+}
diff --git a/commands/sys/okta.go b/commands/sys/okta.go
new file mode 100644
index 0000000..0c21d0d
--- /dev/null
+++ b/commands/sys/okta.go
@@ -0,0 +1,41 @@
+package sys
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "okta",
+ Description: "The Okta CLI is the easiest way to get started with Okta!",
+ Subcommands: []core.Subcommand{
+ {Name: "register", Description: "Sign up for a new Okta account"},
+ {Name: "login", Description: "Authorizes the Okta CLI tool"},
+ {Name: "apps", Description: "Manage Okta apps"},
+ {Name: "config", Description: "Show an Okta app's configuration"},
+ {Name: "create", Description: "Create a new Okta app"},
+ {Name: "delete", Description: "Deletes an Okta app"},
+ {Name: "appIds", Description: "List of application IDs to be deleted"},
+ {Name: "start", Description: "Creates an Okta Sample Application"},
+ {Name: "name", Description: "The name of the sample app to create"},
+ {Name: "help", Description: "Displays help information about the specified command"},
+ {Name: "generate-completion", Description: "Generate bash/zsh completion script for Okta"},
+ },
+ Options: []core.Option{
+ {Name: "--company", Description: "Company/organization used when registering a new Okta account"},
+ {Name: "--email", Description: "Email used when registering a new Okta account"},
+ {Name: "--first-name", Description: "First name used when registering a new Okta account"},
+ {Name: "--last-name", Description: "Last name used when registering a new Okta account"},
+ {Name: "--app", Description: "The App ID"},
+ {Name: "--app-name", Description: "Application name to be created, defaults to current directory name"},
+ {Name: "--authorization-server-id", Description: "Okta Authorization Server Id"},
+ {Name: "--config-file", Description: "Application config file"},
+ {Name: "--redirect-uri", Description: "OIDC Redirect URI"},
+ {Name: "-f", Description: "Deactivate and delete applications without confirmation"},
+ {Name: "--help", Description: "Show help for Okta CLI"},
+ {Name: "--version", Description: "Print version information"},
+ {Name: "--verbose", Description: "Verbose logging"},
+ {Name: "--batch", Description: "Batch mode, will not prompt for user input"},
+ },
+ })
+}
diff --git a/commands/sys/ollama.go b/commands/sys/ollama.go
new file mode 100644
index 0000000..5da8fe4
--- /dev/null
+++ b/commands/sys/ollama.go
@@ -0,0 +1,32 @@
+package sys
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "ollama",
+ Description: "A command-line tool for managing and deploying machine learning models",
+ Subcommands: []core.Subcommand{
+ {Name: "serve", Description: "Start ollama"},
+ {Name: "create", Description: "Create a model from a Modelfile"},
+ {Name: "show", Description: "Show information for a model"},
+ {Name: "run", Description: "Run a model"},
+ {Name: "stop", Description: "Stop the ollama server"},
+ {Name: "pull", Description: "Pull a model from a registry"},
+ {Name: "push", Description: "Push a model to a registry"},
+ {Name: "list", Description: "List models"},
+ {Name: "ps", Description: "List running models"},
+ {Name: "cp", Description: "Copy a model"},
+ {Name: "rm", Description: "Remove a model"},
+ {Name: "help", Description: "Help about any command"},
+ },
+ Options: []core.Option{
+ {Name: "-f", Description: "Specify Modelfile"},
+ {Name: "--verbose", Description: "Enable verbose output"},
+ {Name: "--help", Description: "Show help for ollama"},
+ {Name: "--version", Description: "Show version information"},
+ },
+ })
+}
diff --git a/commands/sys/omz.go b/commands/sys/omz.go
new file mode 100644
index 0000000..7be0cf1
--- /dev/null
+++ b/commands/sys/omz.go
@@ -0,0 +1,31 @@
+package sys
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "omz",
+ Description: "Oh My Zsh",
+ Subcommands: []core.Subcommand{
+ {Name: "help", Description: "Print the help message"},
+ {Name: "changelog", Description: "Print the changelog"},
+ {Name: "plugin", Description: "Manage plugins"},
+ {Name: "disable", Description: "Disable plugin(s)"},
+ {Name: "enable", Description: "Enable plugin(s)"},
+ {Name: "info", Description: "Get information of a plugin"},
+ {Name: "list", Description: "List all available Oh My Zsh plugins"},
+ {Name: "load", Description: "Load plugin(s)"},
+ {Name: "pr", Description: "Manage Oh My Zsh Pull Requests"},
+ {Name: "clean", Description: "Delete all PR branches (ohmyzsh/pull-*)"},
+ {Name: "test", Description: "Fetch PR #NUMBER and rebase against master"},
+ {Name: "reload", Description: "Reload the current zsh session"},
+ {Name: "theme", Description: "Manage themes"},
+ {Name: "set", Description: "Set a theme in your .zshrc file"},
+ {Name: "use", Description: "Load a theme"},
+ {Name: "update", Description: "Update Oh My Zsh"},
+ {Name: "version", Description: "Show the version"},
+ },
+ })
+}
diff --git a/commands/sys/pac.go b/commands/sys/pac.go
new file mode 100644
index 0000000..b1c616c
--- /dev/null
+++ b/commands/sys/pac.go
@@ -0,0 +1,106 @@
+package sys
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "pac",
+ Description: "7",
+ Subcommands: []core.Subcommand{
+ {Name: "admin", Description: "Work with your Power Platform Admin Account"},
+ {Name: "list", Description: "List all environments from your tenant"},
+ {Name: "create", Description: "Creates a Dataverse instance in your tenant"},
+ {Name: "backup", Description: "Takes a manual backup of your environment"},
+ {Name: "set-backup-retention-period", Description: "Takes a manual backup of your environment"},
+ {Name: "delete", Description: "Deletes the environment from your tenant"},
+ {Name: "reset", Description: "Reset the environment from your tenant"},
+ {Name: "list-backups", Description: "Lists all backups of your environment"},
+ {Name: "restore", Description: "Restores an environment to a given backup"},
+ {Name: "copy", Description: "Copy Source Environment to Destination Environment"},
+ {Name: "status", Description: "This command lists the status of all the operations in progress"},
+ {Name: "assign-user", Description: "Assign a user to a target Dataverse environment with specified security role"},
+ {Name: "assign-group", Description: "Assign group to target Dataverse environment with specified security role"},
+ {Name: "list-app-templates", Description: "Lists all supported Dataverse templates of model-driven apps in Dynamics 365"},
+ {Name: "list-service-principal", Description: "List Microsoft Entra ID applications which have access to Dataverse"},
+ {Name: "set-governance-config", Description: "Enable, disable, and edit managed environments"},
+ {Name: "list-tenant-settings", Description: "List tenant settings"},
+ {Name: "update-tenant-settings", Description: "Update tenant settings"},
+ {Name: "application", Description: "Work with Microsoft Entra ID applications"},
+ {Name: "register", Description: "Register Microsoft Entra ID application with your tenant"},
+ {Name: "unregister", Description: "Unregister Microsoft Entra ID application from your tenant"},
+ {Name: "install", Description: "Installs Dataverse application to given environment"},
+ {Name: "auth", Description: "Manage how you authenticate to various services"},
+ {Name: "select", Description: "Select which authentication profile should be active"},
+ {Name: "update", Description: "Update name or target environment of an existing authentication profile"},
+ {Name: "name", Description: "Name or rename an existing authentication profile"},
+ {Name: "clear", Description: "Clear all authentication profiles stored on this computer"},
+ {Name: "canvas", Description: "Operating with Power Apps .msapp files"},
+ {Name: "download", Description: "Download canvas app as .msapp file"},
+ {Name: "pack", Description: "(Preview) Pack sources into an msapp file"},
+ {Name: "unpack", Description: "(Preview) Extract an msapp file into sources"},
+ {Name: "catalog", Description: "Commands for working with Catalog in Power Platform"},
+ {Name: "submit", Description: "Submit catalog approval request"},
+ {Name: "connection", Description: "Commands for working with Dataverse connection"},
+ {Name: "connector", Description: "Commands for working with Power Platform Connectors"},
+ {Name: "init", Description: "Initializes a new API Properties file for a Connector"},
+ {Name: "copilot", Description: "Tools and utilities for copilot scenarios"},
+ {Name: "predict", Description: "Sends text or prompt to AI Model"},
+ {Name: "data", Description: "Import and export data from Dataverse"},
+ {Name: "export", Description: "Export data"},
+ {Name: "import", Description: "Import data"},
+ {Name: "help", Description: "Show help for the Microsoft Power Platform CLI"},
+ {Name: "modelbuilder", Description: "Code Generator for Dataverse APIs and Tables"},
+ {Name: "build", Description: "Builds a code model for Dataverse APIs and Tables"},
+ {Name: "org", Description: "Work with your Dataverse organization"},
+ {Name: "who", Description: "Displays information about the current Dataverse organization"},
+ {Name: "fetch", Description: "Performs FetchXML query against Dataverse"},
+ {Name: "list-settings", Description: "List environment settings"},
+ {Name: "update-settings", Description: "Update environment settings"},
+ {Name: "package", Description: "Commands for working with Dataverse package projects"},
+ },
+ Options: []core.Option{
+ {Name: "--environment", Description: "List all environments that contain given string in their name or ID"},
+ {Name: "--type", Description: "List all environments with the given type"},
+ {Name: "--name", Description: "List all environments that contain given string in their name"},
+ {Name: "--organization-id", Description: "List all environments that contain given string in their organization ID"},
+ {Name: "--application", Description: "Creates a Dataverse instance in your tenant"},
+ {Name: "--region", Description: "Sets the environment's region name. [defaults to unitedstates]"},
+ {Name: "--currency", Description: "Sets the currency used for your environment. [defaults to USD]"},
+ {Name: "--language", Description: "Sets the language used for your environment. [defaults to English]"},
+ {Name: "--templates", Description: "Optional boolean argument to run pac verbs asynchronously, defaults to false"},
+ {Name: "--team-id", Description: "Team ID as Guid"},
+ {Name: "--max-async-wait-time", Description: "Max asynchronous wait time in minutes. The default value is 60 minutes"},
+ {Name: "--user", Description: "Takes a manual backup of your environment"},
+ {Name: "--label", Description: "Sets the backup label as provided"},
+ {Name: "--notes", Description: "**ignored**: Additional notes for this backup"},
+ {Name: "--backup-retention-period", Description: "Optional boolean argument to run pac verbs asynchronously, defaults to false"},
+ {Name: "--domain", Description: "Sets the name of the environment"},
+ {Name: "--purpose", Description: "Sets the description used to associate the environment with a specific intent"},
+ {Name: "--source-env", Description: "Environment URL or ID of the source environment required for restore"},
+ {Name: "--target-env", Description: "DateTime of the backup in 'mm/dd/yyyy hh:mm' format OR string 'latest'"},
+ {Name: "--skip-audit-data", Description: "Switch indicating whether audit data should be skipped"},
+ {Name: "--async", Description: "Optional boolean argument to run pac verbs asynchronously, defaults to false"},
+ {Name: "--application-user", Description: "ID of business unit to associate application user with"},
+ {Name: "--group", Description: "Microsoft Entra ID object ID of group to assign to target Dataverse environment"},
+ {Name: "--group-name", Description: "Name of the group or team to create in Dataverse"},
+ {Name: "--role", Description: "Name or ID of security role to be applied to user"},
+ {Name: "--team-type", Description: "Type of team"},
+ {Name: "--membership-type", Description: "Team membership type"},
+ {Name: "--business-unit", Description: "ID of business unit to associate application user with"},
+ {Name: "--filter", Description: "Application name 'starts with' filter"},
+ {Name: "--max", Description: "Max number of applications to show. Default: 20"},
+ {Name: "--exclude-analysis", Description: "Exclude usage insights for the environment from the weekly digest email"},
+ {Name: "--include-insights", Description: "Include insights in the Power Platform Admin Center homepage cards"},
+ {Name: "--limit-sharing-mode", Description: "Limit sharing mode"},
+ {Name: "--max-limit-user-sharing", Description: "Solution checker validation mode"},
+ {Name: "--settings-file", Description: "The .json file to output tenant settings"},
+ {Name: "--application-id", Description: "Application Id"},
+ {Name: "--application-list", Description: "Manage how you authenticate to various services"},
+ {Name: "--kind", Description: "The kind of authentication profile you're creating"},
+ {Name: "--url", Description: "The resource URL to connect to"},
+ {Name: "--username", Description: "Optional: The password to authenticate with"},
+ },
+ })
+}
diff --git a/commands/sys/passwd.go b/commands/sys/passwd.go
new file mode 100644
index 0000000..836c464
--- /dev/null
+++ b/commands/sys/passwd.go
@@ -0,0 +1,17 @@
+package sys
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "passwd",
+ Description: "Modify a user",
+ Options: []core.Option{
+ {Name: "-i", Description: "Specify where the password update should be applied"},
+ {Name: "-l", Description: "The location of the chosen directory system"},
+ {Name: "-u", Description: "Specify the user name to use when authenticating to the directory node"},
+ },
+ })
+}
diff --git a/commands/sys/pathchk.go b/commands/sys/pathchk.go
new file mode 100644
index 0000000..1c2ff98
--- /dev/null
+++ b/commands/sys/pathchk.go
@@ -0,0 +1,15 @@
+package sys
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "pathchk",
+ Description: "Check pathnames for POSIX portability",
+ Options: []core.Option{
+ {Name: "-p", Description: "Pathname(s) to check"},
+ },
+ })
+}
diff --git a/commands/sys/pdfunite.go b/commands/sys/pdfunite.go
new file mode 100644
index 0000000..08fe661
--- /dev/null
+++ b/commands/sys/pdfunite.go
@@ -0,0 +1,16 @@
+package sys
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "pdfunite",
+ Description: "Combine multiple pdfs",
+ Options: []core.Option{
+ {Name: "-v", Description: "Print copyright and version info"},
+ {Name: "-h", Description: "Print usage information"},
+ },
+ })
+}
diff --git a/commands/sys/pkg_config.go b/commands/sys/pkg_config.go
new file mode 100644
index 0000000..5584a74
--- /dev/null
+++ b/commands/sys/pkg_config.go
@@ -0,0 +1,34 @@
+package sys
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "pkg-config",
+ Description: "Return metainformation about installed libraries",
+ Options: []core.Option{
+ {Name: "--mod-version", Description: "Display the version information of the libraries specified on the command line"},
+ {Name: "--version", Description: "Display the version of pkg-config and terminates"},
+ {Name: "--atleast-pkgconfig-version", Description: "Require at least the given version of pkg-config"},
+ {Name: "--help", Description: "Displays a help message and terminates"},
+ {Name: "--print-errors", Description: "Print short error messages"},
+ {Name: "--silence-errors", Description: "If printing errors, print them to stdout rather than the default stderr"},
+ {Name: "--debug", Description: "Print debugging information"},
+ {Name: "--cflags", Description: "Print link flags required to compile the packages on the command line"},
+ {Name: "--libs-only-L", Description: "Return the value of a variable defined in a package's .pc file"},
+ {Name: "--define-variable", Description: "Set a global value for a variable, overriding the value in any .pc files"},
+ {Name: "--print-variables", Description: "Return a list of all variables defined in the package"},
+ {Name: "--uninstalled", Description: "Test whether the packages on the command line exist"},
+ {Name: "--atleast-version", Description: "Check the syntax of a package's .pc file for validity"},
+ {Name: "--msvc-syntax", Description: "Use the installed location of the .pc file to determine the prefix"},
+ {Name: "--dont-define-prefix", Description: "Use the specified prefix variable value defined in the .pc file as the prefix"},
+ {Name: "--prefix-variable", Description: "Output libraries suitable for static linking"},
+ {Name: "--list-all", Description: "List all modules found in the pkg-config path"},
+ {Name: "--print-provides", Description: "List all modules the given packages provides"},
+ {Name: "--print-requires", Description: "List all modules the given packages requires"},
+ {Name: "--print-requires-private", Description: "List all modules the given packages requires for static linking"},
+ },
+ })
+}
diff --git a/commands/sys/pmset.go b/commands/sys/pmset.go
new file mode 100644
index 0000000..6ab26e3
--- /dev/null
+++ b/commands/sys/pmset.go
@@ -0,0 +1,42 @@
+package sys
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "pmset",
+ Description: "Display sleep timer (value in minutes, or 0 to disable)",
+ Subcommands: []core.Subcommand{
+ {Name: "live", Description: "Display the settings currently in use. (default if no argument given)"},
+ {Name: "custom", Description: "Display custom settings for all power sources"},
+ {Name: "cap", Description: "Display which power management features the machine supports"},
+ {Name: "sched", Description: "Display scheduled startup/wake and shutdown/sleep events"},
+ {Name: "ups", Description: "Display UPS emergency thresholds"},
+ {Name: "ps", Description: "Display status of batteries and UPSs"},
+ {Name: "pslog", Description: "Display an ongoing log of power source (battery and UPS)state"},
+ {Name: "rawlog", Description: "Display an ongoing log of battery state as read directly from battery"},
+ {Name: "profiles", Description: "Display the settings associated with each Energy Saver profile. 10.5+"},
+ {Name: "assertions", Description: "Display a summary of power assertions. 10.6+"},
+ {Name: "assertionslog", Description: "Show a log of assertion creations and releases. 10.6+"},
+ {Name: "sysloadlog", Description: "Display an ongoing log of lives changes to the system load advisory. 10.6+"},
+ {Name: "ac", Description: "Display details about an attached AC power adapter"},
+ {Name: "log", Description: "Display a history of sleeps, wakes, and other power management events"},
+ {Name: "uuid", Description: "Display the currently active sleep/wake UUID"},
+ {Name: "history", Description: "A debugging tool. Prints a timeline of system sleeplwake UUIDs"},
+ {Name: "historydetailed", Description: "Prints driver-level timings for a sleep/wake. Pass a UUID as an argument"},
+ {Name: "everything", Description: "Print output from every argument under the GETTING header 10.8+"},
+ {Name: "UUID", Description: "Used for historydetailed"},
+ {Name: "schedule", Description: "For setting up one-time power events"},
+ {Name: "repeat", Description: "For setting up daily/weekly power on and power off events"},
+ },
+ Options: []core.Option{
+ {Name: "-g", Description: "GETTING"},
+ {Name: "-a", Description: "Settings for all"},
+ {Name: "-b", Description: "Settings for battery"},
+ {Name: "-c", Description: "Settings for charger"},
+ {Name: "-u", Description: "Settings for UPS"},
+ },
+ })
+}
diff --git a/commands/sys/pocketbase.go b/commands/sys/pocketbase.go
new file mode 100644
index 0000000..562764b
--- /dev/null
+++ b/commands/sys/pocketbase.go
@@ -0,0 +1,35 @@
+package sys
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "pocketbase",
+ Description: "PocketBase CLI",
+ Subcommands: []core.Subcommand{
+ {Name: "help", Description: "Help about any command"},
+ {Name: "migrate", Description: "Executes DB migration scripts"},
+ {Name: "folder", Description: "Migrations folder"},
+ {Name: "create", Description: "Creates new migration template file"},
+ {Name: "name", Description: "Migration file name"},
+ {Name: "down", Description: "Reverts the last [number] applied migrations"},
+ {Name: "number", Description: "Number of applied migrations to revert"},
+ {Name: "up", Description: "Runs all available migrations"},
+ {Name: "serve", Description: "Starts the web server (default to 127.0.0.1:8090)"},
+ {Name: "string", Description: "API HTTP server address"},
+ {Name: "strings", Description: "CORS allowed domain origins list"},
+ },
+ Options: []core.Option{
+ {Name: "--http", Description: "API HTTP server address"},
+ {Name: "--https", Description: "API HTTPS server address (auto TLS via Let's Encrypt)"},
+ {Name: "--origins", Description: "CORS allowed domain origins list (default [*])"},
+ {Name: "--debug", Description: "Enable debug mode, aka showing more detailed logs"},
+ {Name: "--dir", Description: "PocketBase data directory"},
+ {Name: "--encryptionEnv", Description: "Encryption environment variable name"},
+ {Name: "-h", Description: "Show help for pocketbase"},
+ {Name: "-v", Description: "Show version for pocketbase"},
+ },
+ })
+}
diff --git a/commands/sys/prisma.go b/commands/sys/prisma.go
new file mode 100644
index 0000000..45107c6
--- /dev/null
+++ b/commands/sys/prisma.go
@@ -0,0 +1,61 @@
+package sys
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "prisma",
+ Description: "Display this help message",
+ Subcommands: []core.Subcommand{
+ {Name: "init", Description: "Setup Prisma for your app"},
+ {Name: "generate", Description: "Generate artifacts (e.g. Prisma Client)"},
+ {Name: "studio", Description: "Open Prisma Studio"},
+ {Name: "format", Description: "Format your schema"},
+ {Name: "migrate", Description: "Migrate your database"},
+ {Name: "resolve", Description: "Resolve issues with database migrations in deployment databases"},
+ {Name: "status", Description: "Check the status of your database migrations"},
+ {Name: "db", Description: "Manage your database schema and lifecycle (Preview)"},
+ {Name: "version", Description: "Print current version of Prisma components"},
+ },
+ Options: []core.Option{
+ {Name: "-h", Description: "Display this help message"},
+ {Name: "--schema", Description: "Custom path to your Prisma schema"},
+ {Name: "--skip-seed", Description: "Skip triggering seed"},
+ {Name: "--skip-generate", Description: "Skip triggering generators (e.g. Prisma Client)"},
+ {Name: "--datasource-provider", Description: "Define the datasource provider to use"},
+ {Name: "--url", Description: "Define a custom datasource url"},
+ {Name: "--data-proxy", Description: "Enable the Data Proxy in the Prisma Client"},
+ {Name: "--no-hints", Description: "Hides the hint messages but still outputs errors and warnings"},
+ {Name: "--no-engine", Description: "Generate a client for use with Accelerate only"},
+ {Name: "--watch", Description: "Watch the Prisma schema and rerun after a change"},
+ {Name: "--allow-no-models", Description: "Allow generating a client without models"},
+ {Name: "-p", Description: "Port to start Studio on"},
+ {Name: "-b", Description: "Browser to open Studio in"},
+ {Name: "-n", Description: "Hostname to bind the Express server to"},
+ {Name: "--create-only", Description: "The name of the migration. If no name is provided, the CLI will prompt you"},
+ {Name: "-f", Description: "Skip the confirmation prompt"},
+ {Name: "--applied", Description: "Record a specific migration as applied"},
+ {Name: "--rolled-back", Description: "Record a specific migration as rolled back"},
+ {Name: "--from-url", Description: "A datasource url"},
+ {Name: "--to-url", Description: "A datasource url"},
+ {Name: "--from-empty", Description: "Flag to assume from is an empty datamodel"},
+ {Name: "--to-empty", Description: "Flag to assume to is an empty datamodel"},
+ {Name: "--from-schema-datamodel", Description: "Path to a Prisma schema file, uses the 'datamodel' for the diff"},
+ {Name: "--to-schema-datamodel", Description: "Path to a Prisma schema file, uses the 'datamodel' for the diff"},
+ {Name: "--from-schema-datasource", Description: "Path to a Prisma schema file, uses the 'datasource url' for the diff"},
+ {Name: "--to-schema-datasource", Description: "Path to a Prisma schema file, uses the 'datasource url' for the diff"},
+ {Name: "--from-migrations", Description: "Path to the Prisma Migrate migrations directory"},
+ {Name: "--to-migrations", Description: "Path to the Prisma Migrate migrations directory"},
+ {Name: "--shadow-database-url", Description: "Manage your database schema and lifecycle (Preview)"},
+ {Name: "--force", Description: "Ignore current Prisma schema file"},
+ {Name: "--print", Description: "Print the introspected Prisma schema to stdout"},
+ {Name: "--composite-type-depth", Description: "Skip generation of artifacts such as Prisma Client"},
+ {Name: "--force-reset", Description: "Seed your database"},
+ {Name: "--file", Description: "Path to a file. The content will be sent as the script to be executed"},
+ {Name: "--stdin", Description: "Use the terminal standard input as the script to be executed"},
+ {Name: "--json", Description: "Output JSON"},
+ },
+ })
+}
diff --git a/commands/sys/pro.go b/commands/sys/pro.go
new file mode 100644
index 0000000..7cae645
--- /dev/null
+++ b/commands/sys/pro.go
@@ -0,0 +1,29 @@
+package sys
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "pro",
+ Description: "Manage Ubuntu Pro services from Canonical",
+ Subcommands: []core.Subcommand{
+ {Name: "attach", Description: "Connect an Ubuntu Pro support contract to this machine"},
+ {Name: "collect-logs", Description: "Create a tarball with all relevant logs and debug data"},
+ {Name: "detach", Description: "Remove Ubuntu Pro from this machine"},
+ {Name: "disable", Description: "Disable this machine's access to an Ubuntu Pro service"},
+ {Name: "enable", Description: "Activate and configure this machine's access to an Ubuntu Pro service"},
+ {Name: "fix", Description: "Fix a CVE or USN on the system by upgrading the appropriate package(s)"},
+ {Name: "refresh", Description: "Refresh contract and service details from Canonical"},
+ {Name: "status", Description: "Report current status of Ubuntu Pro services on system"},
+ },
+ Options: []core.Option{
+ {Name: "--no-auto-enable", Description: "Disable the automatic enablement of recommended entitlements"},
+ {Name: "--attach-config", Description: "Provide a file with configuration options"},
+ {Name: "-o", Description: "Path for tarball. Uses ua_logs.tar.gz in current directory if not specified"},
+ {Name: "--format", Description: "Output format"},
+ {Name: "--simulate-with-token", Description: "Include beta and unavailable services"},
+ },
+ })
+}
diff --git a/commands/sys/pry.go b/commands/sys/pry.go
new file mode 100644
index 0000000..c9ac21a
--- /dev/null
+++ b/commands/sys/pry.go
@@ -0,0 +1,30 @@
+package sys
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "pry",
+ Description: "Interactive Ruby",
+ Options: []core.Option{
+ {Name: "-e", Description: "A line of code to execute in context before the session starts"},
+ {Name: "--no-pager", Description: "Disable pager for long output"},
+ {Name: "--no-history", Description: "Disable history loading"},
+ {Name: "--no-color", Description: "Disable syntax highlighting for session"},
+ {Name: "-f", Description: "Suppress loading of pryrc"},
+ {Name: "-s", Description: "Only load specified plugin (and no others)"},
+ {Name: "-d", Description: "Disable a specific plugin"},
+ {Name: "--no-plugins", Description: "Suppress loading of plugins"},
+ {Name: "--plugins", Description: "List installed plugins"},
+ {Name: "--simple-prompt", Description: "Enable simple prompt mode"},
+ {Name: "--noprompt", Description: "No prompt mode"},
+ {Name: "-r", Description: "`require` a Ruby script at startup"},
+ {Name: "-I", Description: "Add a path to the $LOAD_PATH"},
+ {Name: "--gem", Description: "Shorthand for -I./lib -rgemname"},
+ {Name: "-v", Description: "Display the Pry version"},
+ {Name: "-c", Description: "Display this help message"},
+ },
+ })
+}
diff --git a/commands/sys/publish.go b/commands/sys/publish.go
new file mode 100644
index 0000000..7d1e4bc
--- /dev/null
+++ b/commands/sys/publish.go
@@ -0,0 +1,21 @@
+package sys
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "publish",
+ Description: "Set up a new website in the current folder",
+ Subcommands: []core.Subcommand{
+ {Name: "new", Description: "Set up a new website in the current folder"},
+ {Name: "deploy", Description: "Generate and deploy the website in the current folder"},
+ {Name: "generate", Description: "Generate the website in the current folder"},
+ },
+ Options: []core.Option{
+ {Name: "-p", Description: "Customize the port"},
+ {Name: "--help", Description: "Show help for publish"},
+ },
+ })
+}
diff --git a/commands/sys/pwd.go b/commands/sys/pwd.go
new file mode 100644
index 0000000..57d412f
--- /dev/null
+++ b/commands/sys/pwd.go
@@ -0,0 +1,16 @@
+package sys
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "pwd",
+ Description: "Return working directory name",
+ Options: []core.Option{
+ {Name: "-L", Description: "Display the logical current working directory"},
+ {Name: "-P", Description: "Display the physical current working directory"},
+ },
+ })
+}
diff --git a/commands/sys/rancher.go b/commands/sys/rancher.go
new file mode 100644
index 0000000..cb378d4
--- /dev/null
+++ b/commands/sys/rancher.go
@@ -0,0 +1,78 @@
+package sys
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "rancher",
+ Description: "Output format:",
+ Subcommands: []core.Subcommand{
+ {Name: "ls", Description: "List all apps in the current Rancher server"},
+ {Name: "delete", Description: "Delete an app"},
+ {Name: "APP_NAME/APP_ID", Description: "The name of the app to delete"},
+ {Name: "install", Description: "Install an app template"},
+ {Name: "TEMPLATE_NAME/TEMPLATE_PATH", Description: "Install an app template in the current Rancher server"},
+ {Name: "APP_NAME", Description: "The name of the app to install"},
+ {Name: "rollback", Description: "Rollback an app to a previous version"},
+ {Name: "REVISION_ID/REVISION_NAME", Description: "The name/id of the revision to rollback"},
+ {Name: "upgrade", Description: "Upgrade an existing app to a newer version"},
+ {Name: "list-templates", Description: "List templates available for installation"},
+ {Name: "show-template", Description: "Show versions available to install for an app template"},
+ {Name: "show-app", Description: "Show an app's available versions and revisions"},
+ {Name: "show-notes", Description: "Show contents of apps notes.txt"},
+ {Name: "catalog", Description: "Operations with catalogs"},
+ {Name: "add", Description: "Add a catalog"},
+ {Name: "CATALOG_NAME", Description: "The name of the catalog to add"},
+ {Name: "CATALOG_URL", Description: "The URL of the catalog to add"},
+ {Name: "clusters", Description: "Operations on clusters"},
+ {Name: "context", Description: "Operations for the context"},
+ {Name: "globaldns", Description: "Operations on global DNS providers and entries"},
+ {Name: "inspect", Description: "View details of resources"},
+ {Name: "kubectl", Description: "Run kubectl commands"},
+ {Name: "login", Description: "Login to a Rancher server"},
+ {Name: "SERVER_URL", Description: "The server url you want to login to"},
+ {Name: "BEARER_TOKEN", Description: "The bearer token you want to use"},
+ {Name: "machines", Description: "Operations on machines"},
+ {Name: "multiclusterapps", Description: "Operations with multi-cluster apps"},
+ {Name: "namespaces", Description: "Operations on namespaces"},
+ {Name: "nodes", Description: "Operations on nodes"},
+ {Name: "projects", Description: "Operations on projects"},
+ {Name: "ps", Description: "Show workloads in a project"},
+ {Name: "server", Description: "Operations for the server"},
+ {Name: "current", Description: "Display the current server"},
+ {Name: "SERVER_NAME", Description: "The name of server you want to delete"},
+ {Name: "switch", Description: "Switch to a new server"},
+ {Name: "settings", Description: "Show settings for the current server"},
+ {Name: "get", Description: "Print a setting"},
+ {Name: "SETTING_NAME", Description: "The name of setting you want to get"},
+ {Name: "set", Description: "Set the value for a setting"},
+ {Name: "SETTINGNAME", Description: "The name of setting you want to set"},
+ {Name: "SETTING_VALUE", Description: "The value of setting you want to set"},
+ {Name: "ssh", Description: "SSH into a node"},
+ {Name: "up", Description: "Apply compose config"},
+ {Name: "wait", Description: "Wait for resources cluster, app, project, multiClusterApp"},
+ {Name: "token", Description: "Authenticate and generate new kubeconfig token"},
+ {Name: "help", Description: "Shows a list of commands or help for one command"},
+ },
+ Options: []core.Option{
+ {Name: "--format", Description: "Output format: 'json', 'yaml' or custom format"},
+ {Name: "--quiet", Description: "Only display IDs or suppress help text"},
+ {Name: "--help", Description: "Show help"},
+ {Name: "--answers", Description: "Path to a helm values file"},
+ {Name: "--namespace", Description: "Namespace to install the app into"},
+ {Name: "--set", Description: "Set answers for the template, can be used multiple times. Example: --set foo=bar"},
+ {Name: "--set-string", Description: "Version of the template to use"},
+ {Name: "--no-prompt", Description: "Rollback an app to a previous version"},
+ {Name: "--verbose", Description: "Add a catalog"},
+ {Name: "--branch", Description: "Branch from the url to use (default: 'master')"},
+ {Name: "--helm-version", Description: "Operations on clusters"},
+ {Name: "--token", Description: "API Bearer Token to authenticate Rancher CLI to your Rancher server"},
+ {Name: "--default", Description: "SSH into a node"},
+ {Name: "--debug", Description: "Debug logging"},
+ {Name: "--config", Description: "Path to rancher config (default: `$home/.rancher`) [$RANCHER_CONFIG_DIR]"},
+ {Name: "--version", Description: "Print the version"},
+ },
+ })
+}
diff --git a/commands/sys/repeat.go b/commands/sys/repeat.go
new file mode 100644
index 0000000..52f2821
--- /dev/null
+++ b/commands/sys/repeat.go
@@ -0,0 +1,12 @@
+package sys
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "repeat",
+ Description: "Interpret the result as a number and repeat the commands this many times",
+ })
+}
diff --git a/commands/sys/rscript.go b/commands/sys/rscript.go
new file mode 100644
index 0000000..68d0a0e
--- /dev/null
+++ b/commands/sys/rscript.go
@@ -0,0 +1,27 @@
+package sys
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "rscript",
+ Description: "Scripting Front-End for R",
+ Options: []core.Option{
+ {Name: "-e", Description: "R expression to run"},
+ {Name: "--help", Description: "Print usage and exit"},
+ {Name: "--version", Description: "Print version and exit"},
+ {Name: "--verbose", Description: "Print information on progress"},
+ {Name: "--no-echo", Description: "Run as quietly as possible"},
+ {Name: "--no-restore", Description: "Don't restore anything"},
+ {Name: "--save", Description: "Do save workspace at the end of the session"},
+ {Name: "--no-environ", Description: "Don't read the site and user environment files"},
+ {Name: "--no-site-file", Description: "Don't read the site-wide Rprofile"},
+ {Name: "--no-init-file", Description: "Don't read the user R profile"},
+ {Name: "--restore", Description: "Do restore previously saved objects at startup"},
+ {Name: "--vanilla", Description: "Combine --no-save, --no-restore, --no-site-file --no-init-file and --no-environ"},
+ {Name: "--default-packages", Description: "Comma separated list of default packages"},
+ },
+ })
+}
diff --git a/commands/sys/sam.go b/commands/sys/sam.go
new file mode 100644
index 0000000..f62bfcb
--- /dev/null
+++ b/commands/sys/sam.go
@@ -0,0 +1,73 @@
+package sys
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "sam",
+ Description: "Host of locally emulated Lambda container",
+ Subcommands: []core.Subcommand{
+ {Name: "init", Description: "Init an AWS SAM application"},
+ {Name: "text", Description: "Template name"},
+ {Name: "validate", Description: "Validate an AWS SAM template"},
+ {Name: "build", Description: "Build your Lambda function code"},
+ {Name: "local", Description: "Run your Serverless application locally for quick development & testing"},
+ {Name: "invoke", Description: "Invokes a local Lambda function once"},
+ {Name: "start-api", Description: "Sets up a local endpoint you can use to test your API"},
+ {Name: "start-lambda", Description: "Starts a local endpoint you can use to invoke your local Lambda functions"},
+ {Name: "package", Description: "Package an AWS SAM application"},
+ {Name: "deploy", Description: "Deploy an AWS SAM application"},
+ {Name: "delete", Description: "Delete an AWS SAM application and the artifacts created by `sam deploy`"},
+ {Name: "logs", Description: "Fetch logs for a function"},
+ {Name: "publish", Description: "Publish a packaged AWS SAM template to the AWS Serverless Application Repository"},
+ {Name: "traces", Description: "[Beta Feature] Fetch AWS X-Ray traces"},
+ {Name: "sync", Description: "[Beta Feature] Sync a project to AWS"},
+ {Name: "pipeline", Description: "Manage the continuous delivery of the application"},
+ {Name: "bootstrap", Description: "Generates the required AWS resources to connect your CI/CD system"},
+ },
+ Options: []core.Option{
+ {Name: "--config-env", Description: "Host of locally emulated Lambda container"},
+ {Name: "--container-host-interface", Description: "Additional arguments to be passed to the debugger"},
+ {Name: "--debugger-path", Description: "Host path to a debugger to mount into the Lambda container"},
+ {Name: "--docker-network", Description: "Location basedir where the SAM file exists"},
+ {Name: "-n", Description: "JSON file containing values for Lambda function environment variables"},
+ {Name: "--force-image-build", Description: "Whether the image should be rebuilt"},
+ {Name: "--force-upload", Description: "Show help for sam"},
+ {Name: "--host", Description: "Local hostname or IP address to bind to"},
+ {Name: "--image-repository", Description: "Specify mapping of Function Logical ID to ECR Repo uri"},
+ {Name: "-ii", Description: "Container image URIs for invoking functions or starting api and function"},
+ {Name: "--kms-key-id", Description: "Location where Layers your template uses will be downloaded to"},
+ {Name: "-l", Description: "Log file to send runtime logs to"},
+ {Name: "--metadata", Description: "Does not showcase a progress bar when uploading artifacts to s3"},
+ {Name: "--parameter-overrides", Description: "Local port to listen on"},
+ {Name: "--profile", Description: "Select a specific profile from your credential file to get AWS credentials"},
+ {Name: "-g", Description: "Set the AWS Region of the service"},
+ {Name: "--resolve-s3", Description: "The prefix name is a path name (folder name) for the S3 bucket"},
+ {Name: "--signing-profiles", Description: "A string that contains Code Sign configuration parameters"},
+ {Name: "--shutdown", Description: "AWS SAM template file"},
+ {Name: "--use-json", Description: "Specific how SAM manages the containers for each function"},
+ {Name: "--no-interactive", Description: "Architectures your Lambda function will run on"},
+ {Name: "-r", Description: "Lambda Runtime for your app"},
+ {Name: "-p", Description: "Package type for your app"},
+ {Name: "-i", Description: "Lambda Image of your app"},
+ {Name: "-d", Description: "Dependency manager for your Lambda runtime"},
+ {Name: "-o", Description: "Where to output the initialized app into"},
+ {Name: "--app-template", Description: "Identifier of the managed application template you want to use"},
+ {Name: "--no-input", Description: "Disable Cookiecutter prompting and accept default values defined template config"},
+ {Name: "--extra-context", Description: "Override any custom parameters in the template's cookiecutter.json configuration"},
+ {Name: "-u", Description: "If your functions depend on packages that have natively compiled dependencies,"},
+ {Name: "-e", Description: "Input environment variables through command line to pass into build containers,"},
+ {Name: "-ef", Description: "Container image URIs"},
+ {Name: "-b", Description: "Path to a folder where the built artifacts will be stored"},
+ {Name: "-cd", Description: "The folder where the cached artifacts are stored with `--cached` is specified"},
+ {Name: "-s", Description: "Resolve relative paths to function's source code with respect to this folder"},
+ {Name: "-m", Description: "Path to a custom dependency manifest to use instead of the default one"},
+ {Name: "-c", Description: "Should beta features be enabled"},
+ {Name: "--output-template-file", Description: "Deploy an AWS SAM application"},
+ {Name: "--no-prompts", Description: "Specify this flag to allow SAM CLI to skip through the guided prompts"},
+ {Name: "--semantic-version", Description: "The value provided here overrides SemanticVersion in the template metadata"},
+ },
+ })
+}
diff --git a/commands/sys/sanity.go b/commands/sys/sanity.go
new file mode 100644
index 0000000..5bcca5a
--- /dev/null
+++ b/commands/sys/sanity.go
@@ -0,0 +1,94 @@
+package sys
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "sanity",
+ Description: "Displays help information about Sanity",
+ Subcommands: []core.Subcommand{
+ {Name: "help", Description: "Displays help information about Sanity"},
+ {Name: "build", Description: "Builds the current Sanity configuration to a static bundle"},
+ {Name: "codemod", Description: "Runs a code modification script"},
+ {Name: "configcheck", Description: "Checks if the required configuration files for plugins exists and are up to date"},
+ {Name: "cors", Description: "Interact with CORS-entries for your project"},
+ {Name: "add", Description: "Allow a new origin to use your project API through CORS"},
+ {Name: "origin", Description: "The origin to allow"},
+ {Name: "delete", Description: "Delete an existing CORS-origin from your project"},
+ {Name: "list", Description: "List all origins allowed to access the API for this project"},
+ {Name: "dataset", Description: "Interact with datasets in your project"},
+ {Name: "alias", Description: "You can manage your dataset alias using this command"},
+ {Name: "create", Description: "Create a new dataset within your project"},
+ {Name: "export", Description: "Export dataset to local filesystem as a gzipped tarball"},
+ {Name: "import", Description: "Import documents to given dataset from ndjson file"},
+ {Name: "visibility", Description: "Set visibility of a dataset"},
+ {Name: "debug", Description: "Gathers information on Sanity environment"},
+ {Name: "deploy", Description: "Deploys a statically built Sanity studio"},
+ {Name: "docs", Description: "Opens the Sanity documentation"},
+ {Name: "documents", Description: "Interact with documents in your project"},
+ {Name: "get", Description: "Get and print a document by ID"},
+ {Name: "query", Description: "Query for documents"},
+ {Name: "exec", Description: "Runs a script in Sanity context"},
+ {Name: "graphql", Description: "Interact with GraphQL APIs"},
+ {Name: "undeploy", Description: "Remove a deployed GraphQL API"},
+ {Name: "hook", Description: "Interact with hooks in your project"},
+ {Name: "attempt", Description: "Print details of a given webhook delivery attempt"},
+ {Name: "logs", Description: "List latest log entries for a given hook"},
+ {Name: "init", Description: "Initialize a new Sanity project or plugin"},
+ {Name: "install", Description: "Installs a Sanity plugin to the current Sanity configuration"},
+ {Name: "logout", Description: "Logs out of the Sanity.io session"},
+ {Name: "manage", Description: "Opens the Sanity project management UI"},
+ {Name: "projects", Description: "Interact with projects connected to your logged in user"},
+ {Name: "start", Description: "Starts a web server for the Content Studio"},
+ {Name: "uninstall", Description: "Removes a Sanity plugin from the current Sanity configuration"},
+ {Name: "upgrade", Description: "Upgrades all (or some) Sanity modules to their latest versions"},
+ {Name: "users", Description: "Manage users of your project"},
+ {Name: "invite", Description: "Invite a new user to the project"},
+ {Name: "versions", Description: "Shows the installed versions of Sanity CLI and core components"},
+ },
+ Options: []core.Option{
+ {Name: "--source-maps", Description: "Enable source maps for built bundles (increases size of bundle)"},
+ {Name: "--no-minify", Description: "Skip minifying built JavaScript (speeds up build, increases size of bundle)"},
+ {Name: "-y", Description: "Use unattended mode, accepting defaults and using only flags for choices"},
+ {Name: "--dry", Description: "Dry run (no changes are made to files)"},
+ {Name: "--extensions", Description: "Skip verification before running codemod"},
+ {Name: "--credentials", Description: "Allow credentials (token/cookie) to be sent from this origin"},
+ {Name: "--no-credentials", Description: "Disallow credentials (token/cookie) to be sent from this origin"},
+ {Name: "--force", Description: "Skips security prompt and forces link command"},
+ {Name: "--detach", Description: "Start the copy without waiting for it to finish"},
+ {Name: "--attach", Description: "Attach to the running copy process to show progress"},
+ {Name: "--skip-history", Description: "Don't preserve document history on copy"},
+ {Name: "--list", Description: "Lists all dataset copy jobs corresponding to a certain criteria"},
+ {Name: "--offset", Description: "Start position in the list of jobs. Default 0. With --list"},
+ {Name: "--limit", Description: "Maximum number of jobs returned. Default 10. Maximum 1000. With --list"},
+ {Name: "--visibility", Description: "Set visibility for this dataset (public/private)"},
+ {Name: "--raw", Description: "Extract only documents, without rewriting asset references"},
+ {Name: "--no-assets", Description: "Export only non-asset documents and remove references to image assets"},
+ {Name: "--no-drafts", Description: "Export only published versions of documents"},
+ {Name: "--no-compress", Description: "Skips compressing tarball entries (still generates a gzip file)"},
+ {Name: "--types", Description: "Defines which document types to export"},
+ {Name: "--overwrite", Description: "Overwrite any file with the same name"},
+ {Name: "--asset-concurrency", Description: "Concurrent number of asset downloads"},
+ {Name: "--missing", Description: "On duplicate document IDs, skip importing document in question"},
+ {Name: "--replace", Description: "On duplicate document IDs, replace existing document with imported document"},
+ {Name: "--allow-failing-assets", Description: "Skip assets that cannot be fetched/uploaded"},
+ {Name: "--replace-assets", Description: "Skip reuse of existing assets"},
+ {Name: "--secrets", Description: "Include API keys in output"},
+ {Name: "--no-build", Description: "Opens the Sanity documentation"},
+ {Name: "--watch", Description: "Write the documents whenever the target file or buffer changes"},
+ {Name: "--json5", Description: "Specify a document ID to use. Will fetch remote document ID and populate editor"},
+ {Name: "--dataset", Description: "NAME to override dataset"},
+ {Name: "--pretty", Description: "Colorized JSON output"},
+ {Name: "--api-version", Description: "API version to use (defaults to `v1`)"},
+ {Name: "--with-user-token", Description: "Preload access token from CLI config into 'part:@sanity/base/client' part"},
+ {Name: "--mock-browser-env", Description: "Mocks a browser-like environment using jsdom"},
+ {Name: "--tag", Description: "Deploy API to given tag (defaults to 'default')"},
+ {Name: "--generation", Description: "API generation to deploy (defaults to 'gen3')"},
+ {Name: "--non-null-document-fields", Description: "Set document interface fields (_id, _type etc) as non-null"},
+ {Name: "--playground", Description: "Deploy a GraphQL playground for easily testing queries (public)"},
+ {Name: "--no-playground", Description: "Skip playground prompt (do not deploy a playground)"},
+ },
+ })
+}
diff --git a/commands/sys/screen.go b/commands/sys/screen.go
new file mode 100644
index 0000000..624f551
--- /dev/null
+++ b/commands/sys/screen.go
@@ -0,0 +1,46 @@
+package sys
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "screen",
+ Description: "Screen manager with VT100/ANSI terminal emulation",
+ Subcommands: []core.Subcommand{
+ {Name: "name", Description: "Name of the screen session"},
+ },
+ Options: []core.Option{
+ {Name: "-d", Description: "Does not start screen, but detaches the elsewhere running screen session"},
+ {Name: "-r", Description: "Reattach a session and if necessary detach it first"},
+ {Name: "-R", Description: "Reattach a session and if necessary detach or even create it first"},
+ {Name: "-RR", Description: "Does not start screen, but detaches the elsewhere running screen session"},
+ {Name: "-dmS", Description: "Start as daemon: Screen session in detached mode"},
+ {Name: "-a", Description: "Force all capabilities into each window's termcap"},
+ {Name: "-A", Description: "Adapt all windows to the new display width & height"},
+ {Name: "-c", Description: "Read configuration file instead of '.screenrc'"},
+ {Name: "-e", Description: "Change command characters"},
+ {Name: "-f", Description: "Flow control on"},
+ {Name: "-fn", Description: "Flow control off"},
+ {Name: "-fa", Description: "Flow control automatic"},
+ {Name: "-h", Description: "Set the size of the scrollback history buffer"},
+ {Name: "-i", Description: "Interrupt output sooner when flow control is on"},
+ {Name: "-list", Description: "Do nothing, just list our SockDir"},
+ {Name: "-L", Description: "Turn on output logging"},
+ {Name: "-m", Description: "Ignore $STY variable, do create a new screen session"},
+ {Name: "-O", Description: "Choose optimal output rather than exact vt100 emulation"},
+ {Name: "-p", Description: "Preselect the named window if it exists"},
+ {Name: "-q", Description: "Quiet startup. Exits with non-zero return code if unsuccessful"},
+ {Name: "-s", Description: "Shell to execute rather than $SHELL"},
+ {Name: "-S", Description: "Name this session .sockname instead of .."},
+ {Name: "-t", Description: "Set title. (window's name)"},
+ {Name: "-T", Description: "Use term as $TERM for windows, rather than 'screen'"},
+ {Name: "-U", Description: "Tell screen to use UTF-8 encoding"},
+ {Name: "-v", Description: "Print 'Screen version 4.00.03 (FAU) 23-Oct-06'"},
+ {Name: "-wipe", Description: "Do nothing, just clean up SockDir"},
+ {Name: "-x", Description: "Attach to a not detached screen. (Multi display mode)"},
+ {Name: "-X", Description: "Execute as a screen command in the specified session"},
+ },
+ })
+}
diff --git a/commands/sys/shell_config.go b/commands/sys/shell_config.go
new file mode 100644
index 0000000..dc16086
--- /dev/null
+++ b/commands/sys/shell_config.go
@@ -0,0 +1,30 @@
+package sys
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "shell-config",
+ Description: "Display help for command",
+ Subcommands: []core.Subcommand{
+ {Name: "install", Description: "Install MacOS setup with Multi-Selection"},
+ {Name: "shell", Description: "Setup a shell configuration with a robust set of tools and architecture"},
+ {Name: "update", Description: "Update the CLI to the latest version"},
+ {Name: "assets", Description: "Configure your shell assets, such as `gitprofile` and `npmrc`"},
+ {Name: "external", Description: "Install and manage your external shell"},
+ {Name: "list", Description: "Show list of all exists externals shells"},
+ {Name: "file_path", Description: "File to set as external shell"},
+ {Name: "external_name", Description: "Name to register under the registry"},
+ {Name: "delete", Description: "Delete external shell"},
+ {Name: "help", Description: "Display help for command"},
+ },
+ Options: []core.Option{
+ {Name: "-h", Description: "Display help for command"},
+ {Name: "-t", Description: "Select update version"},
+ {Name: "-m", Description: "Daemon check for update notification. When specified is true"},
+ {Name: "-V", Description: "Output the version number"},
+ },
+ })
+}
diff --git a/commands/sys/shortcuts.go b/commands/sys/shortcuts.go
new file mode 100644
index 0000000..521cd93
--- /dev/null
+++ b/commands/sys/shortcuts.go
@@ -0,0 +1,25 @@
+package sys
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "shortcuts",
+ Description: "Run a shortcut",
+ Subcommands: []core.Subcommand{
+ {Name: "help", Description: "Show help information"},
+ },
+ Options: []core.Option{
+ {Name: "-i", Description: "The input to provide to the shortcut"},
+ {Name: "-o", Description: "Where to write the shortcut output, if applicable"},
+ {Name: "--output-type", Description: "JavaScript Object Notation (JSON)"},
+ {Name: "--folder-name", Description: "The name of the folder to list"},
+ {Name: "--folders", Description: "List folders instead of shortcuts"},
+ {Name: "--input", Description: "The shortcut file to sign"},
+ {Name: "--output", Description: "Output path for the signed shortcut file"},
+ {Name: "--mode", Description: "The signing mode. (default: people-who-know-me)"},
+ },
+ })
+}
diff --git a/commands/sys/simctl.go b/commands/sys/simctl.go
new file mode 100644
index 0000000..f136737
--- /dev/null
+++ b/commands/sys/simctl.go
@@ -0,0 +1,95 @@
+package sys
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "simctl",
+ Description: "Add photos, live photos, videos, or contacts to the library of a device",
+ Subcommands: []core.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: "", 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: []core.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"},
+ {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"},
+ },
+ })
+}
diff --git a/commands/sys/source.go b/commands/sys/source.go
new file mode 100644
index 0000000..449e67a
--- /dev/null
+++ b/commands/sys/source.go
@@ -0,0 +1,12 @@
+package sys
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "source",
+ Description: "Source files in shell",
+ })
+}
diff --git a/commands/sys/speedtest_cli.go b/commands/sys/speedtest_cli.go
new file mode 100644
index 0000000..5632967
--- /dev/null
+++ b/commands/sys/speedtest_cli.go
@@ -0,0 +1,28 @@
+package sys
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "speedtest-cli",
+ Description: "Command line interface for testing internet bandwidth using speedtest.net",
+ Options: []core.Option{
+ {Name: "--help", Description: "Show this help message and exit"},
+ {Name: "--no-download", Description: "Do not perform download test"},
+ {Name: "--no-upload", Description: "Do not perform upload test"},
+ {Name: "--single", Description: "Suppress verbose output, only show basic information"},
+ {Name: "--csv", Description: "Single character delimiter to use in CSV output. Default ','"},
+ {Name: "--csv-header", Description: "Print CSV headers"},
+ {Name: "--json", Description: "Display a list of speedtest.net servers sorted by distance"},
+ {Name: "--server", Description: "Specify a server ID to test against. Can be supplied multiple times"},
+ {Name: "--exclude", Description: "Exclude a server from selection. Can be supplied multiple times"},
+ {Name: "--mini", Description: "URL for the Speedtest Mini server"},
+ {Name: "--source", Description: "Source IP address to bind to"},
+ {Name: "--timeout", Description: "HTTP timeout in seconds. Default 10"},
+ {Name: "--secure", Description: "Use HTTPS instead of HTTP when communicating with speedtest.net operated servers"},
+ {Name: "--no-pre-allocate", Description: "Show the version number and exit"},
+ },
+ })
+}
diff --git a/commands/sys/spotify.go b/commands/sys/spotify.go
new file mode 100644
index 0000000..fb1cd0b
--- /dev/null
+++ b/commands/sys/spotify.go
@@ -0,0 +1,44 @@
+package sys
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "spotify",
+ Description: "CLI to use Spotify from the terminal",
+ Subcommands: []core.Subcommand{
+ {Name: "play", Description: "Resume playback where Spotify last left off"},
+ {Name: "song name", Description: "The name of the song to start playing"},
+ {Name: "album", Description: "Find an album by name and play it"},
+ {Name: "album name", Description: "The album name you want to play"},
+ {Name: "artist", Description: "Find an artist by name and play it"},
+ {Name: "artist name", Description: "The artist name you want to play"},
+ {Name: "list", Description: "Find a playlist by name and plays it"},
+ {Name: "playlist name", Description: "The playlist name you want to play"},
+ {Name: "uri", Description: "Play songs from specific uri"},
+ {Name: "next", Description: "Skip to the next song in a playlist"},
+ {Name: "prev", Description: "Return to the previous song in a playlist"},
+ {Name: "replay", Description: "Replay the current track from the beginning"},
+ {Name: "pos", Description: "Jump to a time (in secs) in the current song"},
+ {Name: "time", Description: "Exact time in secs to jump in"},
+ {Name: "pause", Description: "Pause (or resume) Spotify playback"},
+ {Name: "stop", Description: "Stop playback"},
+ {Name: "quit", Description: "Stop playback and quit Spotify"},
+ {Name: "vol", Description: "Show the current Spotify volume"},
+ {Name: "amount", Description: "Set the volume to an amount between 0 and 100"},
+ {Name: "up", Description: "Increase the volume by 10%"},
+ {Name: "down", Description: "Decrease the volume by 10%"},
+ {Name: "status", Description: "Show the current player status"},
+ {Name: "track", Description: "Show the currently playing track"},
+ {Name: "share", Description: "Display the current song's Spotify URL and URI"},
+ {Name: "url", Description: "Display the current song's Spotify URL and copies it to the clipboard"},
+ {Name: "shuffle", Description: "Toggle shuffle playback mode"},
+ {Name: "repeat", Description: "Toggle repeat playback mode"},
+ },
+ Options: []core.Option{
+ {Name: "--help", Description: "Show help for spotify"},
+ },
+ })
+}
diff --git a/commands/sys/st2.go b/commands/sys/st2.go
new file mode 100644
index 0000000..60688ed
--- /dev/null
+++ b/commands/sys/st2.go
@@ -0,0 +1,64 @@
+package sys
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "st2",
+ Description: "Show this help and exit",
+ Subcommands: []core.Subcommand{
+ {Name: "list", Description: "Get the list of actions"},
+ {Name: "get", Description: "Get individual action"},
+ {Name: "create", Description: "Create a new action"},
+ {Name: "update", Description: "Update an existing action"},
+ {Name: "delete", Description: "Delete an existing action"},
+ {Name: "enable", Description: "Enable an existing action"},
+ {Name: "disable", Description: "Disable an existing action"},
+ {Name: "execute", Description: "Invoke an action manually"},
+ },
+ Options: []core.Option{
+ {Name: "-h", Description: "Show this help and exit"},
+ {Name: "-t", Description: "Print output in JSON format"},
+ {Name: "-y", Description: "Print output in YAML format"},
+ {Name: "--attr", Description: "Display full detail of the execution in table format"},
+ {Name: "-k", Description: "How long (in milliseconds) to delay the execution before scheduling"},
+ {Name: "--tail", Description: "Automatically start tailing new execution"},
+ {Name: "--auto-dict", Description: "A trace tag string to track execution later"},
+ {Name: "--trace-id", Description: "Existing trace id for this execution"},
+ {Name: "-a", Description: "Do not wait for action to finish"},
+ {Name: "-e", Description: "User under which to run the action (admins only)"},
+ {Name: "-w", Description: "Set the width of the columns in output"},
+ {Name: "-p", Description: "Only return resources belonging to the provided pack"},
+ {Name: "-r", Description: "Return policies for the resource ref"},
+ {Name: "-pt", Description: "Return policies of the policy type"},
+ {Name: "-l", Description: "On successful authentication, print only token to the console"},
+ {Name: "-n", Description: "List N most recent; use -n -1 to fetch the full result set"},
+ {Name: "-s", Description: "Show all attributes"},
+ {Name: "--action", Description: "Action reference to filter the list"},
+ {Name: "--file", Description: "Local file path to the workflow definition"},
+ {Name: "--status", Description: "Trigger instance id to filter the list"},
+ {Name: "--show-secrets", Description: "Full list of attributes"},
+ {Name: "-m", Description: "Optional metadata to associate with the API Keys"},
+ {Name: "-x", Description: "Don't retrieve and display the result field"},
+ {Name: "--tasks", Description: "Name of the workflow tasks to re-run"},
+ {Name: "--no-reset", Description: "Type of output to tail for. If not provided, defaults to all"},
+ {Name: "--types", Description: "Types of content to register"},
+ {Name: "--include-metadata", Description: "Include metadata (timestamp, output type) with the output"},
+ {Name: "--prefix", Description: "Only return values with names starting with the provided prefix"},
+ {Name: "-d", Description: "Decrypt secrets and displays plain text"},
+ {Name: "--encrypted", Description: "Scope item is under. Example: 'user'"},
+ {Name: "--skip-dependencies", Description: "Skip dependencies"},
+ {Name: "--iftt", Description: "Show trigger and action in display list"},
+ {Name: "--enabled", Description: "Show enabled"},
+ {Name: "--disabled", Description: "Show disabled"},
+ {Name: "-g", Description: "Trigger type reference to filter the list"},
+ {Name: "-ty", Description: "Execution to filter the list"},
+ {Name: "--show-executions", Description: "Only show executions"},
+ {Name: "--show-rules", Description: "Only show rules"},
+ {Name: "--show-trigger-instances", Description: "Only show trigger instances"},
+ {Name: "--group-id", Description: "Group ID"},
+ },
+ })
+}
diff --git a/commands/sys/stack.go b/commands/sys/stack.go
new file mode 100644
index 0000000..56fe91d
--- /dev/null
+++ b/commands/sys/stack.go
@@ -0,0 +1,66 @@
+package sys
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "stack",
+ Description: "The Haskell Tool Stack",
+ Subcommands: []core.Subcommand{
+ {Name: "build", Description: "Build the package(s) in the current directory/configuration"},
+ {Name: "test", Description: "Shortcut for 'build --test'"},
+ {Name: "bench", Description: "Shortcut for 'build --bench'"},
+ {Name: "haddock", Description: "Shortcut for 'build --haddock'"},
+ {Name: "init", Description: "Create stack project config from cabal or hpack package specifications'"},
+ {Name: "setup", Description: "Get the appropriate GHC for your project"},
+ {Name: "path", Description: "Print out handy path information"},
+ {Name: "ls", Description: "List command. Supports snapshots, dependencies and stack's styles"},
+ {Name: "unpack", Description: "Unpack one or more packages locally"},
+ {Name: "update", Description: "Update the package index"},
+ {Name: "upgrade", Description: "Upgrade to the latest stack version"},
+ {Name: "upload", Description: "Upload a package to Hackage"},
+ {Name: "sdist", Description: "Create source distribution tarballs"},
+ {Name: "dot", Description: "Visualize your project's dependency graph using Graphviz dot"},
+ {Name: "repl", Description: "Load a REPL"},
+ },
+ Options: []core.Option{
+ {Name: "--help", Description: "Show help for stack"},
+ {Name: "--version", Description: "Show version for stack"},
+ {Name: "--numeric-version", Description: "Show only the numeric version for stack"},
+ {Name: "--hpack-numeric-version", Description: "Show only hpack's version number"},
+ {Name: "--verbosity", Description: "Verbosity: silent, error, warn, info, debug"},
+ {Name: "--verbose", Description: "Specialized GHC variant, e.g. integersimple (incompatible with --system-ghc)"},
+ {Name: "--ghc-build", Description: "Specialized GHC build, e.g. 'gmp4' or 'standard' (usually auto-detected)"},
+ {Name: "--jobs", Description: "Number of concurrent jobs to run. Should be provided as ARGS"},
+ {Name: "--extra-include-dirs", Description: "Extra directories to check for C header files"},
+ {Name: "--extra-lib-dir", Description: "Extra directories to check for libraries"},
+ {Name: "--color", Description: "Specify when to use color in output"},
+ {Name: "--compiler", Description: "Use the specified compiler"},
+ {Name: "--terminal", Description: "Enable overriding terminal detection in the case of running in a false terminal"},
+ {Name: "--no-terminal", Description: "Disable overriding terminal detection in the case of running in a false terminal"},
+ {Name: "--stack-colors", Description: "Specify stack's output styles"},
+ {Name: "--terminal-width", Description: "Specify the width of the terminal, used for pretty-print messages"},
+ {Name: "--stack-yaml", Description: "Override project stack.yaml file (overrides any STACK_YAML environment variable)"},
+ {Name: "--lock-file", Description: "Specify how to interact with lock files"},
+ {Name: "--resolver", Description: "Override resolver in project file"},
+ {Name: "--bench", Description: "Override resolver in project file"},
+ {Name: "--test", Description: "Run complete test suite"},
+ {Name: "--copy-bins", Description: "Enable opening the local Haddock"},
+ {Name: "--no-open", Description: "Disable opening the local Haddock"},
+ {Name: "--haddock-deps", Description: "Turn on all warnings(-Wall) and errors(-Werror)"},
+ {Name: "--only-locals", Description: "Watch all local files not taking targets into account"},
+ {Name: "-file-watch-poll", Description: "Like --file-watch, but polling the filesystem instead of using events"},
+ {Name: "--only-snapshot", Description: "Only build packages for the snapshot database, not the local database"},
+ {Name: "--only-configure", Description: "Enable library stripping for TARGETs and all its dependencies (default: enabled"},
+ {Name: "--no-library-stripping", Description: "Disable library stripping for TARGETs and all its dependencies (default: enabled"},
+ {Name: "--executable-stripping", Description: "Shortcut for 'build --test'"},
+ {Name: "--snapshot-location-base", Description: "The base location of LTS/Nightly snapshots"},
+ {Name: "--cwd", Description: "Sets the working directory before executing the command"},
+ {Name: "--setup-info-yaml", Description: "Alternate URL or relative / absolute path for stack dependencies"},
+ {Name: "--ghc-package-path", Description: "Additional package(s) that must be installed"},
+ {Name: "--stack-exe", Description: "Load a REPL"},
+ },
+ })
+}
diff --git a/commands/sys/starkli.go b/commands/sys/starkli.go
new file mode 100644
index 0000000..bd2583a
--- /dev/null
+++ b/commands/sys/starkli.go
@@ -0,0 +1,92 @@
+package sys
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "starkli",
+ Description: "Starkli, a โก blazing โก fast โก CLI tool for Starknet powered by ๐ฆ starknet-rs ๐ฆ",
+ Subcommands: []core.Subcommand{
+ {Name: "account", Description: "Account management commands"},
+ {Name: "fetch", Description: "Fetch account config from an already deployed account contract"},
+ {Name: "ADDRESS", Description: "Contract address"},
+ {Name: "deploy", Description: "Deploy account contract with a DeployAccount transaction"},
+ {Name: "FILE", Description: "Path to the account config file"},
+ {Name: "oz", Description: "Create and manage OpenZeppelin account contracts"},
+ {Name: "init", Description: "Create a new account configuration without actually deploying"},
+ {Name: "block", Description: "Get Starknet block"},
+ {Name: "BLOCK_ID", Description: "Block number, hash, or tag (latest/pending)"},
+ {Name: "block-hash", Description: "Get latest block hash"},
+ {Name: "block-number", Description: "Get latest block number"},
+ {Name: "block-time", Description: "Get Starknet block timestamp only"},
+ {Name: "call", Description: "Call contract functions without sending transactions"},
+ {Name: "CONTRACT_ADDRESS", Description: "Contract address"},
+ {Name: "SELECTOR", Description: "Name of the function being called"},
+ {Name: "CALLDATA", Description: "Raw function call arguments"},
+ {Name: "chain-id", Description: "Get Starknet network ID"},
+ {Name: "class-at", Description: "Get contract class deployed at a certain address"},
+ {Name: "class-by-hash", Description: "Get contract class by hash"},
+ {Name: "HASH", Description: "Class hash"},
+ {Name: "class-hash", Description: "Calculate class hash from any contract artifacts (Sierra, casm, legacy)"},
+ {Name: "class-hash-at", Description: "Get contract class hash deployed at a certain address"},
+ {Name: "completions", Description: "Generate shell completions script"},
+ {Name: "declare", Description: "Declare a contract class"},
+ {Name: "CLASS_HASH", Description: "Class hash"},
+ {Name: "CTOR_ARGS", Description: "Raw constructor arguments"},
+ {Name: "invoke", Description: "Send an invoke transaction from an account contract"},
+ {Name: "CALLS", Description: "One or more contract calls. See documentation for more details"},
+ {Name: "mont", Description: "Print the montgomery representation of a field element"},
+ {Name: "FELT", Description: "Encoded string value in felt, in decimal or hexadecimal representation"},
+ {Name: "nonce", Description: "Get nonce for a certain contract"},
+ {Name: "parse-cairo-string", Description: "Decode string from felt with the Cairo short string representation"},
+ {Name: "selector", Description: "Calculate selector from name"},
+ {Name: "NAME", Description: "Selector name"},
+ {Name: "signer", Description: "Signer management commands"},
+ {Name: "keystore", Description: "Keystore management commands"},
+ {Name: "new", Description: "Randomly generate a new keystore"},
+ {Name: "from-key", Description: "Create a keystore file from an existing private key"},
+ {Name: "inspect", Description: "Check the public key of an existing keystore file"},
+ {Name: "inspect-private", Description: "Check the private key of an existing keystore file"},
+ {Name: "gen-keypair", Description: "Randomly generate a new key pair"},
+ {Name: "state-update", Description: "Get state update from a certain block"},
+ {Name: "storage", Description: "Get storage value for a slot at a contract"},
+ {Name: "KEY", Description: "Storage key"},
+ {Name: "syncing", Description: "Get node syncing status"},
+ {Name: "to-cairo-string", Description: "Encode string into felt with the Cairo short string representation"},
+ {Name: "TEXT", Description: "Text to be encoded in felt"},
+ {Name: "transaction", Description: "Get Starknet transaction by hash"},
+ {Name: "transaction-receipt", Description: "Get transaction receipt by hash"},
+ },
+ Options: []core.Option{
+ {Name: "--rpc", Description: "Starknet JSON-RPC endpoint"},
+ {Name: "--network", Description: "Starknet network"},
+ {Name: "--force", Description: "Overwrite the file if it already exists"},
+ {Name: "--output", Description: "Path to save the account config file"},
+ {Name: "--log-traffic", Description: "Log raw request/response traffic of providers"},
+ {Name: "-h", Description: "Print help"},
+ {Name: "--keystore", Description: "Path to keystore JSON file"},
+ {Name: "--keystore-password", Description: "Supply keystore password from command line option instead of prompt"},
+ {Name: "--private-key", Description: "Private key in hex in plain text"},
+ {Name: "--max-fee", Description: "Maximum transaction fee in Ether (18 decimals)"},
+ {Name: "--max-fee-raw", Description: "Maximum transaction fee in Wei"},
+ {Name: "--estimate-only", Description: "Only estimate transaction fee without sending transaction"},
+ {Name: "--full", Description: "Fetch full transactions instead of hashes only"},
+ {Name: "--unix", Description: "Show block time in Unix timestamp format"},
+ {Name: "--rfc2822", Description: "Show block time in RFC 2822 format"},
+ {Name: "--no-decode", Description: "Do not show the decoded text"},
+ {Name: "--dec", Description: "Display the decimal instead of hexadecimal representation"},
+ {Name: "--compiler-version", Description: "Statically-linked Sierra compiler version"},
+ {Name: "--casm-hash", Description: "Override Sierra compilation and use CASM hash directly"},
+ {Name: "--account", Description: "Path to account config JSON file"},
+ {Name: "--watch", Description: "Wait for the transaction to confirm"},
+ {Name: "--not-unique", Description: "Do not derive contract address from deployer address"},
+ {Name: "--salt", Description: "Use the given salt to compute contract deploy address"},
+ {Name: "--hex", Description: "Emit array elements in hexadecimal format"},
+ {Name: "--password", Description: "Supply password from command line option instead of prompt"},
+ {Name: "--private-key-stdin", Description: "Take the private key from stdin instead of prompt"},
+ {Name: "--raw", Description: "Print the public key only"},
+ },
+ })
+}
diff --git a/commands/sys/su.go b/commands/sys/su.go
new file mode 100644
index 0000000..b203866
--- /dev/null
+++ b/commands/sys/su.go
@@ -0,0 +1,15 @@
+package sys
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "su",
+ Description: "(no letter) The same as -l",
+ Options: []core.Option{
+ {Name: "-f", Description: "(no letter) The same as -l"},
+ },
+ })
+}
diff --git a/commands/sys/sudo.go b/commands/sys/sudo.go
new file mode 100644
index 0000000..79e9d1e
--- /dev/null
+++ b/commands/sys/sudo.go
@@ -0,0 +1,17 @@
+package sys
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "sudo",
+ Description: "Execute a command as the superuser or another user",
+ Options: []core.Option{
+ {Name: "-g", Description: "Run command as the specified group name or ID"},
+ {Name: "-h", Description: "Display help message and exit"},
+ {Name: "-u", Description: "Run command as specified user name or ID"},
+ },
+ })
+}
diff --git a/commands/sys/sysctl.go b/commands/sys/sysctl.go
new file mode 100644
index 0000000..df655c9
--- /dev/null
+++ b/commands/sys/sysctl.go
@@ -0,0 +1,25 @@
+package sys
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "sysctl",
+ Description: "Variable name",
+ Options: []core.Option{
+ {Name: "-A", Description: "List all the currently available non-opaque values"},
+ {Name: "-b", Description: "Force the value of the variable(s) to be output in raw, binary format"},
+ {Name: "-d", Description: "Print the description of the variable instead of its value"},
+ {Name: "-e", Description: "Separate the name and the value of the variable(s) with '='"},
+ {Name: "-h", Description: "Format output for human, rather than machine, readability"},
+ {Name: "-i", Description: "Ignore unknown OIDs"},
+ {Name: "-N", Description: "Show only variable names, not their values"},
+ {Name: "-n", Description: "Show only variable values, not their names"},
+ {Name: "-o", Description: "Show opaque variables (which are normally suppressed)"},
+ {Name: "-q", Description: "Suppress some warnings generated by sysctl to standard error"},
+ {Name: "-X", Description: "Equivalent to -x -a (for compatibility)"},
+ },
+ })
+}
diff --git a/commands/sys/systemctl.go b/commands/sys/systemctl.go
new file mode 100644
index 0000000..e89dcce
--- /dev/null
+++ b/commands/sys/systemctl.go
@@ -0,0 +1,106 @@
+package sys
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "systemctl",
+ Description: "Control the systemd system and service manager",
+ Subcommands: []core.Subcommand{
+ {Name: "list-units", Description: "List units currently in memory"},
+ {Name: "list-sockets", Description: "List socket units currently in memory ordered by address"},
+ {Name: "list-timers", Description: "List timer units currently in memory ordered by next elapse"},
+ {Name: "is-active", Description: "Check whether units are active"},
+ {Name: "is-failed", Description: "Check whether units are failed"},
+ {Name: "status", Description: "Show runtime status of one or more units"},
+ {Name: "show", Description: "Show properties of one or more"},
+ {Name: "cat", Description: "Show files and drop-ins of specified units"},
+ {Name: "help", Description: "Show manual for one or more units"},
+ {Name: "start", Description: "Start (activate) one or more units"},
+ {Name: "stop", Description: "Stop (deactivate) one or more units"},
+ {Name: "reload", Description: "Reload one or more units"},
+ {Name: "restart", Description: "Start or restart one or more units"},
+ {Name: "try-restart", Description: "Restart one or more units if active"},
+ {Name: "reload-or-restart", Description: "Reload one or more units if possible, otherwise start or restart"},
+ {Name: "try-reload-or-restart", Description: "If active, reload one or more units, if supported, otherwise restart"},
+ {Name: "isolate", Description: "Start one unit and stop all others"},
+ {Name: "kill", Description: "Send signal to processes of a unit"},
+ {Name: "clean", Description: "Clean runtime, cache, state, logs or configuration of unit"},
+ {Name: "freeze", Description: "Freeze execution of unit processes"},
+ {Name: "thaw", Description: "Resume execution of a frozen unit"},
+ {Name: "set-property", Description: "Sets one or more properties of a unit"},
+ {Name: "bind", Description: "Bind-mount a path from the host into a unit's namespace"},
+ {Name: "mount-image", Description: "Mount an image from the host into a unit's namespace"},
+ {Name: "service-log-level", Description: "Get/set logging threshold for service"},
+ {Name: "service-log-target", Description: "Get/set logging target for service"},
+ {Name: "reset-failed", Description: "Reset failed state for all, one, or more units"},
+ {Name: "list-unit-files", Description: "List installed unit files"},
+ {Name: "enable", Description: "Enable one or more unit files"},
+ {Name: "disable", Description: "Disable one or more unit files"},
+ {Name: "reenable", Description: "Reenable one or more unit files"},
+ {Name: "preset", Description: "Enable/disable one or more unit files based on preset configuration"},
+ {Name: "preset-all", Description: "Enable/disable all unit files based on preset configuration"},
+ {Name: "mask", Description: "Mask one or more unit files"},
+ {Name: "unmask", Description: "Unmask one or more unit files"},
+ {Name: "link", Description: "Link one or more units files into the search path"},
+ {Name: "revert", Description: "Revert one or more unit files to vendor version"},
+ {Name: "add-wants", Description: "Add 'Wants' dependency for the target on specified one or more units"},
+ {Name: "add-requires", Description: "Add 'Requires' dependency for the target on specified one or more units"},
+ {Name: "edit", Description: "Edit one or more unit files"},
+ {Name: "get-default", Description: "Get the name of the default target"},
+ {Name: "set-default", Description: "Set the default target"},
+ {Name: "list-jobs", Description: "List jobs"},
+ {Name: "cancel", Description: "Cancel all, one, or more jobs"},
+ {Name: "show-environment", Description: "Dump environment"},
+ {Name: "set-environment", Description: "Set one or more environment variables"},
+ {Name: "unset-environment", Description: "Unset one or more environment variables"},
+ {Name: "import-environment", Description: "Import all or some environment variables"},
+ {Name: "daemon-reload", Description: "Reload systemd manager configuration"},
+ {Name: "daemon-reexec", Description: "Reexecute systemd manager"},
+ },
+ Options: []core.Option{
+ {Name: "-h", Description: "Show this help"},
+ {Name: "--version", Description: "Show package version"},
+ {Name: "--system", Description: "Connect to system manager"},
+ {Name: "--user", Description: "Connect to user service manager"},
+ {Name: "-H", Description: "Operate on remote host"},
+ {Name: "-M", Description: "Operate on a local container"},
+ {Name: "-t", Description: "List units of a particular type"},
+ {Name: "--state", Description: "List units with particular LOAD or SUB or ACTIVE state"},
+ {Name: "--failed", Description: "Shortcut for --state=failed"},
+ {Name: "-p", Description: "Show only properties by this name"},
+ {Name: "-P", Description: "Equivalent to --value --property=NAME"},
+ {Name: "-a", Description: "Don't ellipsize unit names on output"},
+ {Name: "-r", Description: "Show unit list of host and local containers"},
+ {Name: "--reverse", Description: "Show reverse dependencies with 'list-dependencies'"},
+ {Name: "--with-dependencies", Description: "Show unit dependencies with 'status', 'cat', 'list-units', and 'list-unit-files'"},
+ {Name: "--job-mode", Description: "Specify how to deal with already queued jobs, when queueing a new job"},
+ {Name: "-T", Description: "When enqueuing a unit job, show full transaction"},
+ {Name: "--show-types", Description: "When showing sockets, explicitly show their type"},
+ {Name: "--value", Description: "When showing properties, only print the value"},
+ {Name: "--check-inhibitors", Description: "Specify if checking inhibitors before shutting down sleeping or hibernating"},
+ {Name: "-i", Description: "Shortcut for --check-inhibitors=no"},
+ {Name: "--kill-who", Description: "Whom to send signal to"},
+ {Name: "-s", Description: "Which signal to send"},
+ {Name: "--what", Description: "Which types of resources to remove"},
+ {Name: "--now", Description: "Start or stop unit after enabling or disabling it"},
+ {Name: "--dry-run", Description: "Only print what would be done"},
+ {Name: "-q", Description: "Suppress output"},
+ {Name: "--wait", Description: "Do not wait until operation finished"},
+ {Name: "--no-wall", Description: "Don't send wall message before halt/power-off/reboot"},
+ {Name: "--no-reload", Description: "Don't reload daemon after en-/dis-abling unit files"},
+ {Name: "--legend", Description: "Enable/disable the legend (column headers and hints)"},
+ {Name: "--no-pager", Description: "Do not pipe output into a pager"},
+ {Name: "--no-ask-password", Description: "Do not ask for system passwords"},
+ {Name: "--global", Description: "Edit/enable/disable/mask default user unit files globally"},
+ {Name: "--runtime", Description: "Edit/enable/disable/mask unit files temporarily until next reboot"},
+ {Name: "-f", Description: "Apply only enable, only disable, or all presets"},
+ {Name: "--root", Description: "Edit/enable/disable/mask unit files in the specified root directory"},
+ {Name: "-n", Description: "Number of journal entries to show"},
+ {Name: "-o", Description: "Change journal output mode"},
+ {Name: "--firmware-setup", Description: "Tell the firmware to show the setup menu on next boot"},
+ },
+ })
+}
diff --git a/commands/sys/tac.go b/commands/sys/tac.go
new file mode 100644
index 0000000..5fe87aa
--- /dev/null
+++ b/commands/sys/tac.go
@@ -0,0 +1,19 @@
+package sys
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "tac",
+ Description: "Concatenate and print files in reverse",
+ Options: []core.Option{
+ {Name: "--help", Description: "Display this help and exit"},
+ {Name: "--before", Description: "Attach the separator before instead of after"},
+ {Name: "--regex", Description: "Interpret the separator as a regular expression"},
+ {Name: "--separator", Description: "Use STRING as the separator instead of newline"},
+ {Name: "--version", Description: "Output version information and exit"},
+ },
+ })
+}
diff --git a/commands/sys/tailcall.go b/commands/sys/tailcall.go
new file mode 100644
index 0000000..d78d954
--- /dev/null
+++ b/commands/sys/tailcall.go
@@ -0,0 +1,23 @@
+package sys
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "tailcall",
+ Description: "TailCall CLI for managing and optimizing GraphQL configurations",
+ Subcommands: []core.Subcommand{
+ {Name: "check", Description: "Validate a composition spec"},
+ {Name: "start", Description: "Launch the GraphQL Server for the specific configuration"},
+ {Name: "init", Description: "Bootstrap a new TailCall project"},
+ {Name: "gen", Description: "Generate GraphQL configurations from various sources"},
+ },
+ Options: []core.Option{
+ {Name: "--n-plus-one-queries", Description: "Detect N+1 issues"},
+ {Name: "--schema", Description: "Display the schema of the composition spec"},
+ {Name: "--format", Description: "Change the format of the input file"},
+ },
+ })
+}
diff --git a/commands/sys/tailwindcss.go b/commands/sys/tailwindcss.go
new file mode 100644
index 0000000..56fb4fc
--- /dev/null
+++ b/commands/sys/tailwindcss.go
@@ -0,0 +1,29 @@
+package sys
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "tailwindcss",
+ Description: "Display usage information",
+ Subcommands: []core.Subcommand{
+ {Name: "init", Description: "Creates Tailwind config file. Default: tailwind.config.js"},
+ {Name: "build", Description: "Build CSS file"},
+ },
+ Options: []core.Option{
+ {Name: "--help", Description: "Display usage information"},
+ {Name: "-i", Description: "Specify input file"},
+ {Name: "-o", Description: "Specify output file"},
+ {Name: "-c", Description: "Specify config file to use"},
+ {Name: "--postcss", Description: "Load custom PostCSS configuration"},
+ {Name: "--purge", Description: "Content paths to use for removing unused classes"},
+ {Name: "--watch", Description: "Watch for changes and rebuild as needed"},
+ {Name: "--minify", Description: "Minify the output"},
+ {Name: "--no-autoprefixer", Description: "Disable autoprefixer"},
+ {Name: "-p", Description: "Initialize a 'postcss.config.js' file"},
+ {Name: "-f", Description: "Initialize a full 'tailwind.config.js' file"},
+ },
+ })
+}
diff --git a/commands/sys/time.go b/commands/sys/time.go
new file mode 100644
index 0000000..ae33c7f
--- /dev/null
+++ b/commands/sys/time.go
@@ -0,0 +1,12 @@
+package sys
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "time",
+ Description: "Time how long a command takes!",
+ })
+}
diff --git a/commands/sys/tldr.go b/commands/sys/tldr.go
new file mode 100644
index 0000000..e88ab01
--- /dev/null
+++ b/commands/sys/tldr.go
@@ -0,0 +1,23 @@
+package sys
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "tldr",
+ Description: "Tldr page",
+ Options: []core.Option{
+ {Name: "-h", Description: "Display help for command"},
+ {Name: "-s", Description: "Search all pages for the query"},
+ {Name: "--linux", Description: "Show command page for Linux"},
+ {Name: "--osx", Description: "Show command page for OSX"},
+ {Name: "--sunos", Description: "Show command page for SunOS"},
+ {Name: "-l", Description: "Show all pages for current platform"},
+ {Name: "-u", Description: "Download the latest pages and generate search index"},
+ {Name: "-c", Description: "Delete the entire local cache"},
+ {Name: "--platform", Description: "Select platform"},
+ },
+ })
+}
diff --git a/commands/sys/tmux.go b/commands/sys/tmux.go
new file mode 100644
index 0000000..856a625
--- /dev/null
+++ b/commands/sys/tmux.go
@@ -0,0 +1,106 @@
+package sys
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "tmux",
+ Description: "Format output",
+ Subcommands: []core.Subcommand{
+ {Name: "a", Description: "Attach to last session"},
+ {Name: "working-directory", Description: "The session's working directory"},
+ {Name: "bind", Description: "Bind a key to a command"},
+ {Name: "key", Description: "The key to bind"},
+ {Name: "command", Description: "The command to bind to the key"},
+ {Name: "arguments", Description: "Arguments for the command"},
+ {Name: "breakp", Description: "Break a pane from an exiting into a new window"},
+ {Name: "capturep", Description: "Capture the contents of a pane to a buffer"},
+ {Name: "choose-buffer", Description: "Put a pane into buffer choice mode"},
+ {Name: "choose-client", Description: "Put a pane into buffer client mode"},
+ {Name: "choose-tree", Description: "Put a pane into buffer tree mode"},
+ {Name: "clearhist", Description: "Remove and clear history for a pane"},
+ {Name: "clock-mode", Description: "Enter clock mode"},
+ {Name: "command-prompt", Description: "Open the tmux command prompt in a client"},
+ {Name: "template", Description: "If specified, used as a command"},
+ {Name: "confirm", Description: "Run a command but ask for confirmation before"},
+ {Name: "copy-mode", Description: "Enter copy mode"},
+ {Name: "deleteb", Description: "Delete a paste buffer"},
+ {Name: "detach", Description: "Detach a client from the server"},
+ {Name: "shell-command", Description: "The shell-command to run"},
+ {Name: "menu", Description: "Display menu on target-client"},
+ {Name: "name", Description: "The name of the menu"},
+ {Name: "display", Description: "Display a message in the status line"},
+ {Name: "message", Description: "The message to display"},
+ {Name: "displayp", Description: "Display an indicator for each visible pane"},
+ {Name: "duration", Description: "The duration to close the indicator after in milliseconds"},
+ {Name: "findw", Description: "Search for a pattern in windows"},
+ {Name: "match-string", Description: "A string to search for"},
+ {Name: "has", Description: "Check and report if a session exists on the server"},
+ {Name: "if", Description: "Execute a tmux command if a shell-command succeeded"},
+ {Name: "joinp", Description: "Split a pane and move an existing one into the new space"},
+ {Name: "size", Description: "The size of the new space"},
+ {Name: "killp", Description: "Destroy a given pane"},
+ {Name: "kill-server", Description: "Kill clients, session and server"},
+ {Name: "kill-ses", Description: "Kill/delete sessions"},
+ {Name: "killw", Description: "Destroy a given window"},
+ {Name: "lastp", Description: "Select the previously selected pane"},
+ {Name: "last", Description: "Select the previously selected window"},
+ {Name: "linkw", Description: "Link a window to another"},
+ {Name: "lsb", Description: "List paste buffers of a session"},
+ {Name: "lsc", Description: "List clients attached to a server"},
+ {Name: "lscm", Description: "List supported sub-commands"},
+ {Name: "lsk", Description: "List all key-bindings"},
+ {Name: "lsp", Description: "List panes of a window"},
+ {Name: "ls", Description: "List sessions managed by a server"},
+ {Name: "lsw", Description: "List windows of a session"},
+ {Name: "loadb", Description: "Load a file into a paste buffer"},
+ {Name: "path", Description: "Load from this path"},
+ {Name: "lockc", Description: "Lock a client"},
+ {Name: "lock", Description: "Lock all clients attached to the server"},
+ },
+ Options: []core.Option{
+ {Name: "-F", Description: "Format output"},
+ {Name: "-f", Description: "Set client flags"},
+ {Name: "-d", Description: "Detach all others clients to the session"},
+ {Name: "-x", Description: "Send SIGHUP to the parent process and detach the client"},
+ {Name: "-c", Description: "Set the session's working directory"},
+ {Name: "-E", Description: "Don't use update-environment option"},
+ {Name: "-t", Description: "Attach to a session with the given name"},
+ {Name: "-n", Description: "Alias for -T root"},
+ {Name: "-r", Description: "Indicate that this key may repeat"},
+ {Name: "-N", Description: "Attach a note to the key"},
+ {Name: "-T", Description: "The key table to use"},
+ {Name: "-a", Description: "Move the window to the next index after"},
+ {Name: "-b", Description: "Move the window to the next index before"},
+ {Name: "-P", Description: "Print information about the new window"},
+ {Name: "-s", Description: "The source pane"},
+ {Name: "-e", Description: "Include escape sequences for text and background attributes"},
+ {Name: "-p", Description: "Redirect output to stdout"},
+ {Name: "-C", Description: "Escape non-printable characters as octal"},
+ {Name: "-J", Description: "Preserve trailing spaces and join any wrapped lines"},
+ {Name: "-S", Description: "Starting line number"},
+ {Name: "-Z", Description: "Zoom the pane"},
+ {Name: "-O", Description: "Specify the sort order"},
+ {Name: "-G", Description: "Include all sessions in any session group in the tree"},
+ {Name: "-w", Description: "Start with windows collapsed"},
+ {Name: "-l", Description: "The prompt only accept one key press"},
+ {Name: "-i", Description: "Execute the command every time the prompt input changes"},
+ {Name: "-k", Description: "Like -l but the key press is translated to a key name"},
+ {Name: "-W", Description: "Tell that the prompt is for a window"},
+ {Name: "-I", Description: "Comma-separated list of the initial text for each prompt"},
+ {Name: "-H", Description: "Hide the position indicator"},
+ {Name: "-M", Description: "Begin a mouse drag"},
+ {Name: "-q", Description: "Cancel copy mode and any other modes"},
+ {Name: "-u", Description: "Scroll one page up"},
+ {Name: "-y", Description: "Give the y position of the menu"},
+ {Name: "-v", Description: "Print verbose logging as the format is parsed"},
+ {Name: "-A", Description: "Behave like attach-session if session-name already exist"},
+ {Name: "-D", Description: "Behave like -d if -A is set"},
+ {Name: "-X", Description: "Behave like -x if -A is set"},
+ {Name: "-o", Description: "Only open a new pipe if no previous pipe exists"},
+ {Name: "-L", Description: "Allow the visible portion of a window to be changed"},
+ },
+ })
+}
diff --git a/commands/sys/tmuxinator.go b/commands/sys/tmuxinator.go
new file mode 100644
index 0000000..23d2f23
--- /dev/null
+++ b/commands/sys/tmuxinator.go
@@ -0,0 +1,43 @@
+package sys
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "tmuxinator",
+ Description: "Project",
+ Subcommands: []core.Subcommand{
+ {Name: "commands", Description: "Lists commands available in tmuxinator"},
+ {Name: "completions", Description: "Used for shell completion"},
+ {Name: "copy", Description: "Copy an existing project to a new project and open it in your editor"},
+ {Name: "source", Description: "The source project name"},
+ {Name: "target", Description: "The target project name"},
+ {Name: "debug", Description: "Output the shell commands that are generated by tmuxinator"},
+ {Name: "attach-session", Description: "Attach to tmux session"},
+ {Name: "name", Description: "Give the session a different name"},
+ {Name: "project-config", Description: "Path to project config file"},
+ {Name: "delete", Description: "Deletes given project"},
+ {Name: "project", Description: "The project name"},
+ {Name: "doctor", Description: "Look for problems in your configuration"},
+ {Name: "help", Description: "Describe available commands or one specific command"},
+ {Name: "command", Description: "The tmuxinator commands"},
+ {Name: "implode", Description: "Deletes all tmuxinator projects"},
+ {Name: "list", Description: "Lists all tmuxinator projects"},
+ {Name: "local", Description: "Start a tmux session using ./.tmuxinator.y[a]ml"},
+ {Name: "new", Description: "Create a new project file and open it in your editor"},
+ {Name: "tmux-session", Description: "The tmux session name"},
+ {Name: "edit", Description: "Open a project file it in your editor"},
+ {Name: "open", Description: "Open a project file it in your editor"},
+ {Name: "stop", Description: "Stop a tmux session using a project's tmuxinator config"},
+ {Name: "version", Description: "Display installed tmuxinator version"},
+ },
+ Options: []core.Option{
+ {Name: "-a", Description: "Attach to tmux session after creation"},
+ {Name: "-n", Description: "Give the session a different name"},
+ {Name: "-p", Description: "Path to project config file"},
+ {Name: "-l", Description: "Create local project file at ./.tmuxinator.y[a]ml"},
+ },
+ })
+}
diff --git a/commands/sys/top.go b/commands/sys/top.go
new file mode 100644
index 0000000..8495a1a
--- /dev/null
+++ b/commands/sys/top.go
@@ -0,0 +1,19 @@
+package sys
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "top",
+ Description: "Display Linux tasks",
+ Options: []core.Option{
+ {Name: "-h", Description: "Show library version and usage prompt"},
+ {Name: "-b", Description: "Starts top in Batch mode"},
+ {Name: "-c", Description: "Starts top with last remembered c state reversed"},
+ {Name: "-i", Description: "Starts top with secure mode forced"},
+ {Name: "-pid", Description: "Monitor pids"},
+ },
+ })
+}
diff --git a/commands/sys/traceroute.go b/commands/sys/traceroute.go
new file mode 100644
index 0000000..3803333
--- /dev/null
+++ b/commands/sys/traceroute.go
@@ -0,0 +1,25 @@
+package sys
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "traceroute",
+ Description: "Print the route packets take to network host",
+ Options: []core.Option{
+ {Name: "--help", Description: "Show help for traceroute"},
+ {Name: "-a", Description: "Turn on AS# lookups for each hop encountered"},
+ {Name: "-A", Description: "Turn on AS# lookups and use the given server instead of the default"},
+ {Name: "-d", Description: "Enable socket level debugging"},
+ {Name: "-D", Description: "Set the initial time-to-live used in the first outgoing probe packet"},
+ {Name: "-F", Description: "Set the `don't fragment` bit"},
+ {Name: "-g", Description: "Specify a loose source route gateway (8 maximum)"},
+ {Name: "-i", Description: "Use ICMP ECHO instead of UDP datagrams. (A synonym for `-P icmp`)"},
+ {Name: "-M", Description: "Set the number of probes per ``ttl'' to nqueries (default is three probes)"},
+ {Name: "-r", Description: "Print a summary of how many probes were not answered for each hop"},
+ {Name: "-t", Description: "Set the time (in seconds) to wait for a response to a probe (default 5 sec.)"},
+ },
+ })
+}
diff --git a/commands/sys/trap.go b/commands/sys/trap.go
new file mode 100644
index 0000000..3f33c41
--- /dev/null
+++ b/commands/sys/trap.go
@@ -0,0 +1,16 @@
+package sys
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "trap",
+ Description: "Prints all defined signal handlers",
+ Options: []core.Option{
+ {Name: "--print", Description: "Prints all defined signal handlers"},
+ {Name: "--help", Description: "Displays help about using this command"},
+ },
+ })
+}
diff --git a/commands/sys/trex.go b/commands/sys/trex.go
new file mode 100644
index 0000000..d5f6921
--- /dev/null
+++ b/commands/sys/trex.go
@@ -0,0 +1,36 @@
+package sys
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "trex",
+ Description: "trex script",
+ Subcommands: []core.Subcommand{
+ {Name: "i", Description: "Install a package"},
+ {Name: "delete", Description: "Delete a package"},
+ {Name: "upgrade", Description: "Upgrade trex"},
+ {Name: "tree", Description: "View dependency tree"},
+ {Name: "run", Description: "Run a script alias in a file run.json"},
+ {Name: "purge", Description: "Remove a package or url from cache"},
+ {Name: "ls", Description: "Shows the list of installed packages"},
+ {Name: "exec", Description: "Execute a cli tool with out install then"},
+ {Name: "check", Description: "Check deno.land [std/x] dependencies updates"},
+ },
+ Options: []core.Option{
+ {Name: "-v", Description: "Print version"},
+ {Name: "-m", Description: "Install package from deno.land"},
+ {Name: "-n", Description: "Install package from nest.land"},
+ {Name: "-p", Description: "Install package from some repository"},
+ {Name: "-c", Description: "Install custom package"},
+ {Name: "--canary", Description: "Install from dev branch"},
+ {Name: "-w", Description: "Use reboot script alias protocol (rsap)"},
+ {Name: "-wv", Description: "Verbose output in --watch mode (rsap)"},
+ {Name: "--perms", Description: "Specify cli permissions"},
+ {Name: "-f", Description: "Update outdated dependencies"},
+ {Name: "-h", Description: "Print help info"},
+ },
+ })
+}
diff --git a/commands/sys/tsh.go b/commands/sys/tsh.go
new file mode 100644
index 0000000..43404d3
--- /dev/null
+++ b/commands/sys/tsh.go
@@ -0,0 +1,57 @@
+package sys
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "tsh",
+ Description: "Remote host login",
+ Subcommands: []core.Subcommand{
+ {Name: "version", Description: "Print the version"},
+ {Name: "ssh", Description: "Run shell or execute a command on a remote SSH node"},
+ {Name: "user@hostname", Description: "Address of remote machine to log into"},
+ {Name: "aws", Description: "Access AWS API"},
+ {Name: "apps", Description: "View and control proxied applications"},
+ {Name: "ls", Description: "List available applications"},
+ {Name: "logout", Description: "Remove app certificate"},
+ {Name: "config", Description: "Print app connection information"},
+ {Name: "login", Description: "Retrieve credentials for a database"},
+ {Name: "connect", Description: "Connect Connect to a database"},
+ {Name: "join", Description: "Join the active SSH session"},
+ {Name: "play", Description: "Replay the recorded SSH session"},
+ {Name: "scp", Description: "Secure file copy"},
+ {Name: "clusters", Description: "List available Teleport clusters"},
+ {Name: "status", Description: "Display the list of proxy servers and retrieved certificates"},
+ {Name: "env", Description: "Print commands to set Teleport session environment variables"},
+ {Name: "request", Description: "Manage access requests"},
+ {Name: "show", Description: "Show request details"},
+ {Name: "new", Description: "Create a new access request"},
+ {Name: "review", Description: "Review an access request"},
+ {Name: "kube", Description: "Manage available kubernetes clusters"},
+ {Name: "sessions", Description: "Get a list of active kubernetes sessions"},
+ {Name: "exec", Description: "Execute a command in a kubernetes pod"},
+ {Name: "mfa", Description: "Manage multi-factor authentication (MFA) devices"},
+ {Name: "add", Description: "Add a new MFA device"},
+ {Name: "rm", Description: "Remove a MFA device"},
+ },
+ Options: []core.Option{
+ {Name: "-l", Description: "Remote host login"},
+ {Name: "--proxy", Description: "SSH proxy address"},
+ {Name: "--user", Description: "SSH proxy user"},
+ {Name: "--ttl", Description: "Minutes to live for a SSH session"},
+ {Name: "-i", Description: "Identity file"},
+ {Name: "--cert-format", Description: "SSH certificate format"},
+ {Name: "--insecure", Description: "Do not verify server's certificate and host name. Use only in test environments"},
+ {Name: "--auth", Description: "Specify the name of authentication connector to use"},
+ {Name: "--skip-version-check", Description: "Skip version checking between server and client"},
+ {Name: "-d", Description: "Verbose logging to stdout"},
+ {Name: "-k", Description: "Controls how keys are handled. Valid values are [auto no yes only]"},
+ {Name: "--enable-escape-sequences", Description: "Override host:port used when opening a browser for cluster logins"},
+ {Name: "-J", Description: "SSH jumphost"},
+ {Name: "-f", Description: "Format output"},
+ {Name: "-q", Description: "Quiet mode"},
+ },
+ })
+}
diff --git a/commands/sys/tuist.go b/commands/sys/tuist.go
new file mode 100644
index 0000000..d9d7ffb
--- /dev/null
+++ b/commands/sys/tuist.go
@@ -0,0 +1,40 @@
+package sys
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "tuist",
+ Description: "Build the project in the current directory",
+ Subcommands: []core.Subcommand{
+ {Name: "build", Description: "Build the project in the current directory"},
+ {Name: "warm", Description: "Warms the local and remote cache"},
+ {Name: "print-hashes", Description: "Print the hashes of the cacheable frameworks in the given project"},
+ {Name: "template", Description: "Name of template you want to use"},
+ {Name: "list", Description: "Lists available scaffold templates"},
+ },
+ Options: []core.Option{
+ {Name: "--build-output-path", Description: "Build the project to a specific device, example usage: 'tuist build --device \\"},
+ {Name: "--os", Description: "Build the project to a specific OS, example usage: 'tuist build --os 14.0':"},
+ {Name: "--path", Description: "The path to the directory that contains the project whose targets will be cached"},
+ {Name: "--profile", Description: "The name of the profile to be used when warming up the cache"},
+ {Name: "--xcframeworks", Description: "When passed it caches the targets for simulator and device using xcframeworks"},
+ {Name: "--dependencies-only", Description: "Print the hashes of the cacheable frameworks in the given project"},
+ {Name: "--skip-external-dependencies", Description: "Excludes external dependencies from the generated graph"},
+ {Name: "--format", Description: "If set, the generated graph is not opened automatically. Default is yes"},
+ {Name: "--platform", Description: "Don't open the project after generating it. Default is false"},
+ {Name: "--xcodeproj-path", Description: "Required. Path to the Xcode project whose build settings will be extracted"},
+ {Name: "--xcconfig-path", Description: "Required. Path to the Xcode project whose build settings will be extracted"},
+ {Name: "--target", Description: "Required. Path to the Xcode project whose build settings will be checked"},
+ {Name: "--name", Description: "The name of the generate project"},
+ {Name: "--clean", Description: "When passed, it cleans the project before testing it"},
+ {Name: "--device", Description: "Test on a specific device"},
+ {Name: "--configuration", Description: "The configuration to be used when testing the scheme"},
+ {Name: "--skip-ui-tests", Description: "When passed, it skips testing UI Tests targets"},
+ {Name: "--result-bundle-path", Description: "Path where test result bundle will be saved"},
+ {Name: "--retry-count", Description: "Show help for tuist"},
+ },
+ })
+}
diff --git a/commands/sys/twilio.go b/commands/sys/twilio.go
new file mode 100644
index 0000000..e268620
--- /dev/null
+++ b/commands/sys/twilio.go
@@ -0,0 +1,57 @@
+package sys
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "twilio",
+ Description: "Level of logging messages",
+ Subcommands: []core.Subcommand{
+ {Name: "list", Description: "List Twilio CLI configurations"},
+ {Name: "set", Description: "Update Twilio CLI configurations"},
+ },
+ Options: []core.Option{
+ {Name: "-l", Description: "Level of logging messages"},
+ {Name: "-o", Description: "Format of command output"},
+ {Name: "--silent", Description: "Manage Twilio CLI configurations"},
+ {Name: "-e", Description: "Sets an Edge configuration"},
+ {Name: "--require-profile-input", Description: "Show a list of log events for the account"},
+ {Name: "--attachment", Description: "Path for the file that you want to attach"},
+ {Name: "--from", Description: "Email address of the sender"},
+ {Name: "--no-attachment", Description: "Do not include or prompt for an attachment"},
+ {Name: "--subject", Description: "The subject line for an email"},
+ {Name: "--text", Description: "Text to send within the email body"},
+ {Name: "--to", Description: "Email address of recipient (comma-separated)"},
+ {Name: "--country-code", Description: "The ISO-3166-1 country code of the country from which to read phone numbers"},
+ {Name: "--account-sid", Description: "The SID of the Account requesting the AvailablePhoneNumber resources"},
+ {Name: "--address-sid", Description: "Whether the phone numbers can receive faxes. Can be: `true` or `false`"},
+ {Name: "--no-fax-enabled", Description: "Whether the phone numbers can receive faxes. Can be: `true` or `false`"},
+ {Name: "--friendly-name", Description: "The maximum number of resources to return. Use '--no-limit' to disable"},
+ {Name: "--mms-enabled", Description: "Whether the phone numbers can receive MMS messages. Can be: `true` or `false`"},
+ {Name: "--no-mms-enabled", Description: "Whether the phone numbers can receive MMS messages. Can be: `true` or `false`"},
+ {Name: "--near-lat-long", Description: "Skip including of headers while listing the data"},
+ {Name: "--page-size", Description: "Whether the phone numbers can receive text messages. Can be: `true` or `false`"},
+ {Name: "--no-sms-enabled", Description: "Whether the phone numbers can receive text messages. Can be: `true` or `false`"},
+ {Name: "--sms-fallback-method", Description: "Whether the phone numbers can receive calls. Can be: `true` or `false`"},
+ {Name: "--no-voice-enabled", Description: "Whether the phone numbers can receive calls. Can be: `true` or `false`"},
+ {Name: "--voice-fallback-method", Description: "Manage Twilio phone numbers"},
+ {Name: "--no-header", Description: "Skip including of headers while listing the data"},
+ {Name: "--properties", Description: "Update the properties of a Twilio phone number"},
+ {Name: "--sms-fallback-url", Description: "The HTTP method Twilio will use when making requests to the SmsUrl"},
+ {Name: "--sms-url", Description: "The HTTP method Twilio will use when requesting the VoiceFallbackUrl"},
+ {Name: "--voice-fallback-url", Description: "The HTTP method Twilio will use when making requests to the VoiceUrl"},
+ {Name: "--voice-url", Description: "The URL that Twilio should request when somebody dials the phone number"},
+ {Name: "-v", Description: "Installs a plugin into the CLI"},
+ {Name: "-f", Description: "`yarn install` with force flag"},
+ {Name: "-p", Description: "Shorthand identifier for your profile"},
+ {Name: "--auth-token", Description: "Your Twilio Auth Token for your Twilio Account or Subaccount"},
+ {Name: "--region", Description: "Twilio region to use"},
+ {Name: "--from-local", Description: "Interactively choose an already installed version"},
+ {Name: "-r", Description: "Refresh cache (ignores displaying instructions)"},
+ {Name: "-h", Description: "Show a help message"},
+ {Name: "--core", Description: "List core plugins"},
+ },
+ })
+}
diff --git a/commands/sys/uname.go b/commands/sys/uname.go
new file mode 100644
index 0000000..168a379
--- /dev/null
+++ b/commands/sys/uname.go
@@ -0,0 +1,21 @@
+package sys
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "uname",
+ Description: "Print operating system name",
+ Options: []core.Option{
+ {Name: "-a", Description: "Print all available system information"},
+ {Name: "-m", Description: "Print the machine hardware name"},
+ {Name: "-n", Description: "Print the system hostname"},
+ {Name: "-p", Description: "Print the machine processor architecture name"},
+ {Name: "-r", Description: "Print the operating system release"},
+ {Name: "-s", Description: "Print the operating system name"},
+ {Name: "-v", Description: "Print the operating system version"},
+ },
+ })
+}
diff --git a/commands/sys/visudo.go b/commands/sys/visudo.go
new file mode 100644
index 0000000..02fc0a7
--- /dev/null
+++ b/commands/sys/visudo.go
@@ -0,0 +1,23 @@
+package sys
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "visudo",
+ Description: "Checking existing sudoers file for syntax errors",
+ Options: []core.Option{
+ {Name: "--check", Description: "Checking existing sudoers file for syntax errors"},
+ {Name: "--file", Description: "Set an alternative sudoers file location"},
+ {Name: "--help", Description: "Display a short help message"},
+ {Name: "--quiet", Description: "Enable quiet mode (syntax error not printed)"},
+ {Name: "--strict", Description: "Enable strict checking of the sudoers file"},
+ {Name: "--version", Description: "Display version and exit"},
+ {Name: "--export", Description: "Export JSON and write it to output_file"},
+ {Name: "--perms", Description: "Enforce default mode for the sudoers file"},
+ {Name: "--owner", Description: "Enforce the default ownership for the sudoers file"},
+ },
+ })
+}
diff --git a/commands/sys/vultr_cli.go b/commands/sys/vultr_cli.go
new file mode 100644
index 0000000..e4df76b
--- /dev/null
+++ b/commands/sys/vultr_cli.go
@@ -0,0 +1,70 @@
+package sys
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "vultr-cli",
+ Description: "Bare Metal ID",
+ Subcommands: []core.Subcommand{
+ {Name: "account", Description: "Retrieve information about your account"},
+ {Name: "apps", Description: "Display all available applications"},
+ {Name: "list", Description: "List applications"},
+ {Name: "backups", Description: "Display backups"},
+ {Name: "get", Description: "Get backup"},
+ {Name: "bare-metal", Description: "Bare-metal is used to access bare metal server commands"},
+ {Name: "app", Description: "App is used to access bare metal server application commands"},
+ {Name: "change", Description: "Change a bare metal server's application"},
+ {Name: "appID", Description: "Application ID"},
+ {Name: "bandwidth", Description: "Get a bare metal server's bandwidth usage"},
+ {Name: "create", Description: "Create a bare metal server"},
+ {Name: "delete", Description: "Delete a bare metal server"},
+ {Name: "halt", Description: "Halt a bare metal server"},
+ {Name: "image", Description: "Image is used to access bare metal server image commands"},
+ {Name: "imageID", Description: "Image ID"},
+ {Name: "ipv4", Description: "List the IPv4 information of a bare metal server"},
+ {Name: "ipv6", Description: "List the IPv6 information of a bare metal server"},
+ {Name: "os", Description: "Os is used to access bare metal server operating system commands"},
+ {Name: "reinstall", Description: "Reinstall the operating system on a bare metal server"},
+ {Name: "start", Description: "Start a bare metal server"},
+ {Name: "user-data", Description: "User-data is used to access bare metal server user-data commands"},
+ {Name: "vnc", Description: "Get a bare metal server's VNC url by "},
+ {Name: "block-storage", Description: "Block storage commands"},
+ {Name: "attach", Description: "Attaches a block storage to an instance"},
+ {Name: "detach", Description: "Detaches a block storage from an instance"},
+ {Name: "label", Description: "Sets a label for a block storage"},
+ {Name: "resize", Description: "Resize a block storage"},
+ {Name: "completion", Description: "Generate the autocompletion script for the specified shell"},
+ {Name: "bash", Description: "Generate the autocompletion script for bash"},
+ {Name: "fish", Description: "Generate the autocompletion script for fish"},
+ {Name: "powershell", Description: "Generate the autocompletion script for powershell"},
+ {Name: "zsh", Description: "Generate the autocompletion script for zsh"},
+ {Name: "dns", Description: "Dns is used to access dns commands"},
+ {Name: "domain", Description: "Dns domain"},
+ {Name: "record", Description: "Dns record"},
+ {Name: "firewall", Description: "Firewall is used to access firewall commands"},
+ {Name: "group", Description: "Group is used to access firewall group commands"},
+ {Name: "rule", Description: "Rule is used to access firewall rule commands"},
+ {Name: "help", Description: "Help about any command"},
+ {Name: "instance", Description: "Commands to interact with instances on vultr"},
+ {Name: "iso", Description: "Iso is used to access iso commands"},
+ {Name: "kubernetes", Description: "Kubernetes is used to access kubernetes commands"},
+ {Name: "load-balancer", Description: "Load balancer commands"},
+ {Name: "network", Description: "Network interacts with network actions"},
+ {Name: "object-storage", Description: "Object storage commands"},
+ {Name: "plans", Description: "Get information about Vultr plans"},
+ {Name: "regions", Description: "Get regions"},
+ {Name: "reserved-ip", Description: "Reserved-ip lets you interact with reserved-ip"},
+ {Name: "script", Description: "Startup script commands"},
+ {Name: "snapshot", Description: "Snapshot commands"},
+ },
+ Options: []core.Option{
+ {Name: "--os", Description: "ID of the operating system that will be installed on the server"},
+ {Name: "--persistent_pxe", Description: "Enable persistent_pxe"},
+ {Name: "--plan", Description: "ID of the plan that the server will subscribe to"},
+ {Name: "--region", Description: "ID of the region where the server will be created"},
+ },
+ })
+}
diff --git a/commands/sys/wezterm.go b/commands/sys/wezterm.go
new file mode 100644
index 0000000..07572cb
--- /dev/null
+++ b/commands/sys/wezterm.go
@@ -0,0 +1,60 @@
+package sys
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "wezterm",
+ Description: "Wez",
+ Subcommands: []core.Subcommand{
+ {Name: "start", Description: "Start the GUI, optionally running an alternative program"},
+ {Name: "ssh", Description: "Establish an ssh session"},
+ {Name: "serial", Description: "Open a serial port"},
+ {Name: "connect", Description: "Connect to wezterm multiplexer"},
+ {Name: "ls-fonts", Description: "Display information about fonts"},
+ {Name: "show-keys", Description: "Show key assignments"},
+ {Name: "cli", Description: "Interact with experimental mux server"},
+ {Name: "list", Description: "List windows, tabs and panes"},
+ {Name: "list-clients", Description: "List clients"},
+ {Name: "proxy", Description: "Start rpc proxy pipe"},
+ {Name: "tlscreds", Description: "Obtain tls credentials"},
+ {Name: "move-pane-to-new-tab", Description: "Move a pane into a new tab"},
+ {Name: "help", Description: "Print this message or the help of the given subcommand(s)"},
+ {Name: "imgcat", Description: "Output an image to the terminal"},
+ {Name: "record", Description: "Record a terminal session as an asciicast"},
+ {Name: "replay", Description: "Replay an asciicast terminal session"},
+ {Name: "shell-completion", Description: "Generate shell completion information"},
+ },
+ Options: []core.Option{
+ {Name: "--cwd", Description: "Specify the current working directory for the initially spawned program"},
+ {Name: "--class", Description: "Override the position for the initial window launched by this process"},
+ {Name: "--no-auto-connect", Description: "Print help information"},
+ {Name: "-o", Description: "Override the position for the initial window launched by this process"},
+ {Name: "-v", Description: "Print help information"},
+ {Name: "--baud", Description: "Set the baud rate. The default is 9600 baud"},
+ {Name: "-h", Description: "Print help information"},
+ {Name: "--text", Description: "Explain which fonts are used to render the supplied text string"},
+ {Name: "--list-system", Description: "Whether to list all fonts available to the system"},
+ {Name: "--rasterize-ascii", Description: "Show rasterized glyphs for the text in --text using ascii blocks"},
+ {Name: "--key-table", Description: "In lua mode, show only the named key table"},
+ {Name: "--lua", Description: "Show the keys as lua config statements"},
+ {Name: "--format", Description: "Print help information"},
+ {Name: "--pane-id", Description: "Create tab in a new window, rather than the window currently containing the pane"},
+ {Name: "--move-pane-id", Description: "Split horizontally, with the new pane on the left"},
+ {Name: "--right", Description: "Split horizontally, with the new pane on the right"},
+ {Name: "--top", Description: "Split vertically, with the new pane on the top"},
+ {Name: "--bottom", Description: "Split vertically, with the new pane on the bottom"},
+ {Name: "--top-level", Description: "Rather than splitting the active pane, split the entire window"},
+ {Name: "--workspace", Description: "Spawn into a new window, rather than a new tab"},
+ {Name: "--prefer-mux", Description: "Print help information"},
+ {Name: "--width", Description: "Do not respect the aspect ratio. The default is to respect the aspect ratio"},
+ {Name: "--explain", Description: "Explain what is being sent/received"},
+ {Name: "--shell", Description: "Which shell to generate for"},
+ {Name: "--config-file", Description: "Override specific configuration values"},
+ {Name: "-V", Description: "Print version information"},
+ {Name: "-n", Description: "Skip loading wezterm.lua"},
+ },
+ })
+}
diff --git a/commands/sys/where.go b/commands/sys/where.go
new file mode 100644
index 0000000..440aa37
--- /dev/null
+++ b/commands/sys/where.go
@@ -0,0 +1,20 @@
+package sys
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "where",
+ Description: "For each name, indicate how it should be interpreted",
+ Options: []core.Option{
+ {Name: "-w", Description: "For each name, print 'name: word', where 'word' is the kind of command"},
+ {Name: "-p", Description: "Do a path search for the name, even if it's an alias/function/builtin"},
+ {Name: "-m", Description: "The arguments are taken as patterns (pattern characters must be quoted)"},
+ {Name: "-s", Description: "If the pathname contains symlinks, print the symlink-free name as well"},
+ {Name: "-S", Description: "Print intermediate symlinks and the resolved name"},
+ {Name: "-x", Description: "Expand tabs when outputting shell function"},
+ },
+ })
+}
diff --git a/commands/sys/whereis.go b/commands/sys/whereis.go
new file mode 100644
index 0000000..07b9aa4
--- /dev/null
+++ b/commands/sys/whereis.go
@@ -0,0 +1,22 @@
+package sys
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "whereis",
+ Description: "Locate the binary, source, and manual page files for a command",
+ Options: []core.Option{
+ {Name: "-b", Description: "Search only for binaries"},
+ {Name: "-m", Description: "Search only for manual sections"},
+ {Name: "-s", Description: "Search only for sources"},
+ {Name: "-u", Description: "Search for unusual entries"},
+ {Name: "-B", Description: "Search for binaries only in the specified directory"},
+ {Name: "-M", Description: "Search for manual pages only in the specified directory"},
+ {Name: "-S", Description: "Search for sources only in the specified directory"},
+ {Name: "-f", Description: "Terminate the -B, -M, and -S options"},
+ },
+ })
+}
diff --git a/commands/sys/which.go b/commands/sys/which.go
new file mode 100644
index 0000000..703b967
--- /dev/null
+++ b/commands/sys/which.go
@@ -0,0 +1,16 @@
+package sys
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "which",
+ Description: "Executable file",
+ Options: []core.Option{
+ {Name: "-s", Description: "No output, return 0 if all the executables are found, 1 if not"},
+ {Name: "-a", Description: "List all instances of executables found, instead of just the first"},
+ },
+ })
+}
diff --git a/commands/sys/who.go b/commands/sys/who.go
new file mode 100644
index 0000000..ca14e7b
--- /dev/null
+++ b/commands/sys/who.go
@@ -0,0 +1,29 @@
+package sys
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "who",
+ Description: "Display who is logged in",
+ Subcommands: []core.Subcommand{
+ {Name: "am", Description: "Returns the invoker's real user name"},
+ },
+ Options: []core.Option{
+ {Name: "-a", Description: "Same as -bdlprTtu"},
+ {Name: "-b", Description: "Time of last system boot"},
+ {Name: "-d", Description: "Print dead processes"},
+ {Name: "-H", Description: "Write column headings above the regular output"},
+ {Name: "-l", Description: "Print system login processes (unsupported)"},
+ {Name: "-m", Description: "Only print information about the current terminal"},
+ {Name: "-p", Description: "Print active processes spawned by launchd(8) (unsupported)"},
+ {Name: "-q", Description: "'Quick mode': List only names and number of users currently logged on"},
+ {Name: "-r", Description: "Print the current runlevel"},
+ {Name: "-s", Description: "List only the name, line and time fields (this is the default)"},
+ {Name: "-T", Description: "Print last system clock change (unsupported)"},
+ {Name: "-u", Description: "Print the idle time for each user and the associated process ID"},
+ },
+ })
+}
diff --git a/commands/sys/wing.go b/commands/sys/wing.go
new file mode 100644
index 0000000..121fa64
--- /dev/null
+++ b/commands/sys/wing.go
@@ -0,0 +1,25 @@
+package sys
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "wing",
+ Description: "Runs a Wing executable in the Wing Console",
+ Subcommands: []core.Subcommand{
+ {Name: "run", Description: "Runs a Wing executable in the Wing Console"},
+ {Name: "executable", Description: "Executable .wx file"},
+ {Name: "compile", Description: "Compiles a Wing program"},
+ {Name: "entrypoint", Description: "Program .w entrypoint"},
+ {Name: "upgrade", Description: "Upgrades the Wing toolchain to the latest version"},
+ {Name: "help", Description: "Display help for command"},
+ },
+ Options: []core.Option{
+ {Name: "-h", Description: "Display help for command"},
+ {Name: "-o", Description: "Output directory"},
+ {Name: "-t", Description: "Target platform (options: 'tf-aws', 'sim')"},
+ },
+ })
+}
diff --git a/commands/sys/wp.go b/commands/sys/wp.go
new file mode 100644
index 0000000..84c4580
--- /dev/null
+++ b/commands/sys/wp.go
@@ -0,0 +1,106 @@
+package sys
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "wp",
+ Description: "Path to the WordPress files",
+ Subcommands: []core.Subcommand{
+ {Name: "cache", Description: "Adds, removes, fetches, and flushes the WP Object Cache object"},
+ {Name: "add", Description: "Adds a value to the object cache"},
+ {Name: "key", Description: "Cache key"},
+ {Name: "value", Description: "Value to add to the key"},
+ {Name: "expiration", Description: "Define how long to keep the value, in seconds. 0 means as long as possible"},
+ {Name: "decr", Description: "Decrements a value in the object cache"},
+ {Name: "offset", Description: "The amount by which to decrement the itemโs value"},
+ {Name: "delete", Description: "Removes a value from the object cache"},
+ {Name: "flush", Description: "Flushes the object cache"},
+ {Name: "get", Description: "Gets a value from the object cache"},
+ {Name: "incr", Description: "Increments a value in the object cache"},
+ {Name: "replace", Description: "Replaces a value in the object cache, if the value already exists"},
+ {Name: "set", Description: "Sets a value to the object cache, regardless of whether it already exists"},
+ {Name: "type", Description: "Attempts to determine which object cache is being used"},
+ {Name: "cap", Description: "Adds, removes, and lists capabilities of a user role"},
+ {Name: "role", Description: "Key for the role"},
+ {Name: "list", Description: "Lists capabilities for a given role"},
+ {Name: "remove", Description: "Removes capabilities from a given role"},
+ {Name: "cli", Description: "Reviews current WP-CLI info, checks for updates, or views defined aliases"},
+ {Name: "alias", Description: "Retrieves, sets and updates aliases for WordPress Installations"},
+ {Name: "update", Description: "Updates an alias"},
+ {Name: "clear", Description: "Clears the internal cache"},
+ {Name: "prune", Description: "Prunes the internal cache"},
+ {Name: "check-update", Description: "Checks to see if there is a newer version of WP-CLI available"},
+ {Name: "cmd-dump", Description: "Dumps the list of installed commands, as JSON"},
+ {Name: "completions", Description: "Generates tab completion strings"},
+ {Name: "has-command", Description: "Detects if a command exists"},
+ {Name: "command_name", Description: "The command"},
+ {Name: "info", Description: "Prints various details about the WP-CLI environment"},
+ {Name: "param-dump", Description: "Dumps the list of global parameters, as JSON or in var_export format"},
+ {Name: "version", Description: "Prints WP-CLI version"},
+ {Name: "comment", Description: "Creates, updates, deletes, and moderates comments"},
+ {Name: "approve", Description: "Approves a comment"},
+ {Name: "id", Description: "The IDs of the comments to approve"},
+ {Name: "count", Description: "Counts comments, on whole blog or on a given post"},
+ {Name: "post-id", Description: "The ID of the post to count comments in"},
+ {Name: "create", Description: "Creates a new comment"},
+ {Name: "exists", Description: "Verifies whether a comment exists"},
+ {Name: "generate", Description: "Generates some number of new dummy comments"},
+ {Name: "meta", Description: "Adds, updates, deletes, and lists comment custom fields"},
+ {Name: "patch", Description: "Update a nested value for a meta field"},
+ {Name: "options", Description: "Patch action to perform"},
+ {Name: "key-path", Description: "The name(s) of the keys within the value to locate the value to patch"},
+ {Name: "pluck", Description: "Get a nested value from a meta field"},
+ {Name: "recount", Description: "Recalculates the comment_count value for one or more posts"},
+ {Name: "spam", Description: "Marks a comment as spam"},
+ {Name: "status", Description: "Gets the status of a comment"},
+ {Name: "trash", Description: "Trashes a comment"},
+ {Name: "unapprove", Description: "Unapproves a comment"},
+ {Name: "unspam", Description: "Unmarks a comment as spam"},
+ },
+ Options: []core.Option{
+ {Name: "--path", Description: "Path to the WordPress files"},
+ {Name: "--url", Description: "Perform operation against a remote WordPress installation over HTTP"},
+ {Name: "--user", Description: "Set the WordPress user"},
+ {Name: "--skip-plugins", Description: "Skip loading all themes, or a comma-separated list of themes"},
+ {Name: "--skip-themes", Description: "Skip loading all themes, or a comma-separated list of themes"},
+ {Name: "--skip-packages", Description: "Skip loading all installed packages"},
+ {Name: "--require", Description: "Load PHP file before running the command (may be used more than once)"},
+ {Name: "--exec", Description: "Execute PHP code before running the command (may be used more than once)"},
+ {Name: "--color", Description: "Whether to colorize the output"},
+ {Name: "--no-color", Description: "Whether to colorize the output"},
+ {Name: "--debug", Description: "Suppress informational messages"},
+ {Name: "--grant", Description: "Lists capabilities for a given role"},
+ {Name: "--format", Description: "Render output in a particular format"},
+ {Name: "--show-grant", Description: "Display all capabilities defined for a role including grant"},
+ {Name: "--set-user", Description: "Set user for alias"},
+ {Name: "--set-url", Description: "Set url for alias"},
+ {Name: "--set-path", Description: "Set path for alias"},
+ {Name: "--set-ssh", Description: "Set ssh for alias"},
+ {Name: "--set-http", Description: "Set http for alias"},
+ {Name: "--grouping", Description: "For grouping multiple aliases"},
+ {Name: "--config", Description: "Config file to be considered for operations"},
+ {Name: "--patch", Description: "Only list patch updates"},
+ {Name: "--minor", Description: "Only list minor updates"},
+ {Name: "--major", Description: "Only list major updates"},
+ {Name: "--field", Description: "Prints the value of a single field for each update"},
+ {Name: "--fields", Description: "Render output in a particular format"},
+ {Name: "--line", Description: "The current command line to be executed"},
+ {Name: "--point", Description: "Detects if a command exists"},
+ {Name: "--with-values", Description: "Display current values also"},
+ {Name: "--stable", Description: "Update to the latest stable release. Skips update check"},
+ {Name: "--nightly", Description: "Update to the latest built version of the master branch. Potentially unstable"},
+ {Name: "--yes", Description: "Do not prompt for confirmation"},
+ {Name: "--insecure", Description: "Prints WP-CLI version"},
+ {Name: "--porcelain", Description: "Output just the new comment id"},
+ {Name: "--force", Description: "Skip the trash bin"},
+ {Name: "--count", Description: "How many comments to generate?"},
+ {Name: "--post_id", Description: "Assign comments to a specific post"},
+ {Name: "--all", Description: "Delete all meta for the object"},
+ {Name: "--keys", Description: "Limit output to metadata of specific keys"},
+ {Name: "--orderby", Description: "Set orderby which field"},
+ },
+ })
+}
diff --git a/commands/sys/wrk.go b/commands/sys/wrk.go
new file mode 100644
index 0000000..742e856
--- /dev/null
+++ b/commands/sys/wrk.go
@@ -0,0 +1,23 @@
+package sys
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "wrk",
+ Description: "Wrk - a HTTP benchmarking tool",
+ Options: []core.Option{
+ {Name: "-c", Description: "Connections to keep open"},
+ {Name: "-d", Description: "Duration of test"},
+ {Name: "-t", Description: "Number of threads"},
+ {Name: "-s", Description: "Load Lua script file"},
+ {Name: "-H", Description: "Add header to request"},
+ {Name: "--latency", Description: "Print latency statistics"},
+ {Name: "--timeout", Description: "Socket/request timeout"},
+ {Name: "-v", Description: "Print version details"},
+ {Name: "-h", Description: "Output usage information"},
+ },
+ })
+}
diff --git a/commands/sys/wscat.go b/commands/sys/wscat.go
new file mode 100644
index 0000000..05ef5ad
--- /dev/null
+++ b/commands/sys/wscat.go
@@ -0,0 +1,35 @@
+package sys
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "wscat",
+ Description: "Communicate over websocket",
+ Options: []core.Option{
+ {Name: "-c", Description: "Connect to a WebSocket server"},
+ {Name: "-V", Description: "Output the version number"},
+ {Name: "--auth", Description: "Add basic HTTP authentication header (--connect only)"},
+ {Name: "--ca", Description: "Specify a Certificate Authority (--connect only)"},
+ {Name: "--cert", Description: "Specify a Client SSL Certificate (--connect only)"},
+ {Name: "--host", Description: "Optional host"},
+ {Name: "--key", Description: "Specify a Client SSL Certificate's key (--connect only)"},
+ {Name: "--max-redirects", Description: "Maximum number of redirects allowed (--connect only) (default: 10)"},
+ {Name: "--no-color", Description: "Run without color"},
+ {Name: "--passphrase", Description: "Connect via a proxy. Proxy must support CONNECT method"},
+ {Name: "--slash", Description: "Set an HTTP header. Repeat to set multiple (--connect only) (default: [])"},
+ {Name: "-L", Description: "Follow redirects (--connect only)"},
+ {Name: "-l", Description: "Listen on port"},
+ {Name: "-n", Description: "Do not check for unauthorized certificates"},
+ {Name: "-o", Description: "Optional origin"},
+ {Name: "-p", Description: "Optional protocol version"},
+ {Name: "-P", Description: "Print a notification when a ping or pong is received"},
+ {Name: "-s", Description: "Optional subprotocol (default: [])"},
+ {Name: "-w", Description: "Wait given seconds after executing command"},
+ {Name: "-x", Description: "Execute command after connecting"},
+ {Name: "-h", Description: "Display help for command"},
+ },
+ })
+}
diff --git a/commands/sys/yank.go b/commands/sys/yank.go
new file mode 100644
index 0000000..83ba7dd
--- /dev/null
+++ b/commands/sys/yank.go
@@ -0,0 +1,20 @@
+package sys
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "yank",
+ Description: "Yank terminal output to clipboard",
+ Options: []core.Option{
+ {Name: "-i", Description: "Ignore case differences between pattern and the input"},
+ {Name: "-l", Description: "Use the default delimiters except for space"},
+ {Name: "-x", Description: "Use alternate screen"},
+ {Name: "-v", Description: "Print the version"},
+ {Name: "-d", Description: "All input characters not present in delim will be recognized as fields"},
+ {Name: "-g", Description: "Use pattern to recognize fields"},
+ },
+ })
+}
diff --git a/commands/sys/ykman.go b/commands/sys/ykman.go
new file mode 100644
index 0000000..5436bd6
--- /dev/null
+++ b/commands/sys/ykman.go
@@ -0,0 +1,105 @@
+package sys
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "ykman",
+ Description: "Configure your YubiKey via the command line",
+ Subcommands: []core.Subcommand{
+ {Name: "list", Description: "List connected YubiKeys"},
+ {Name: "config", Description: "Enable or disable applications"},
+ {Name: "mode", Description: "Manage connection modes (USB Interfaces)"},
+ {Name: "nfc", Description: "Enable or disable applications over NFC"},
+ {Name: "set-lock-code", Description: "Set or change the configuration lock code"},
+ {Name: "usb", Description: "Enable or disable applications over USB"},
+ {Name: "fido", Description: "Manage the FIDO applications"},
+ {Name: "info", Description: "Display general status of the FIDO2 application"},
+ {Name: "access", Description: "Manage the PIN for FIDO"},
+ {Name: "change-pin", Description: "Set or change PIN code"},
+ {Name: "verify-pin", Description: "Verify the PIN against a YubiKey"},
+ {Name: "delete", Description: "Delete a credential"},
+ {Name: "fingerprints", Description: "Manage fingerprints"},
+ {Name: "add", Description: "Add a new fingerprint"},
+ {Name: "rename", Description: "Set the label for a fingerprint"},
+ {Name: "oath", Description: "Manage the OATH applications"},
+ {Name: "forget", Description: "Remove a stored password from this computer"},
+ {Name: "accounts", Description: "Manage and use OATH accounts"},
+ {Name: "NAME", Description: "Human readable name of the account, such as a username or e-mail address"},
+ {Name: "SECRET", Description: "Base32-encoded secret/key value provided by the server"},
+ {Name: "code", Description: "Generate codes"},
+ {Name: "QUERY", Description: "Provide a query string to match one or more specific accounts"},
+ {Name: "uri", Description: "Add a new account from an otpauth:// URI"},
+ {Name: "openpgp", Description: "Manage the OpenPGP applications"},
+ {Name: "reset", Description: "Reset all the OpenPGP data"},
+ {Name: "set-retries", Description: "Set PIN, Reset Code and Admin PIN retries"},
+ {Name: "certificates", Description: "Manage certificates"},
+ {Name: "KEY", Description: "Key slot to delete certificate from (sig, enc, aut, or att)"},
+ {Name: "export", Description: "Export an OpenPGP certificate"},
+ {Name: "CERTIFICATE", Description: "File to write certificate to. Use '-' to use stdout"},
+ {Name: "import", Description: "Import an OpenPGP certificate"},
+ {Name: "keys", Description: "Manage private keys"},
+ {Name: "PRIVATE-KEY", Description: "File containing the private key. Use '-' to use stdin"},
+ {Name: "set-touch", Description: "Set touch policy for OpenPGP key"},
+ {Name: "POLICY", Description: "Touch policy to set (on, off, fixed, cached or cached-fixed)"},
+ {Name: "otp", Description: "Manage the YubiOTP applications"},
+ {Name: "chalresp", Description: "Program a challenge-response operation"},
+ {Name: "hotp", Description: "Program an HMAC-SHA1 OATH-HOTP credential"},
+ {Name: "ndef", Description: "Configure a slot to be used over NDEF (NFC)"},
+ {Name: "settings", Description: "Update the settings for a slot"},
+ {Name: "static", Description: "Configure a static password"},
+ {Name: "swap", Description: "Swaps the two slot configurations"},
+ {Name: "yubiotp", Description: "Program a Yubico OTP credential"},
+ {Name: "piv", Description: "Manage the PIV applications"},
+ {Name: "change-management-key", Description: "Change the management key"},
+ {Name: "change-puk", Description: "Change the PUK code"},
+ {Name: "unblock-pin", Description: "Unblock the PIN (using PUK)"},
+ {Name: "SLOT", Description: "PIV slot of the certificate"},
+ {Name: "generate", Description: "Generate a self-signed X.509 certificate"},
+ {Name: "PUBLIC-KEY", Description: "File containing a public key. Use '-' to use stdin"},
+ },
+ Options: []core.Option{
+ {Name: "-c", Description: "Check if YubiKey is in FIPS Approved mode (available on YubiKey 4 FIPS only)"},
+ {Name: "-h", Description: "Show info usage information"},
+ {Name: "-s", Description: "List available smart card readers"},
+ {Name: "--touch-eject", Description: "Confirm the action without prompting"},
+ {Name: "-f", Description: "Confirm the action without prompting"},
+ {Name: "-e", Description: "Enable applications"},
+ {Name: "-d", Description: "Disable applications"},
+ {Name: "-a", Description: "Enable all applications"},
+ {Name: "-D", Description: "Disable all applications"},
+ {Name: "-l", Description: "List enabled applications"},
+ {Name: "-L", Description: "Current application configuration lock code"},
+ {Name: "-n", Description: "New lock code. Conflicts with --generate"},
+ {Name: "-g", Description: "Generate a random lock code. Conflicts with --new-lock-code"},
+ {Name: "--autoeject-timeout", Description: "Show config usb usage information"},
+ {Name: "-P", Description: "Current PIN code"},
+ {Name: "-u", Description: "Set FIDO U2F pin instead of FIDO2 PIN"},
+ {Name: "-p", Description: "Provide a password to unlock the YubiKey"},
+ {Name: "-o", Description: "Time-based (TOTP) or counter-based (HOTP) account"},
+ {Name: "-i", Description: "Issuer of the account"},
+ {Name: "-t", Description: "Require touch on YubiKey to generate code"},
+ {Name: "-r", Description: "Remember the password on this machine"},
+ {Name: "-H", Description: "Include hidden accounts"},
+ {Name: "-F", Description: "Encoding format"},
+ {Name: "-T", Description: "Generate a TOTP code, use the current time if challenge is omitted"},
+ {Name: "--no-enter", Description: "Don't send an Enter keystroke after outputting the code"},
+ {Name: "--prefix", Description: "Added before the NDEF payload. Typically a URI"},
+ {Name: "-A", Description: "Remove access code from the slot"},
+ {Name: "--enter", Description: "Should send 'Enter' keystroke after slot output. (default: enter)"},
+ {Name: "--use-numeric-keypad", Description: "Show otp settings usage information"},
+ {Name: "-k", Description: "Keyboard layout to use for the static password"},
+ {Name: "-S", Description: "Use YubiKey serial number as public ID. Conflicts with --public-id"},
+ {Name: "-G", Description: "Generate a random secret key. Conflicts with --key"},
+ {Name: "--access-code", Description: "Show otp usage information"},
+ {Name: "-m", Description: "Current management key"},
+ {Name: "-v", Description: "Verify that the certificate matches the private key in the slot"},
+ {Name: "--pin-policy", Description: "PIN policy for slot"},
+ {Name: "--touch-policy", Description: "Touch policy for slot"},
+ {Name: "--log-file", Description: "Show diagnostics information useful for troubleshooting"},
+ {Name: "--full-help", Description: "Show --help, including hidden commands, and exit"},
+ },
+ })
+}
diff --git a/commands/sys/zapier.go b/commands/sys/zapier.go
new file mode 100644
index 0000000..cdbe3d2
--- /dev/null
+++ b/commands/sys/zapier.go
@@ -0,0 +1,70 @@
+package sys
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "zapier",
+ Description: "Change the way structured data is presented. If",
+ Subcommands: []core.Subcommand{
+ {Name: "build", Description: "Build a pushable zip from the current directory"},
+ {Name: "path", Description: "Relative to your current path - IE: `.` for current directory"},
+ {Name: "delete:integration", Description: "Delete your integration (including all versions)"},
+ {Name: "delete:version", Description: "Delete a specific version of your integration"},
+ {Name: "version", Description: "Specify the version to delete. It must have no users or Zaps"},
+ {Name: "date", Description: "The date (YYYY-MM-DD) when Zapier will make the specified version unavailable"},
+ {Name: "describe", Description: "Describe the current integraiton"},
+ {Name: "env:get", Description: "Get environment variables for a version"},
+ {Name: "env:set", Description: "Set environment variables for a version"},
+ {Name: "env:unset", Description: "Unset environment variables for a version"},
+ {Name: "keys...", Description: "The keys to unset. Keys are case-insensitive"},
+ {Name: "history", Description: "Get the history of your integration"},
+ {Name: "init", Description: "Initialize a new Zapier integration with a project template"},
+ {Name: "integrations", Description: "List integrations you have admin access to"},
+ {Name: "link", Description: "Link the current directory with an existing integration"},
+ {Name: "login", Description: "Configure your `~/.zapierrc` with a deploy key"},
+ {Name: "logout", Description: "Deactivate your active deploy key and reset `~/.zapierrc`"},
+ {Name: "logs", Description: "Print recent logs"},
+ {Name: "migrate", Description: "Migrate users from one version of your integration to another"},
+ {Name: "fromVersion", Description: "The version FROM which to migrate users"},
+ {Name: "toVersion", Description: "The version TO which to migrate users"},
+ {Name: "percent", Description: "Percentage (between 1 and 100) of users to migrate"},
+ {Name: "promote", Description: "Promote a specific version to public access"},
+ {Name: "push", Description: "Build and upload the current integration"},
+ {Name: "register", Description: "Register a new integration in your account"},
+ {Name: "title", Description: "Your integrations's public title. Asked interactively if not present"},
+ {Name: "scaffold", Description: "Add a starting trigger, create, search, or resource to your integration"},
+ {Name: "team:add", Description: "Add a team member to your integration"},
+ {Name: "team:get", Description: "Get team members involved with your integration"},
+ {Name: "team:remove", Description: "Remove a team member from all versions of your integration"},
+ {Name: "upload", Description: "Upload the latest build of your integration to Zapier"},
+ {Name: "users:add", Description: "Add a user to some or all versions of your integration"},
+ {Name: "users:get", Description: "Get a list of users who have been invited to your integration"},
+ {Name: "users:links", Description: "Get a list of links that are used to invite users to your integration"},
+ {Name: "users:remove", Description: "Remove a user from all versions of your integration"},
+ {Name: "email", Description: "The user to be removed"},
+ {Name: "validate", Description: "Validate your integration"},
+ {Name: "versions", Description: "List the versions of your integration available for use in the Zapier editor"},
+ {Name: "help", Description: "Display help for zapier"},
+ {Name: "command", Description: "Command to show help for"},
+ },
+ Options: []core.Option{
+ {Name: "-f", Description: "Show extra debugging output"},
+ {Name: "-m", Description: "Build a pushable zip from the current directory"},
+ {Name: "-t", Description: "The template to start your integration with"},
+ {Name: "-s", Description: "Deactivate your active deploy key and reset `~/.zapierrc`"},
+ {Name: "-v", Description: "Filter logs to the specified version"},
+ {Name: "--detailed", Description: "See extra info, like request/response body and headers"},
+ {Name: "-u", Description: "Only show logs for this user. Defaults to your account"},
+ {Name: "--limit", Description: "Cap the number of logs returned. Max is 50 (also the default)"},
+ {Name: "--user", Description: "Migrate only this user"},
+ {Name: "-d", Description: "Should we overwrite an existing trigger/search/create file?"},
+ {Name: "--no-help", Description: "Add a team member to your integration"},
+ {Name: "--skip-validate", Description: "Upload the latest build of your integration to Zapier"},
+ {Name: "--without-style", Description: "Forgo pinging the Zapier server to run further checks"},
+ {Name: "--all", Description: "See all commands in CLI"},
+ },
+ })
+}
diff --git a/commands/text/diff.go b/commands/text/diff.go
new file mode 100644
index 0000000..70746b2
--- /dev/null
+++ b/commands/text/diff.go
@@ -0,0 +1,54 @@
+package text
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "diff",
+ Description: "Compare files line by line",
+ Options: []core.Option{
+ {Name: "-i", Description: "Ignore case differences in file contents"},
+ {Name: "--ignore-file-name-case", Description: "Ignore case when comparing file names"},
+ {Name: "--no-ignore-file-name-case", Description: "Consider case when comparing file names"},
+ {Name: "-E", Description: "Ignore changes due to tab expansion"},
+ {Name: "-b", Description: "Ignore changes in the amount of white space"},
+ {Name: "-w", Description: "Ignore all white space"},
+ {Name: "-B", Description: "Ignore changes whose lines are all blank"},
+ {Name: "-I", Description: "Ignore changes whose lines all match RE"},
+ {Name: "--strip-trailing-cr", Description: "Strip trailing carriage return on input"},
+ {Name: "-a", Description: "Treat all files as text"},
+ {Name: "-c", Description: "Output NUM lines of copied context"},
+ {Name: "-u", Description: "Output NUM lines of unified context"},
+ {Name: "--label", Description: "Use LABEL instead of file name"},
+ {Name: "-p", Description: "Show which C function each change is in"},
+ {Name: "-F", Description: "Show the most recent line matching RE"},
+ {Name: "-q", Description: "Output only whether files differ"},
+ {Name: "-e", Description: "Output an ed script"},
+ {Name: "--normal", Description: "Output a normal diff"},
+ {Name: "-n", Description: "Output an RCS format diff"},
+ {Name: "-y", Description: "Output in two columns"},
+ {Name: "-W", Description: "Output at most NUM (default 130) print columns"},
+ {Name: "--left-column", Description: "Output only the left column of common lines"},
+ {Name: "--suppress-common-lines", Description: "Do not output common lines"},
+ {Name: "-D", Description: "Output merged file to show `#ifdef NAME' diffs"},
+ {Name: "-l", Description: "Pass the output through `pr' to paginate it"},
+ {Name: "-t", Description: "Expand tabs to spaces in output"},
+ {Name: "-T", Description: "Make tabs line up by prepending a tab"},
+ {Name: "-r", Description: "Recursively compare any subdirectories found"},
+ {Name: "-N", Description: "Treat absent files as empty"},
+ {Name: "--unidirectional-new-file", Description: "Treat absent first files as empty"},
+ {Name: "-s", Description: "Report when two files are the same"},
+ {Name: "-x", Description: "Exclude files that match PAT"},
+ {Name: "-X", Description: "Exclude files that match any pattern in FILE"},
+ {Name: "-S", Description: "Start with FILE when comparing directories"},
+ {Name: "--from-file", Description: "Compare FILE1 to all operands. FILE1 can be a directory"},
+ {Name: "--to-file", Description: "Compare all operands to FILE2. FILE2 can be a directory"},
+ {Name: "--horizon-lines", Description: "Keep NUM lines of the common prefix and suffix"},
+ {Name: "-d", Description: "Try hard to find a smaller set of changes"},
+ {Name: "--speed-large-files", Description: "Assume large files and many scattered small changes"},
+ {Name: "-v", Description: "Output version info"},
+ },
+ })
+}
diff --git a/commands/text/dos2unix.go b/commands/text/dos2unix.go
new file mode 100644
index 0000000..b962834
--- /dev/null
+++ b/commands/text/dos2unix.go
@@ -0,0 +1,43 @@
+package text
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "dos2unix",
+ Description: "DOS to Unix file format converter",
+ Options: []core.Option{
+ {Name: "-h", Description: "Show help for dos2unix"},
+ {Name: "--allow-chown", Description: "Allow file ownership change in old file mode"},
+ {Name: "-ascii", Description: "Convert only line breaks. This is the default conversion mode"},
+ {Name: "-iso", Description: "Conversion between DOS and ISO-8859-1 character set"},
+ {Name: "-1252", Description: "Use Windows code page 1252 (Western European)"},
+ {Name: "-437", Description: "Use DOS code page 850 (Western European)"},
+ {Name: "-860", Description: "Use DOS code page 860 (Portuguese)"},
+ {Name: "-863", Description: "Use DOS code page 863 (French Canadian)"},
+ {Name: "-865", Description: "Use DOS code page 865 (Nordic)"},
+ {Name: "-7", Description: "Convert 8 bit characters to 7 bit space"},
+ {Name: "-b", Description: "Set conversion mode"},
+ {Name: "-D", Description: "Set encoding of displayed text"},
+ {Name: "-f", Description: "Force conversion of binary files"},
+ {Name: "-gb", Description: "Display file information. No conversion is done"},
+ {Name: "--info", Description: "Display file information. No conversion is done"},
+ {Name: "-k", Description: "Display program's license"},
+ {Name: "-l", Description: "Add additional newline"},
+ {Name: "-m", Description: "Don't allow file ownership change in old file mode (default)"},
+ {Name: "-o", Description: "Old file mode. Convert file FILE and overwrite output to it"},
+ {Name: "-q", Description: "Remove Byte Order Mark (BOM). Do not write a BOM in the output file"},
+ {Name: "-s", Description: "Skip binary files (default)"},
+ {Name: "-u", Description: "Keep UTF-16 encoding"},
+ {Name: "-ul", Description: "Assume that the input format is UTF-16LE"},
+ {Name: "-ub", Description: "Assume that the input format is UTF-16BE"},
+ {Name: "-v", Description: "Verbose operation"},
+ {Name: "-F", Description: "Follow symbolic links and convert the targets"},
+ {Name: "-R", Description: "Replace symbolic links with converted files"},
+ {Name: "-S", Description: "Keep symbolic links and targets unchanged (default)"},
+ {Name: "-V", Description: "Display version number"},
+ },
+ })
+}
diff --git a/commands/text/iconv.go b/commands/text/iconv.go
new file mode 100644
index 0000000..dbed862
--- /dev/null
+++ b/commands/text/iconv.go
@@ -0,0 +1,23 @@
+package text
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "iconv",
+ Description: "Character set conversion",
+ Options: []core.Option{
+ {Name: "--help", Description: "Show help for iconv"},
+ {Name: "--version", Description: "Output version information and exit"},
+ {Name: "-f", Description: "Specifies the encoding of the input"},
+ {Name: "-t", Description: "Specifies the encoding of the output"},
+ {Name: "-c", Description: "Discard unconvertible characters"},
+ {Name: "-l", Description: "List the supported encodings"},
+ {Name: "--unicode-subst", Description: "Substitution for unconvertible Unicode characters"},
+ {Name: "--byte-subst", Description: "Substitution for unconvertible bytes"},
+ {Name: "--widechar-subst", Description: "Substitution for unconvertible wide characters"},
+ },
+ })
+}
diff --git a/commands/text/jq.go b/commands/text/jq.go
new file mode 100644
index 0000000..3a2b43c
--- /dev/null
+++ b/commands/text/jq.go
@@ -0,0 +1,26 @@
+package text
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "jq",
+ Description: "Output the jq version and exit with zero",
+ Options: []core.Option{
+ {Name: "--version", Description: "Output the jq version and exit with zero"},
+ {Name: "--seq", Description: "Parse the input in streaming fashion, outputting arrays of path and leaf values"},
+ {Name: "--slurp", Description: "Use a tab for each indentation level instead of two spaces"},
+ {Name: "--indent", Description: "Use the given number of spaces for indentation"},
+ {Name: "--color-output", Description: "Disable color"},
+ {Name: "--ascii-output", Description: "Flush the output after each JSON object is printed"},
+ {Name: "--sort-keys", Description: "Output the fields of each object with the keys in sorted orde"},
+ {Name: "--raw-output", Description: "Like -r but jq won't print a newline after each output"},
+ {Name: "-f", Description: "Read filter from the file rather than from a command line"},
+ {Name: "-L", Description: "Prepend directory to the search list for modules"},
+ {Name: "-e", Description: "This option passes a value to the jq program as a predefined variable"},
+ {Name: "--argjson", Description: "Command-line JSON processor"},
+ },
+ })
+}
diff --git a/commands/text/pandoc.go b/commands/text/pandoc.go
new file mode 100644
index 0000000..46c7d6a
--- /dev/null
+++ b/commands/text/pandoc.go
@@ -0,0 +1,54 @@
+package text
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "pandoc",
+ Description: "A universal document converter",
+ Options: []core.Option{
+ {Name: "-f", Description: "Specify input format"},
+ {Name: "-t", Description: "Specify output format"},
+ {Name: "-o", Description: "Write output to FILE instead of stdout"},
+ {Name: "--data-dir", Description: "Specify the user data directory to search for pandoc data files"},
+ {Name: "-d", Description: "Specify a set of default option settings"},
+ {Name: "--bash-completion", Description: "Generate a bash completion script"},
+ {Name: "--verbose", Description: "Give verbose debugging output"},
+ {Name: "--quiet", Description: "Suppress warning messages"},
+ {Name: "--fail-if-warnings", Description: "Exit with error status if there are any warnings"},
+ {Name: "--log", Description: "Write log messages in machine-readable JSON format to FILE"},
+ {Name: "--list-input-formats", Description: "List supported input formats, one per line"},
+ {Name: "--list-output-formats", Description: "List supported output formats, one per line"},
+ {Name: "--list-extensions", Description: "List supported languages for syntax highlighting, one per line"},
+ {Name: "--list-highlight-styles", Description: "List supported styles for syntax highlighting, one per line"},
+ {Name: "-v", Description: "Print version"},
+ {Name: "-h", Description: "Show usage message"},
+ {Name: "--shift-heading-level-by", Description: "Shift heading levels by a positive or negative integer"},
+ {Name: "--indented-code-classes", Description: "Set the metadata field KEY to the value VAL"},
+ {Name: "--metadata-file", Description: "Read metadata from the supplied YAML (or JSON) file"},
+ {Name: "-p", Description: "Preserve tabs instead of converting them to spaces"},
+ {Name: "--tab-stop", Description: "Specify the number of spaces per tab"},
+ {Name: "--track-changes", Description: "Processes all the insertions and deletions and ignores comments"},
+ {Name: "--extract-media", Description: "Use the specified file as a custom template for the generated document"},
+ {Name: "-V", Description: "Print a system default data file. Files in the user data directory are ignored"},
+ {Name: "--eol", Description: "Windows"},
+ {Name: "--dpi", Description: "Attempts to wrap lines to the column width specified by --columns (default 72)"},
+ {Name: "--columns", Description: "Specify the number of section levels to include in the table of contents"},
+ {Name: "--strip-comments", Description: "Specifies the coloring style to be used in highlighted source code"},
+ {Name: "--print-highlight-style", Description: "Include contents of FILE, verbatim, at the end of the header"},
+ {Name: "-B", Description: "Include contents of FILE, verbatim, at the beginning of the document body"},
+ {Name: "-A", Description: "Include contents of FILE, verbatim, at the end of the document body"},
+ {Name: "--resource-path", Description: "Disable the certificate verification to allow access to unsecure HTTP resources"},
+ {Name: "--self-contained", Description: "Deprecated synonym for --markdown-headings=atx"},
+ {Name: "--top-level-division", Description: "Offset for section headings in HTML output (ignored in other output formats)"},
+ {Name: "--listings", Description: "Make list items in slide shows display incrementally"},
+ {Name: "--slide-level", Description: "Number"},
+ {Name: "--section-divs", Description: "Leaves mailto: links as they are"},
+ {Name: "--id-prefix", Description: "Use the specified file as a style reference in producing a docx or ODT file"},
+ {Name: "--epub-cover-image", Description: "Use the specified engine when producing PDF output"},
+ {Name: "--pdf-engine-opt", Description: "Use the given string as a command-line argument to the pdf-engine"},
+ },
+ })
+}
diff --git a/commands/text/seq.go b/commands/text/seq.go
new file mode 100644
index 0000000..d9fc63e
--- /dev/null
+++ b/commands/text/seq.go
@@ -0,0 +1,17 @@
+package text
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "seq",
+ Description: "Print sequences of numbers. (Defaults to increments of 1)",
+ Options: []core.Option{
+ {Name: "-w", Description: "Equalize the widths of all numbers by padding with zeros as necessary"},
+ {Name: "-s", Description: "String separator between numbers. Default is newline"},
+ {Name: "-f", Description: "Use a printf(3) style format to print each number"},
+ },
+ })
+}
diff --git a/commands/text/sha1sum.go b/commands/text/sha1sum.go
new file mode 100644
index 0000000..b1d81ce
--- /dev/null
+++ b/commands/text/sha1sum.go
@@ -0,0 +1,26 @@
+package text
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "sha1sum",
+ Description: "Print or check SHA1 (160-bit) checksums",
+ Options: []core.Option{
+ {Name: "-b", Description: "Read in binary mode"},
+ {Name: "-c", Description: "Read SHA1 sums from the FILEs and check them"},
+ {Name: "--tag", Description: "Create a BSD-style checksum"},
+ {Name: "-t", Description: "Read in text mode (default)"},
+ {Name: "-z", Description: "End each output line with NUL, not newline, and disable file name escaping"},
+ {Name: "--ignore-missing", Description: "Don't fail or report status for missing files"},
+ {Name: "--quiet", Description: "Don't print OK for each successfully verified file"},
+ {Name: "--status", Description: "Don't output anything, status code shows success"},
+ {Name: "--strict", Description: "Exit non-zero for improperly formatted checksum lines"},
+ {Name: "-w", Description: "Warn about improperly formatted checksum lines"},
+ {Name: "--help", Description: "Output help message and exit"},
+ {Name: "--version", Description: "Output version information and exit"},
+ },
+ })
+}
diff --git a/commands/text/shasum.go b/commands/text/shasum.go
new file mode 100644
index 0000000..08a55b0
--- /dev/null
+++ b/commands/text/shasum.go
@@ -0,0 +1,28 @@
+package text
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "shasum",
+ Description: "Print or Check SHA Checksums",
+ Options: []core.Option{
+ {Name: "-a", Description: "Select SHA algorithm"},
+ {Name: "-b", Description: "Read in binary mode"},
+ {Name: "-c", Description: "Read SHA sums from the FILEs and check them"},
+ {Name: "--tag", Description: "Create a BSD-style checksum"},
+ {Name: "-t", Description: "Read in text mode (default)"},
+ {Name: "-U", Description: "Read in Universal Newlines mode - produces same digest on Windows/Unix/Mac"},
+ {Name: "-0", Description: "Read in BITS mode - ASCII '0' as 0-bit, ASCII '1' as 1-bit, others ignored"},
+ {Name: "--ignore-missing", Description: "Don't fail or report status for missing files"},
+ {Name: "-q", Description: "Don't print OK for each successfully verified file"},
+ {Name: "-s", Description: "Don't output anything, status code shows success"},
+ {Name: "--strict", Description: "Exit non-zero for improperly formatted checksum lines"},
+ {Name: "-w", Description: "Warn about improperly formatted checksum lines"},
+ {Name: "-h", Description: "Display help and exit"},
+ {Name: "-v", Description: "Output version information and exit"},
+ },
+ })
+}
diff --git a/commands/text/shred.go b/commands/text/shred.go
new file mode 100644
index 0000000..76b9c5d
--- /dev/null
+++ b/commands/text/shred.go
@@ -0,0 +1,23 @@
+package text
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "shred",
+ Description: "Overwrite a file to hide its contents, and optionally delete it",
+ Options: []core.Option{
+ {Name: "--force", Description: "Change permissions to allow writing if necessary"},
+ {Name: "--iterations", Description: "Overwrite N times instead of the default (3)"},
+ {Name: "--random-source", Description: "Get random bytes from FILE"},
+ {Name: "--size", Description: "Shred this many bytes (suffixes like K, M, G accepted)"},
+ {Name: "--remove", Description: "Like -u but give control on HOW to delete"},
+ {Name: "--verbose", Description: "Show progress"},
+ {Name: "--exact", Description: "Add a final overwrite with zeros to hide shredding"},
+ {Name: "--help", Description: "Display this help and exit"},
+ {Name: "--version", Description: "Output version information and exit"},
+ },
+ })
+}
diff --git a/commands/text/split.go b/commands/text/split.go
new file mode 100644
index 0000000..fc7d63d
--- /dev/null
+++ b/commands/text/split.go
@@ -0,0 +1,19 @@
+package text
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "split",
+ Description: "Use suffix_length letters to form the suffix of the file name",
+ Options: []core.Option{
+ {Name: "-a", Description: "Use suffix_length letters to form the suffix of the file name"},
+ {Name: "-b", Description: "N[K|k|M|m|G|g]"},
+ {Name: "-d", Description: "Use a numeric suffix instead of a alphabetic suffix"},
+ {Name: "-l", Description: "Create split files line_count lines in length"},
+ {Name: "-p", Description: "The file to split"},
+ },
+ })
+}
diff --git a/commands/text/truncate.go b/commands/text/truncate.go
new file mode 100644
index 0000000..8aca7f1
--- /dev/null
+++ b/commands/text/truncate.go
@@ -0,0 +1,20 @@
+package text
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "truncate",
+ Description: "Shrink or extend the size of a file to the specified size",
+ Options: []core.Option{
+ {Name: "--no-create", Description: "Do not create any files"},
+ {Name: "--io-blocks", Description: "Treat SIZE as number of IO blocks instead of bytes"},
+ {Name: "--reference", Description: "Base size on RFILE"},
+ {Name: "--size", Description: "Set or adjust the file size by SIZE bytes"},
+ {Name: "--help", Description: "Show help for truncate"},
+ {Name: "--version", Description: "Output version information and exit"},
+ },
+ })
+}
diff --git a/commands/text/typos.go b/commands/text/typos.go
new file mode 100644
index 0000000..b2d143c
--- /dev/null
+++ b/commands/text/typos.go
@@ -0,0 +1,42 @@
+package text
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "typos",
+ Description: "Source code spelling correction",
+ Options: []core.Option{
+ {Name: "-c", Description: "Custom config file"},
+ {Name: "--isolated", Description: "Ignore implicit configuration files"},
+ {Name: "--diff", Description: "Print a diff of what would change"},
+ {Name: "-w", Description: "Write fixes out"},
+ {Name: "--files", Description: "Debug: Print each file that would be spellchecked"},
+ {Name: "--identifiers", Description: "Debug: Print each identifier that would be spellchecked"},
+ {Name: "--words", Description: "Debug: Print each word that would be spellchecked"},
+ {Name: "--dump-config", Description: "Print to stdout"},
+ {Name: "--type-list", Description: "Show all supported file types"},
+ {Name: "--format", Description: "Set the output format"},
+ {Name: "-j", Description: "The approximate number of threads to use"},
+ {Name: "--exclude", Description: "Ignore files & directories matching the glob"},
+ {Name: "--hidden", Description: "Search hidden files and directories"},
+ {Name: "--no-ignore", Description: "Don't respect ignore files"},
+ {Name: "--no-ignore-dot", Description: "Don't respect .ignore files"},
+ {Name: "--no-ignore-global", Description: "Don't respect global ignore files"},
+ {Name: "--no-ignore-parent", Description: "Don't respect ignore files in parent directories"},
+ {Name: "--no-ignore-vcs", Description: "Don't respect ignore files in vcs directories"},
+ {Name: "--binary", Description: "Search binary files"},
+ {Name: "--no-check-filenames", Description: "Skip verifying spelling in file names"},
+ {Name: "--no-check-files", Description: "Skip verifying spelling in files"},
+ {Name: "--no-unicode", Description: "Only allow ASCII characters in identifiers"},
+ {Name: "--locale", Description: "Set the locale to use"},
+ {Name: "--color", Description: "Controls when to use color"},
+ {Name: "-v", Description: "More output per occurrence"},
+ {Name: "-q", Description: "Less output per occurrence"},
+ {Name: "-h", Description: "Print help information"},
+ {Name: "-V", Description: "Print version information"},
+ },
+ })
+}
diff --git a/commands/text/unix2dos.go b/commands/text/unix2dos.go
new file mode 100644
index 0000000..8df4872
--- /dev/null
+++ b/commands/text/unix2dos.go
@@ -0,0 +1,12 @@
+package text
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "unix2dos",
+ Description: "Unix to DOS text file format convertor",
+ })
+}
diff --git a/commands/text/vale.go b/commands/text/vale.go
new file mode 100644
index 0000000..c485279
--- /dev/null
+++ b/commands/text/vale.go
@@ -0,0 +1,29 @@
+package text
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "vale",
+ Description: "A syntax-aware linter for prose built with speed and extensibility in mind",
+ Subcommands: []core.Subcommand{
+ {Name: "ls-config", Description: "Print the current configuration to stdout"},
+ {Name: "ls-metrics", Description: "Print the given file's internal metrics to stdout"},
+ {Name: "file", Description: "The path to a file you want to analyze"},
+ },
+ Options: []core.Option{
+ {Name: "--help", Description: "Show help for vale"},
+ {Name: "--version", Description: "Print the current version"},
+ {Name: "--ignore-syntax", Description: "Lint all files line-by-line"},
+ {Name: "--no-exit", Description: "Don't return a nonzero exit code on errors"},
+ {Name: "--no-wrap", Description: "Don't wrap CLI output"},
+ {Name: "--ext", Description: "An extension to associate with stdin"},
+ {Name: "--glob", Description: "A glob pattern"},
+ {Name: "--minAlertLevel", Description: "The minimum level to display"},
+ {Name: "--output", Description: "The alert output style to use"},
+ {Name: "--config", Description: "A path to a .vale.ini file"},
+ },
+ })
+}
diff --git a/commands/view/bat.go b/commands/view/bat.go
new file mode 100644
index 0000000..e8c406e
--- /dev/null
+++ b/commands/view/bat.go
@@ -0,0 +1,42 @@
+package view
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "bat",
+ Description: "A cat(1) clone with syntax highlighting and Git integration",
+ Options: []core.Option{
+ {Name: "-A", Description: "Show non-printable characters"},
+ {Name: "-p", Description: "Show plain style, no decorations"},
+ {Name: "-l", Description: "Explicitly set the language for syntax highlighting"},
+ {Name: "-H", Description: "Highlight the specified line ranges"},
+ {Name: "--file-name", Description: "File(s)"},
+ {Name: "-d", Description: "Show lines that have been added/removed/modified with respect to the Git index"},
+ {Name: "--diff-context", Description: "Lines of context"},
+ {Name: "--tabs", Description: "Set the tab width to T spaces. Use a width of 0 to pass tabs through directly"},
+ {Name: "--wrap", Description: "Specify when to use colored output"},
+ {Name: "--terminal-width", Description: "Explicitly set the width of the terminal instead of determining it automatically"},
+ {Name: "-n", Description: "Show line numbers, no other decorations"},
+ {Name: "--color", Description: "Specify when to use colored output"},
+ {Name: "--italic-text", Description: "Specify when to use ANSI sequences for italic text in the output"},
+ {Name: "--decorations", Description: "Specify when to use the decorations that have been specified via '--style'"},
+ {Name: "-f", Description: "Alias for '--decorations=always --color=always'"},
+ {Name: "--paging", Description: "Specify when to use the pager"},
+ {Name: "--pager", Description: "Determine which pager is used"},
+ {Name: "-m", Description: "Map a glob pattern to an existing syntax name"},
+ {Name: "--ignored-suffix", Description: "Ignore extension"},
+ {Name: "--theme", Description: "Set the theme for syntax highlighting"},
+ {Name: "--list-themes", Description: "Display a list of supported themes for syntax highlighting"},
+ {Name: "--style", Description: "Display a list of supported themes for syntax highlighting"},
+ {Name: "-r", Description: "Only print the specified range of lines for each file"},
+ {Name: "-L", Description: "Display a list of supported languages for syntax highlighting"},
+ {Name: "-u", Description: "Show diagnostic information for bug reports"},
+ {Name: "--acknowledgements", Description: "Show acknowledgements"},
+ {Name: "-h", Description: "Print help message"},
+ {Name: "-V", Description: "Show version information"},
+ },
+ })
+}
diff --git a/commands/view/code.go b/commands/view/code.go
new file mode 100644
index 0000000..6b84cb8
--- /dev/null
+++ b/commands/view/code.go
@@ -0,0 +1,38 @@
+package view
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "code",
+ Description: "Read from stdin (e.g.",
+ Options: []core.Option{
+ {Name: "-d", Description: "Compare two files with each other"},
+ {Name: "-m", Description: "Add folder(s) to the last active window"},
+ {Name: "-g", Description: "Open a file at the path on the specified line and character position"},
+ {Name: "-n", Description: "Force to open a new window"},
+ {Name: "-r", Description: "Force to open a file or folder in an already opened window"},
+ {Name: "-w", Description: "Wait for the files to be closed before returning"},
+ {Name: "--locale", Description: "The locale to use (e.g. en-US or zh-TW)"},
+ {Name: "--user-data-dir", Description: "Print usage"},
+ {Name: "--extensions-dir", Description: "Set the root path for extensions"},
+ {Name: "--list-extensions", Description: "List the installed extensions"},
+ {Name: "--show-versions", Description: "Show versions of installed extensions, when using --list-extensions"},
+ {Name: "--category", Description: "Filters installed extensions by provided category, when using --list-extensions"},
+ {Name: "--install-extension", Description: "Uninstalls an extension"},
+ {Name: "--enable-proposed-api", Description: "Print version"},
+ {Name: "--verbose", Description: "Print verbose output (implies --wait)"},
+ {Name: "--log", Description: "Log level to use. Default is 'info' when unspecified"},
+ {Name: "-s", Description: "Print process usage and diagnostics information"},
+ {Name: "--prof-startup", Description: "Run CPU profiler during startup"},
+ {Name: "--disable-extensions", Description: "Disable all installed extensions"},
+ {Name: "--disable-extension", Description: "Disable an extension"},
+ {Name: "--sync", Description: "Turn sync on or off"},
+ {Name: "--inspect-extensions", Description: "Disable GPU hardware acceleration"},
+ {Name: "--max-memory", Description: "Max memory size for a window (in Mbytes)"},
+ {Name: "--telemetry", Description: "Shows all telemetry events which VS code collects"},
+ },
+ })
+}
diff --git a/commands/view/cot.go b/commands/view/cot.go
new file mode 100644
index 0000000..a77e206
--- /dev/null
+++ b/commands/view/cot.go
@@ -0,0 +1,12 @@
+package view
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "cot",
+ Description: "Command-line utility for CotEditor",
+ })
+}
diff --git a/commands/view/emacs.go b/commands/view/emacs.go
new file mode 100644
index 0000000..1f89b03
--- /dev/null
+++ b/commands/view/emacs.go
@@ -0,0 +1,12 @@
+package view
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "emacs",
+ Description: "An extensible, customizable, free/libre text editor - and more",
+ })
+}
diff --git a/commands/view/glow.go b/commands/view/glow.go
new file mode 100644
index 0000000..d8f8098
--- /dev/null
+++ b/commands/view/glow.go
@@ -0,0 +1,28 @@
+package view
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "glow",
+ Description: "Render markdown on the CLI, with pizzazz!",
+ Subcommands: []core.Subcommand{
+ {Name: "config", Description: "Edit the glow config file"},
+ {Name: "help", Description: "Help about any command"},
+ {Name: "stash", Description: "Manage your stash of markdown files"},
+ },
+ Options: []core.Option{
+ {Name: "-a", Description: "Show system files and directories (TUI-mode only)"},
+ {Name: "--config", Description: "Config file"},
+ {Name: "-h", Description: "Help for glow"},
+ {Name: "-l", Description: "Show local files only; no network (TUI-mode only)"},
+ {Name: "-p", Description: "Display with pager"},
+ {Name: "-s", Description: "Style name or JSON path (default 'auto')"},
+ {Name: "-v", Description: "Version for glow"},
+ {Name: "-w", Description: "Word-wrap at width"},
+ {Name: "-m", Description: "Memo/note for stashing"},
+ },
+ })
+}
diff --git a/commands/view/idea.go b/commands/view/idea.go
new file mode 100644
index 0000000..e7911f7
--- /dev/null
+++ b/commands/view/idea.go
@@ -0,0 +1,28 @@
+package view
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "idea",
+ Description: "IntelliJ IDEA CLI",
+ Subcommands: []core.Subcommand{
+ {Name: "diff", Description: "Open the diff viewer to see the differences between two specified files"},
+ {Name: "merge", Description: "Open the Merge dialog to merge the specified files"},
+ {Name: "format", Description: "Apply code style formatting to the specified files"},
+ {Name: "inspect", Description: "Perform code inspection on the specified project"},
+ },
+ Options: []core.Option{
+ {Name: "-h", Description: "Show help for format command"},
+ {Name: "-m", Description: "Process specified directories recursively"},
+ {Name: "-s", Description: "Specify the code style settings file to use for formatting"},
+ {Name: "-allowDefaults", Description: "Preserve encoding and enforce the charset for reading and writing source files"},
+ {Name: "-d", Description: "Run the formatter in the validation mode"},
+ {Name: "-changes", Description: "Run inspections only on local uncommitted changes"},
+ {Name: "-v", Description: "Set the verbosity level of the output"},
+ {Name: "--wait", Description: "Wait for the files to be closed before returning to the command prompt"},
+ },
+ })
+}
diff --git a/commands/view/lvim.go b/commands/view/lvim.go
new file mode 100644
index 0000000..7ba64df
--- /dev/null
+++ b/commands/view/lvim.go
@@ -0,0 +1,43 @@
+package view
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "lvim",
+ Description: "Hyperextensible Vim-based text editor",
+ Options: []core.Option{
+ {Name: "--cmd", Description: "Execute before any config"},
+ {Name: "-c", Description: "Execute after config and first file"},
+ {Name: "-b", Description: "Binary mode"},
+ {Name: "-d", Description: "Diff mode"},
+ {Name: "-e", Description: "Ex mode"},
+ {Name: "-es", Description: "Silent (batch) mode"},
+ {Name: "-h", Description: "Print this help message"},
+ {Name: "-i", Description: "Use this shada file"},
+ {Name: "-m", Description: "Modifications (writing files) not allowed"},
+ {Name: "-M", Description: "Modifications in text not allowed"},
+ {Name: "-n", Description: "No swap file, use memory only"},
+ {Name: "-o", Description: "Open N windows (default: one per file)"},
+ {Name: "-O", Description: "Open N vertical windows (default: one per file)"},
+ {Name: "-p", Description: "Open N tab pages (default: one per file)"},
+ {Name: "-L", Description: "List swap files"},
+ {Name: "-r", Description: "Recover edit state for this file"},
+ {Name: "-R", Description: "Read-only mode"},
+ {Name: "-S", Description: "Source after loading the first file"},
+ {Name: "-s", Description: "Read Normal mode commands from "},
+ {Name: "-u", Description: "Use this config file"},
+ {Name: "-v", Description: "Print version information"},
+ {Name: "--api-info", Description: "Write msgpack-encoded API metadata to stdout"},
+ {Name: "--embed", Description: "Use stdin/stdout as a msgpack-rpc channel"},
+ {Name: "--headless", Description: "Don't start a user interface"},
+ {Name: "--listen", Description: "Serve RPC API from this address"},
+ {Name: "--noplugin", Description: "Don't load plugins"},
+ {Name: "--remote", Description: "Execute commands remotely on a server"},
+ {Name: "--server", Description: "Specify RPC server to send commands to"},
+ {Name: "--startuptime", Description: "Write startup timing messages to "},
+ },
+ })
+}
diff --git a/commands/view/micro.go b/commands/view/micro.go
new file mode 100644
index 0000000..6589d59
--- /dev/null
+++ b/commands/view/micro.go
@@ -0,0 +1,61 @@
+package view
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "micro",
+ Description: "True/false",
+ Subcommands: []core.Subcommand{
+ {Name: "remove", Description: "Remove plugin(s)"},
+ {Name: "update", Description: "Update plugin(s) (if no argument is given, updates all plugins)"},
+ {Name: "search", Description: "Search for a plugin"},
+ {Name: "list", Description: "List installed plugins"},
+ {Name: "available", Description: "List available plugins"},
+ },
+ Options: []core.Option{
+ {Name: "--plugin", Description: "Manage plugins"},
+ {Name: "--clean", Description: "Cleans the configuration directory"},
+ {Name: "--config-dir", Description: "Specify a custom location for the configuration directory"},
+ {Name: "--options", Description: "Show all option help"},
+ {Name: "--debug", Description: "Enable debug mode"},
+ {Name: "--version", Description: "Show the version number and information"},
+ {Name: "--autoindent", Description: "When creating a new line, use the same indentation as the previous line"},
+ {Name: "--autosave", Description: "Seconds"},
+ {Name: "--autosu", Description: "Automatically attempt to use super user privileges to save without asking"},
+ {Name: "--backup", Description: "Automatically keep backups of all open buffers"},
+ {Name: "--backupdir", Description: "The directory to place backups in"},
+ {Name: "--basename", Description: "Apecifies how the system clipboard should be accessed"},
+ {Name: "--colorcolumn", Description: "Display a color at the specified column if not set to 0"},
+ {Name: "--colorscheme", Description: "Loads the colorscheme stored in $(configDir)/colorschemes/.micro"},
+ {Name: "--cursorline", Description: "Highlight the line that the cursor is on in a different color"},
+ {Name: "--diffgutter", Description: "Display diff indicators before lines"},
+ {Name: "--divchars", Description: "Reverse colors specified by the colorscheme"},
+ {Name: "--encoding", Description: "The encoding to open and save files with"},
+ {Name: "--eofnewline", Description: "Automatically add a newline to the end of the file if one does not exist"},
+ {Name: "--fastdirty", Description: "Use 'fast dirty' algorithm to determine if a buffer is modified or not"},
+ {Name: "--fileformat", Description: "Type of line endings to be used for the file"},
+ {Name: "--filetype", Description: "File type for the current buffer"},
+ {Name: "--ignorecase", Description: "Perform case-insensitive searches"},
+ {Name: "--incsearch", Description: "Sets the indentation character"},
+ {Name: "--infobar", Description: "Enables the line at the bottom of the editor where messages are printed"},
+ {Name: "--keepautoindent", Description: "Display the nano-style key menu at the bottom of the screen"},
+ {Name: "--matchbrace", Description: "Enable mouse support"},
+ {Name: "--paste", Description: "Cause backups to be permanently saved"},
+ {Name: "--pluginchannels", Description: "List of URLs pointing to plugin channels for downloading and installing plugins"},
+ {Name: "--pluginrepos", Description: "A list of links to plugin repositories"},
+ {Name: "--readonly", Description: "Disallow edits to the buffer"},
+ {Name: "--relativeruler", Description: "Make line numbers display relatively"},
+ {Name: "--rmtrailingws", Description: "Automatically trim trailing whitespaces at ends of lines"},
+ {Name: "--ruler", Description: "Display line numbers"},
+ {Name: "--savecursor", Description: "Remember command history between closing and re-opening micro"},
+ {Name: "--saveundo", Description: "Remember undo state between closing and re-opening a file"},
+ {Name: "--scrollbar", Description: "Display a scroll bar"},
+ {Name: "--scrollmargin", Description: "Number of lines to scroll for one scroll event"},
+ {Name: "--smartpaste", Description: "Add leading whitespace when pasting multiple lines"},
+ {Name: "--softwrap", Description: "Wrap lines that are too long to fit on the screen"},
+ },
+ })
+}
diff --git a/commands/view/more.go b/commands/view/more.go
new file mode 100644
index 0000000..c6c46b1
--- /dev/null
+++ b/commands/view/more.go
@@ -0,0 +1,22 @@
+package view
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "more",
+ Description: "Opposite of less",
+ Options: []core.Option{
+ {Name: "-d", Description: "Do not pause after any line containing a ^L (form feed)"},
+ {Name: "-f", Description: "Count logical lines, rather than screen lines"},
+ {Name: "-p", Description: "Instead, clear the whole screen and then display the text"},
+ {Name: "-c", Description: "Squeeze multiple blank lines into one"},
+ {Name: "-u", Description: "Silently ignored as backwards compatibility"},
+ {Name: "-n", Description: "Specify the number of lines per screenful"},
+ {Name: "--help", Description: "Display help text"},
+ {Name: "-V", Description: "Display version information"},
+ },
+ })
+}
diff --git a/commands/view/nano.go b/commands/view/nano.go
new file mode 100644
index 0000000..4fcaaba
--- /dev/null
+++ b/commands/view/nano.go
@@ -0,0 +1,12 @@
+package view
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "nano",
+ Description: "Nano",
+ })
+}
diff --git a/commands/view/nvim.go b/commands/view/nvim.go
new file mode 100644
index 0000000..cc9df59
--- /dev/null
+++ b/commands/view/nvim.go
@@ -0,0 +1,43 @@
+package view
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "nvim",
+ Description: "Hyperextensible Vim-based text editor",
+ Options: []core.Option{
+ {Name: "--cmd", Description: "Execute before any config"},
+ {Name: "-c", Description: "Execute after config and first file"},
+ {Name: "-b", Description: "Binary mode"},
+ {Name: "-d", Description: "Diff mode"},
+ {Name: "-e", Description: "Ex mode"},
+ {Name: "-es", Description: "Silent (batch) mode"},
+ {Name: "-h", Description: "Print this help message"},
+ {Name: "-i", Description: "Use this shada file"},
+ {Name: "-m", Description: "Modifications (writing files) not allowed"},
+ {Name: "-M", Description: "Modifications in text not allowed"},
+ {Name: "-n", Description: "No swap file, use memory only"},
+ {Name: "-o", Description: "Open N windows (default: one per file)"},
+ {Name: "-O", Description: "Open N vertical windows (default: one per file)"},
+ {Name: "-p", Description: "Open N tab pages (default: one per file)"},
+ {Name: "-L", Description: "List swap files"},
+ {Name: "-r", Description: "Recover edit state for this file"},
+ {Name: "-R", Description: "Read-only mode"},
+ {Name: "-S", Description: "Source after loading the first file"},
+ {Name: "-s", Description: "Read Normal mode commands from "},
+ {Name: "-u", Description: "Use this config file"},
+ {Name: "-v", Description: "Print version information"},
+ {Name: "--api-info", Description: "Write msgpack-encoded API metadata to stdout"},
+ {Name: "--embed", Description: "Use stdin/stdout as a msgpack-rpc channel"},
+ {Name: "--headless", Description: "Don't start a user interface"},
+ {Name: "--listen", Description: "Serve RPC API from this address"},
+ {Name: "--noplugin", Description: "Don't load plugins"},
+ {Name: "--remote", Description: "Execute commands remotely on a server"},
+ {Name: "--server", Description: "Specify RPC server to send commands to"},
+ {Name: "--startuptime", Description: "Write startup timing messages to "},
+ },
+ })
+}
diff --git a/commands/view/rich.go b/commands/view/rich.go
new file mode 100644
index 0000000..5100aa4
--- /dev/null
+++ b/commands/view/rich.go
@@ -0,0 +1,54 @@
+package view
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "rich",
+ Description: "Defined by terminal, appearance may differ",
+ Options: []core.Option{
+ {Name: "-p", Description: "Print console markup. See https://rich.readthedocs.io/en/latest/markup.html"},
+ {Name: "-u", Description: "Display a horizontal rule"},
+ {Name: "-j", Description: "Display as JSON"},
+ {Name: "-m", Description: "Display as markdown"},
+ {Name: "--rst", Description: "Display restructured text"},
+ {Name: "--csv", Description: "Display CSV as a table"},
+ {Name: "--ipynb", Description: "Display Jupyter notebook"},
+ {Name: "--syntax", Description: "Syntax highlighting"},
+ {Name: "--inspect", Description: "Inspect a python object"},
+ {Name: "-h", Description: "Display first LINES of the file"},
+ {Name: "-t", Description: "Display last LINES of the file"},
+ {Name: "-l", Description: "Align to left"},
+ {Name: "-r", Description: "Align to right"},
+ {Name: "-c", Description: "Align to center"},
+ {Name: "-L", Description: "Justify text to left"},
+ {Name: "-R", Description: "Justify text to right"},
+ {Name: "-C", Description: "Justify text to center"},
+ {Name: "-F", Description: "Justify text to both left and right edges"},
+ {Name: "--soft", Description: "Enable soft wrapping of text"},
+ {Name: "-e", Description: "Expand to full width"},
+ {Name: "-w", Description: "Fit output to SIZE characters"},
+ {Name: "-W", Description: "Set maximum width to SIZE characters"},
+ {Name: "-s", Description: "Set text style to STYLE"},
+ {Name: "--rule-style", Description: "Set rule style to STYLE"},
+ {Name: "--rule-char", Description: "Use CHARACTER to generate a line with --rule"},
+ {Name: "-d", Description: "Padding around output. 1, 2 or 4 comma separated integers, e.g. 2,4"},
+ {Name: "-a", Description: "Set panel type to BOX"},
+ {Name: "-S", Description: "Set the panel style to STYLE"},
+ {Name: "--theme", Description: "Set syntax theme to THEME. See https://pygments.org/styles/"},
+ {Name: "-n", Description: "Enable line number in syntax"},
+ {Name: "-g", Description: "Enable indentation guides in syntax highlighting"},
+ {Name: "-y", Description: "Render hyperlinks in markdown"},
+ {Name: "--no-wrap", Description: "Don't word wrap syntax highlighted files"},
+ {Name: "--title", Description: "Set panel title to TEXT"},
+ {Name: "--caption", Description: "Set panel caption to TEXT"},
+ {Name: "--force-terminal", Description: "Force terminal output when not writing to a terminal"},
+ {Name: "-o", Description: "Write HTML to PATH"},
+ {Name: "--export-svg", Description: "Write SVG to PATH"},
+ {Name: "--pager", Description: "Display in an interactive pager"},
+ {Name: "-v", Description: "Print version and exit"},
+ },
+ })
+}
diff --git a/commands/view/subl.go b/commands/view/subl.go
new file mode 100644
index 0000000..3f961a2
--- /dev/null
+++ b/commands/view/subl.go
@@ -0,0 +1,25 @@
+package view
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "subl",
+ Description: "Sublime Text",
+ Options: []core.Option{
+ {Name: "--project", Description: "Load the given project"},
+ {Name: "--command", Description: "Run the given command"},
+ {Name: "-n", Description: "Open a new window"},
+ {Name: "-a", Description: "Add folders to the current window"},
+ {Name: "--launch-or-new-window", Description: "Only open a new window if the application is open"},
+ {Name: "-w", Description: "Wait for the files to be closed before returning"},
+ {Name: "-b", Description: "Don't activate the application"},
+ {Name: "-s", Description: "Keep the application activated after closing the file"},
+ {Name: "--safe-mode", Description: "Launch using a clean environment"},
+ {Name: "-h", Description: "Show a help message and exit"},
+ {Name: "-v", Description: "Show the version and exit"},
+ },
+ })
+}
diff --git a/commands/view/vi.go b/commands/view/vi.go
new file mode 100644
index 0000000..4fb9585
--- /dev/null
+++ b/commands/view/vi.go
@@ -0,0 +1,15 @@
+package view
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "vi",
+ Description: "Print help message for vi and exit",
+ Options: []core.Option{
+ {Name: "-h", Description: "Print help message for vi and exit"},
+ },
+ })
+}
diff --git a/commands/view/vim.go b/commands/view/vim.go
new file mode 100644
index 0000000..1e52b1f
--- /dev/null
+++ b/commands/view/vim.go
@@ -0,0 +1,51 @@
+package view
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "vim",
+ Description: "Vi IMproved, a programmer",
+ Options: []core.Option{
+ {Name: "-v", Description: "Vi mode (like 'vi')"},
+ {Name: "-e", Description: "Ex mode (like 'ex')"},
+ {Name: "-E", Description: "Improved Ex mode"},
+ {Name: "-s", Description: "Enable silent mode (when in ex mode), or Read Normal mode commands from file"},
+ {Name: "-d", Description: "Diff mode (like 'vimdiff')"},
+ {Name: "-y", Description: "Easy mode (like 'evim', modeless)"},
+ {Name: "-R", Description: "Readonly mode (like 'view')"},
+ {Name: "-Z", Description: "Restricted mode (like 'rvim')"},
+ {Name: "-m", Description: "Modifications (writing files) not allowed"},
+ {Name: "-M", Description: "Modifications in text not allowed"},
+ {Name: "-b", Description: "Binary mode"},
+ {Name: "-l", Description: "Lisp mode"},
+ {Name: "-C", Description: "Compatible with Vi: 'compatible'"},
+ {Name: "-N", Description: "Not fully Vi compatible: 'nocompatible'"},
+ {Name: "-V", Description: "Be verbose [level N] [log messages to fname]"},
+ {Name: "-D", Description: "Debugging mode"},
+ {Name: "-n", Description: "No swap file, use memory only"},
+ {Name: "-r", Description: "Same as -r"},
+ {Name: "-T", Description: "Set terminal type to "},
+ {Name: "--not-a-term", Description: "Skip warning for input/output not being a terminal"},
+ {Name: "--ttyfail", Description: "Exit if input or output is not a terminal"},
+ {Name: "-u", Description: "Use instead of any .vimrc"},
+ {Name: "--noplugin", Description: "Don't load plugin scripts"},
+ {Name: "-p", Description: "Open N tab pages (default: one for each file)"},
+ {Name: "-o", Description: "Open N windows (default: one for each file)"},
+ {Name: "-O", Description: "Like -o but split vertically"},
+ {Name: "--cmd", Description: "Execute before loading any vimrc file"},
+ {Name: "-c", Description: "Execute after loading the first file"},
+ {Name: "-S", Description: "Source file after loading the first file"},
+ {Name: "-w", Description: "Append all typed commands to file "},
+ {Name: "-W", Description: "Write all typed commands to file "},
+ {Name: "-x", Description: "Edit encrypted files"},
+ {Name: "--startuptime", Description: "Write startup timing messages to "},
+ {Name: "-i", Description: "Use instead of .viminfo"},
+ {Name: "--clean", Description: "'nocompatible', Vim defaults, no plugins, no viminfo"},
+ {Name: "-h", Description: "Print Help message and exit"},
+ {Name: "--version", Description: "Print version information and exit"},
+ },
+ })
+}
diff --git a/commands/view/vimr.go b/commands/view/vimr.go
new file mode 100644
index 0000000..33eabe1
--- /dev/null
+++ b/commands/view/vimr.go
@@ -0,0 +1,21 @@
+package view
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "vimr",
+ Description: "VimR - Neovim GUI for macOS in Swift",
+ Options: []core.Option{
+ {Name: "-h", Description: "Show help"},
+ {Name: "--dry-run", Description: "Just print the 'open' command"},
+ {Name: "--cwd", Description: "Set the working directory"},
+ {Name: "--line", Description: "Go to line"},
+ {Name: "--wait", Description: "This command line tool will exit when the corresponding UI window is closed"},
+ {Name: "--nvim", Description: "Open files in tabs in a new window"},
+ {Name: "-s", Description: "Open files in separate windows"},
+ },
+ })
+}
diff --git a/commands/view/xed.go b/commands/view/xed.go
new file mode 100644
index 0000000..b3ae438
--- /dev/null
+++ b/commands/view/xed.go
@@ -0,0 +1,19 @@
+package view
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "xed",
+ Description: "Xcode text editor invocation tool",
+ Options: []core.Option{
+ {Name: "--launch", Description: "Launches Xcode, opening a new empty unsaved file"},
+ {Name: "--create", Description: "Selects the given line in the last file opened"},
+ {Name: "--background", Description: "Opens Xcode without activating it; the process that invoked xed remains in front"},
+ {Name: "--help", Description: "Show help for xed"},
+ {Name: "--version", Description: "Prints the version number of xed"},
+ },
+ })
+}
diff --git a/commands/view/xxd.go b/commands/view/xxd.go
new file mode 100644
index 0000000..3208ef4
--- /dev/null
+++ b/commands/view/xxd.go
@@ -0,0 +1,30 @@
+package view
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "xxd",
+ Description: "Make a hexdump or do the reverse",
+ Options: []core.Option{
+ {Name: "-help", Description: "Show help for xxd"},
+ {Name: "-autoskip", Description: "Toggle autoskip: A single '*' replaces nul-lines. Default off"},
+ {Name: "-bits", Description: "Switch to bits (binary digits) dump, rather than hexdump"},
+ {Name: "-cols", Description: "Format octets per line. Default 16"},
+ {Name: "-capitalize", Description: "Capitalize variable names in C include file style, when using -i"},
+ {Name: "-EBCDIC", Description: "Change the character encoding in the righthand column from ASCII to EBCDIC"},
+ {Name: "-e", Description: "Switch to little-endian hexdump"},
+ {Name: "-groupsize", Description: "Separate the output of every bytes"},
+ {Name: "-include", Description: "Output in C include file style"},
+ {Name: "-len", Description: "Stop after writing octets"},
+ {Name: "-name", Description: "Override the variable name output when -i is used"},
+ {Name: "-o", Description: "Add to the displayed file position"},
+ {Name: "-postscript", Description: "Output in postscript continuous hexdump style"},
+ {Name: "-revert", Description: "Reverse operation: convert (or patch) hexdump into binary"},
+ {Name: "-seek", Description: "Use upper case hex letters. Default is lower case"},
+ {Name: "-version", Description: "Show version string"},
+ },
+ })
+}
diff --git a/commands/view/zed.go b/commands/view/zed.go
new file mode 100644
index 0000000..5936cdc
--- /dev/null
+++ b/commands/view/zed.go
@@ -0,0 +1,18 @@
+package view
+
+import (
+ "github.com/versenilvis/iris/commands/core"
+)
+
+func init() {
+ core.Register(&core.Spec{
+ Name: "zed",
+ Description: "A lightning-fast, collaborative code editor written in Rust",
+ Options: []core.Option{
+ {Name: "-h", Description: "Print help information"},
+ {Name: "-v", Description: "Print Zed's version and the app path"},
+ {Name: "-w", Description: "Wait for all of the given paths to be closed before exiting"},
+ {Name: "-b", Description: "Custom Zed.app path"},
+ },
+ })
+}
diff --git a/integration/icons.go b/integration/icons.go
index 76b4197..eae9270 100644
--- a/integration/icons.go
+++ b/integration/icons.go
@@ -4,38 +4,114 @@ import "strings"
var iconMap = map[string]string{
"git": "๓ฐข",
+ "gh": "๓ฐข",
"docker": "๏",
"docker-compose": "๏",
+ "podman": "๓ฐกจ",
"go": "๎ง",
"golang": "๎ง",
"python": "๎ผ",
"python3": "๎ผ",
"pip": "๎ผ",
+ "pip3": "๎ผ",
+ "pipx": "๎ผ",
+ "conda": "๓ฐ",
"node": "๎",
"npm": "๎",
"npx": "๎",
- "bun": "๎",
- "yarn": "๎",
+ "pnpm": "๎",
+ "pnpx": "๎",
+ "bun": "๓ฐฃ",
+ "bunx": "๓ฐฃ",
+ "yarn": "๎ง",
+ "deno": "๎",
"rust": "๎จ",
"cargo": "๎จ",
+ "rustup": "๎จ",
+ "rustc": "๎จ",
"java": "๎ธ",
- "mvn": "๎ธ",
- "gradle": "๎ธ",
+ "javac": "๎ธ",
+ "kotlin": "๎ด",
+ "mvn": "๎ด",
+ "gradle": "๎ด",
+ "ruby": "๎พ",
+ "gem": "๎พ",
+ "rails": "๎พ",
+ "php": "๎",
+ "composer": "๎",
+ "lua": "๎ ",
"nvim": "๎ซ",
"vim": "๎ซ",
"vi": "๎ซ",
+ "nano": "๓ฐท",
+ "emacs": "๎ฒ",
+ "code": "๓ฐจ",
+ "subl": "๎ช",
"cd": "๏",
"ls": "๏",
"eza": "๏",
+ "exa": "๏",
+ "lsd": "๏",
"tree": "๏",
"pwd": "๏",
"cat": "๏
",
+ "bat": "๏
",
"less": "๏
",
"more": "๏
",
- "bat": "๏
",
+ "head": "๏
",
+ "tail": "๏
",
"grep": "๏
",
+ "rg": "๏
",
"ripgrep": "๏
",
"find": "๏
",
+ "fd": "๏
",
+ "ssh": "๓ฐฃ",
+ "scp": "๓ฐฃ",
+ "sftp": "๓ฐฃ",
+ "rsync": "๓ฐฃ",
+ "kubectl": "๓ฑพ",
+ "helm": "๓ฑพ",
+ "k9s": "๓ฑพ",
+ "minikube": "๓ฑพ",
+ "terraform": "๓ฑข",
+ "ansible": "๓ฐฏ",
+ "aws": "๓ฐธ",
+ "gcloud": "๓ฑถ",
+ "tmux": "๓ฐ",
+ "screen": "๓ฐ",
+ "curl": "๓ฐ",
+ "wget": "๓ฐ",
+ "nginx": "๓ฐ",
+ "mysql": "๎",
+ "psql": "๎ฎ",
+ "mongosh": "๓ฑ",
+ "redis-cli": "๓ฐง",
+ "sqlite3": "๎",
+ "firebase": "๓ฐ ",
+ "supabase": "๓ฐฆ",
+ "vercel": "โฒ",
+ "netlify": "๓ฐ",
+ "hugo": "๓ฐ",
+ "next": "โฒ",
+ "vite": "๓ฑก",
+ "webpack": "๓ฐซ",
+ "eslint": "๓ฐฑบ",
+ "prettier": "๓ฐฌ",
+ "jest": "๓ฐ",
+ "pytest": "๎ผ",
+ "make": "๓ฐท",
+ "cmake": "๓ฐท",
+ "just": "๓ฐท",
+ "nmap": "๓ฐ",
+ "ffmpeg": "๓ฐผ",
+ "ollama": "๓ฐฉ",
+ "systemctl": "๓ฐ",
+ "htop": "๓ฐ",
+ "btop": "๓ฐ",
+ "top": "๓ฐ",
+ "tar": "๓ฐช",
+ "zip": "๓ฐช",
+ "unzip": "๓ฐช",
"alias": "๏",
"history": "๏",
"system": "๏",
diff --git a/justfile b/justfile
index 9233c41..eac29ec 100644
--- a/justfile
+++ b/justfile
@@ -60,6 +60,11 @@ analyze:
lint:
@golangci-lint run ./...
+# generate README docs for commands
+[group('dev')]
+gen-docs:
+ @go run scripts/cmds_docs.go
+
# test the update command (version check + comparison), no full iris session needed
# usage: just debug-update v1.99.0
[group('debug')]
diff --git a/scripts/cmds_docs.go b/scripts/cmds_docs.go
new file mode 100644
index 0000000..f38dccd
--- /dev/null
+++ b/scripts/cmds_docs.go
@@ -0,0 +1,202 @@
+package main
+
+import (
+ "encoding/json"
+ "fmt"
+ "os"
+ "path/filepath"
+ "regexp"
+ "sort"
+ "strings"
+)
+
+type SpecInfo struct {
+ Name string
+ Description string
+ File string
+}
+
+type Section struct {
+ Cat string
+ Title string
+ Specs []SpecInfo
+}
+
+type CategoryMeta struct {
+ ID string `json:"id"`
+ Title string `json:"title"`
+}
+
+type CategoriesConfig struct {
+ Categories []CategoryMeta `json:"categories"`
+}
+
+func main() {
+ commandsDir := "commands"
+ if len(os.Args) > 1 {
+ commandsDir = os.Args[1]
+ } else if _, err := os.Stat(commandsDir); os.IsNotExist(err) {
+ if _, err2 := os.Stat("../commands"); err2 == nil {
+ commandsDir = "../commands"
+ }
+ }
+
+ metaFile := filepath.Join(commandsDir, "categories.json")
+ metaData, err := os.ReadFile(metaFile)
+ if err != nil {
+ fmt.Fprintf(os.Stderr, "Error reading %s: %v\n", metaFile, err)
+ os.Exit(1)
+ }
+
+ var config CategoriesConfig
+ if unmarshalErr := json.Unmarshal(metaData, &config); unmarshalErr != nil {
+ fmt.Fprintf(os.Stderr, "Error parsing %s: %v\n", metaFile, unmarshalErr)
+ os.Exit(1)
+ }
+
+ orderMap := make(map[string]int)
+ titleMap := make(map[string]string)
+ for idx, cat := range config.Categories {
+ orderMap[cat.ID] = idx
+ titleMap[cat.ID] = cat.Title
+ }
+
+ entries, err := os.ReadDir(commandsDir)
+ if err != nil {
+ fmt.Fprintf(os.Stderr, "Error reading commands dir %s: %v\n", commandsDir, err)
+ os.Exit(1)
+ }
+
+ nameRe := regexp.MustCompile(`Name:\s*["'` + "`" + `]([^"'` + "`" + `]+)["'` + "`" + `]`)
+ descRe := regexp.MustCompile(`Description:\s*["'` + "`" + `]([^"'` + "`" + `]*)["'` + "`" + `]`)
+
+ var sections []Section
+ totalCommands := 0
+
+ for _, entry := range entries {
+ if !entry.IsDir() {
+ continue
+ }
+ cat := entry.Name()
+ if cat == "core" || strings.HasPrefix(cat, ".") || strings.HasPrefix(cat, "_") {
+ continue
+ }
+
+ title, ok := titleMap[cat]
+ if !ok {
+ if len(cat) <= 3 {
+ title = strings.ToUpper(cat) + " Tools"
+ } else {
+ title = strings.ToUpper(cat[:1]) + cat[1:] + " Tools"
+ }
+ }
+
+ dirPath := filepath.Join(commandsDir, cat)
+ files, readDirErr := os.ReadDir(dirPath)
+ if readDirErr != nil {
+ continue
+ }
+
+ var specs []SpecInfo
+ seen := make(map[string]bool)
+
+ for _, f := range files {
+ if f.IsDir() || !strings.HasSuffix(f.Name(), ".go") || strings.HasSuffix(f.Name(), "_test.go") {
+ continue
+ }
+ content, readFileErr := os.ReadFile(filepath.Join(dirPath, f.Name()))
+ if readFileErr != nil {
+ continue
+ }
+
+ blocks := strings.Split(string(content), "core.Register(")
+ for i := 1; i < len(blocks); i++ {
+ block := blocks[i]
+ nameMatch := nameRe.FindStringSubmatch(block)
+ if nameMatch == nil {
+ continue
+ }
+ name := nameMatch[1]
+ if seen[name] {
+ continue
+ }
+ seen[name] = true
+
+ desc := "(no description)"
+ descMatch := descRe.FindStringSubmatch(block)
+ if descMatch != nil && descMatch[1] != "" {
+ desc = descMatch[1]
+ }
+ desc = strings.ReplaceAll(desc, "\n", " ")
+ desc = strings.ReplaceAll(desc, "|", "\\|")
+
+ specs = append(specs, SpecInfo{
+ Name: name,
+ Description: desc,
+ File: f.Name(),
+ })
+ }
+ }
+
+ if len(specs) == 0 {
+ continue
+ }
+
+ sort.Slice(specs, func(i, j int) bool {
+ return strings.Compare(specs[i].Name, specs[j].Name) < 0
+ })
+
+ totalCommands += len(specs)
+ sections = append(sections, Section{
+ Cat: cat,
+ Title: title,
+ Specs: specs,
+ })
+ }
+
+ sort.Slice(sections, func(i, j int) bool {
+ idxI, okI := orderMap[sections[i].Cat]
+ idxJ, okJ := orderMap[sections[j].Cat]
+ if okI && okJ {
+ return idxI < idxJ
+ }
+ if okI {
+ return true
+ }
+ if okJ {
+ return false
+ }
+ return strings.Compare(sections[i].Cat, sections[j].Cat) < 0
+ })
+
+ var sb strings.Builder
+ sb.WriteString("# Iris commands\n\n")
+ sb.WriteString("This directory contains all modular CLI command specifications and autocompletion definitions supported by **Iris**. Every command is defined as a `core.Spec` registered via package `init()` functions and grouped into category subdirectories.\n\n")
+ sb.WriteString("The **[`core/`](./core)** subdirectory is the primary engine package. It implements the underlying command registry (`core.Registry`), data structures (`Spec`, `Arg`, `Flag`), dynamic generators, and autocompletion matching logic. The top-level **[`all.go`](./all.go)** file anonymously imports all category subpackages to trigger their initialization and register all available commands at startup.\n\n")
+ sb.WriteString("## Overview\n\n")
+ fmt.Fprintf(&sb, "Currently, Iris natively supports **%d** top-level CLI commands across **%d** categories:\n\n", totalCommands, len(sections))
+
+ for _, sec := range sections {
+ fmt.Fprintf(&sb, "- [%s (`%s/`)](#%s): **%d** commands\n", sec.Title, sec.Cat, sec.Cat, len(sec.Specs))
+ }
+ sb.WriteString("\n---\n\n")
+
+ for _, sec := range sections {
+ fmt.Fprintf(&sb, "\n", sec.Cat)
+ fmt.Fprintf(&sb, "## %s (`%s/`)\n\n", sec.Title, sec.Cat)
+ sb.WriteString("| Command | Description | Source File |\n")
+ sb.WriteString("| :--- | :--- | :--- |\n")
+ for _, spec := range sec.Specs {
+ fmt.Fprintf(&sb, "| **`%s`** | %s | [`%s`](./%s/%s) |\n", spec.Name, spec.Description, spec.File, sec.Cat, spec.File)
+ }
+ sb.WriteString("\n")
+ }
+
+ outputFile := filepath.Join(commandsDir, "README.md")
+ if writeErr := os.WriteFile(outputFile, []byte(sb.String()), 0644); writeErr != nil {
+ fmt.Fprintf(os.Stderr, "Error writing %s: %v\n", outputFile, writeErr)
+ os.Exit(1)
+ }
+
+ fmt.Printf("Generated %s with %d commands across %d categories.\n", outputFile, totalCommands, len(sections))
+}