From 2ef3c9081904885111d1880fb41df50c6d784fd7 Mon Sep 17 00:00:00 2001 From: VERSE Date: Sat, 4 Jul 2026 22:08:36 +0700 Subject: [PATCH] feat(commands): more commands (#30) - I wrote a scripts to copy and generate all commands missing in iris from fig repo: https://github.com/withfig/autocomplete - Add a new script to generate commands docs about which commands currently are inside commands folder 377d4aac663590e504fe39a92eb4dac4cbd333b2 - Add more icons e64d4e70a1db61e62053460a882e093bd6373ab1 --- _typos.toml | 9 + commands/README.md | 678 +++++++++++++++++++++++++ commands/categories.json | 18 + commands/cc/bazel.go | 48 ++ commands/cc/cmake.go | 83 +++ commands/cc/premake.go | 44 ++ commands/cc/swift.go | 106 ++++ commands/cc/typst.go | 42 ++ commands/cc/xcode_select.go | 20 + commands/cc/xcodebuild.go | 54 ++ commands/cc/xcodeproj.go | 22 + commands/cc/xcrun.go | 38 ++ commands/cc/zig.go | 86 ++++ commands/fs/broot.go | 44 ++ commands/fs/df.go | 22 + commands/fs/dust.go | 31 ++ commands/fs/exa.go | 12 + commands/fs/eza.go | 54 ++ commands/fs/find.go | 18 + commands/fs/fold.go | 15 + commands/fs/lsd.go | 43 ++ commands/fs/paper.go | 75 +++ commands/fs/rclone.go | 106 ++++ commands/fs/readlink.go | 15 + commands/fs/rmdir.go | 15 + commands/fs/stow.go | 18 + commands/fs/tar.go | 87 ++++ commands/fs/trash.go | 19 + commands/fs/tree.go | 54 ++ commands/fs/unzip.go | 15 + commands/fs/zip.go | 16 + commands/git/ghq.go | 35 ++ commands/git/git_cliff.go | 35 ++ commands/git/git_flow.go | 29 ++ commands/git/git_profile.go | 19 + commands/git/git_quick_stats.go | 33 ++ commands/git/github.go | 21 + commands/git/svn.go | 35 ++ commands/golang/goctl.go | 96 ++++ commands/golang/goreleaser.go | 57 +++ commands/js/asar.go | 26 + commands/js/astro.go | 41 ++ commands/js/babel.go | 46 ++ commands/js/blitz.go | 49 ++ commands/js/browser_sync.go | 61 +++ commands/js/build_storybook.go | 17 + commands/js/cordova.go | 58 +++ commands/js/create_completion_spec.go | 19 + commands/js/create_next_app.go | 19 + commands/js/create_nx_workspace.go | 22 + commands/js/create_react_app.go | 19 + commands/js/create_react_native_app.go | 20 + commands/js/create_redwood_app.go | 23 + commands/js/create_remix.go | 16 + commands/js/create_t3_app.go | 22 + commands/js/create_video.go | 12 + commands/js/create_vite.go | 12 + commands/js/create_web3_frontend.go | 18 + commands/js/deno.go | 80 +++ commands/js/dotenv.go | 18 + commands/js/electron.go | 18 + commands/js/elm.go | 32 ++ commands/js/elm_format.go | 20 + commands/js/elm_json.go | 31 ++ commands/js/elm_review.go | 40 ++ commands/js/esbuild.go | 54 ++ commands/js/eslint.go | 49 ++ commands/js/expo.go | 54 ++ commands/js/expo_cli.go | 54 ++ commands/js/ganache_cli.go | 34 ++ commands/js/gatsby.go | 37 ++ commands/js/hardhat.go | 40 ++ commands/js/ionic.go | 91 ++++ commands/js/jest.go | 54 ++ commands/js/lerna.go | 66 +++ commands/js/meteor.go | 78 +++ commands/js/ncu.go | 39 ++ commands/js/nest.go | 50 ++ commands/js/next.go | 31 ++ commands/js/ng.go | 31 ++ commands/js/node.go | 45 ++ commands/js/npx.go | 22 + commands/js/nuxi.go | 33 ++ commands/js/nuxt.go | 22 + commands/js/nx.go | 74 +++ commands/js/oxlint.go | 30 ++ commands/js/playwright.go | 25 + commands/js/pnpx.go | 21 + commands/js/prettier.go | 53 ++ commands/js/quasar.go | 44 ++ commands/js/react_native.go | 54 ++ commands/js/redwood.go | 75 +++ commands/js/remix.go | 24 + commands/js/remotion.go | 96 ++++ commands/js/rollup.go | 54 ++ commands/js/rome.go | 48 ++ commands/js/rush.go | 53 ++ commands/js/sequelize.go | 36 ++ commands/js/serve.go | 30 ++ commands/js/shadcn_ui.go | 25 + commands/js/start_storybook.go | 30 ++ commands/js/stencil.go | 45 ++ commands/js/swagger_typescript_api.go | 47 ++ commands/js/swc.go | 33 ++ commands/js/truffle.go | 76 +++ commands/js/ts_node.go | 40 ++ commands/js/tsc.go | 54 ++ commands/js/tsx.go | 22 + commands/js/turbo.go | 48 ++ commands/js/typeorm.go | 45 ++ commands/js/vite.go | 41 ++ commands/js/vr.go | 22 + commands/js/vsce.go | 50 ++ commands/js/vue.go | 62 +++ commands/js/watchman.go | 58 +++ commands/js/webpack.go | 66 +++ commands/js/yalc.go | 42 ++ commands/jvm/clojure.go | 37 ++ commands/jvm/dart.go | 106 ++++ commands/jvm/flutter.go | 101 ++++ commands/jvm/fvm.go | 44 ++ commands/jvm/gradle.go | 58 +++ commands/jvm/jenv.go | 52 ++ commands/jvm/jmeter.go | 41 ++ commands/jvm/kdoctor.go | 19 + commands/jvm/keytool.go | 54 ++ commands/jvm/mvn.go | 53 ++ commands/jvm/spring.go | 44 ++ commands/ops/amplify.go | 42 ++ commands/ops/ampx.go | 56 ++ commands/ops/ansible.go | 48 ++ commands/ops/ansible_config.go | 33 ++ commands/ops/ansible_doc.go | 25 + commands/ops/ansible_galaxy.go | 66 +++ commands/ops/ansible_lint.go | 34 ++ commands/ops/ansible_playbook.go | 50 ++ commands/ops/appwrite.go | 94 ++++ commands/ops/arch.go | 21 + commands/ops/arduino_cli.go | 99 ++++ commands/ops/argo.go | 87 ++++ commands/ops/asdf.go | 20 + commands/ops/atlas.go | 106 ++++ commands/ops/aws.go | 67 +++ commands/ops/aws_vault.go | 25 + commands/ops/bit.go | 106 ++++ commands/ops/bosh.go | 80 +++ commands/ops/capacitor.go | 26 + commands/ops/cdk.go | 33 ++ commands/ops/cf.go | 102 ++++ commands/ops/checkov.go | 46 ++ commands/ops/circleci.go | 85 ++++ commands/ops/cloudflared.go | 59 +++ commands/ops/coda.go | 36 ++ commands/ops/command.go | 15 + commands/ops/copilot.go | 78 +++ commands/ops/cosign.go | 84 +++ commands/ops/dapr.go | 78 +++ commands/ops/datree.go | 34 ++ commands/ops/deployctl.go | 26 + commands/ops/direnv.go | 32 ++ commands/ops/doctl.go | 72 +++ commands/ops/doppler.go | 99 ++++ commands/ops/eas.go | 106 ++++ commands/ops/fastly.go | 106 ++++ commands/ops/firebase.go | 106 ++++ commands/ops/flyctl.go | 106 ++++ commands/ops/fnm.go | 40 ++ commands/ops/gcloud.go | 64 +++ commands/ops/gh.go | 106 ++++ commands/ops/gpg.go | 54 ++ commands/ops/hasura.go | 87 ++++ commands/ops/helm.go | 104 ++++ commands/ops/helmfile.go | 42 ++ commands/ops/hugo.go | 94 ++++ commands/ops/k3d.go | 99 ++++ commands/ops/k6.go | 106 ++++ commands/ops/k9s.go | 43 ++ commands/ops/kind.go | 56 ++ commands/ops/knex.go | 42 ++ commands/ops/kubectx.go | 18 + commands/ops/kubens.go | 16 + commands/ops/limactl.go | 38 ++ commands/ops/locust.go | 40 ++ commands/ops/lpass.go | 89 ++++ commands/ops/minikube.go | 106 ++++ commands/ops/mongocli.go | 106 ++++ commands/ops/mongoimport.go | 41 ++ commands/ops/mongosh.go | 25 + commands/ops/multipass.go | 66 +++ commands/ops/mysql.go | 54 ++ commands/ops/netlify.go | 57 +++ commands/ops/newman.go | 49 ++ commands/ops/nginx.go | 23 + commands/ops/ngrok.go | 31 ++ commands/ops/nvm.go | 42 ++ commands/ops/oci.go | 70 +++ commands/ops/okteto.go | 85 ++++ commands/ops/op.go | 88 ++++ commands/ops/opa.go | 75 +++ commands/ops/osqueryi.go | 54 ++ commands/ops/pass.go | 43 ++ commands/ops/pg_dump.go | 54 ++ commands/ops/pgcli.go | 32 ++ commands/ops/pm2.go | 102 ++++ commands/ops/pod.go | 57 +++ commands/ops/podman.go | 92 ++++ commands/ops/pscale.go | 79 +++ commands/ops/psql.go | 17 + commands/ops/pulumi.go | 105 ++++ commands/ops/qodana.go | 36 ++ commands/ops/railway.go | 59 +++ commands/ops/rbenv.go | 30 ++ commands/ops/robot.go | 54 ++ commands/ops/serverless.go | 60 +++ commands/ops/sfdx.go | 106 ++++ commands/ops/sftp.go | 31 ++ commands/ops/space.go | 45 ++ commands/ops/sqlite3.go | 42 ++ commands/ops/src.go | 45 ++ commands/ops/ssh_keygen.go | 53 ++ commands/ops/stripe.go | 102 ++++ commands/ops/supabase.go | 86 ++++ commands/ops/surreal.go | 45 ++ commands/ops/tailscale.go | 70 +++ commands/ops/terraform.go | 39 ++ commands/ops/terragrunt.go | 50 ++ commands/ops/tfenv.go | 26 + commands/ops/tfsec.go | 41 ++ commands/ops/tkn.go | 96 ++++ commands/ops/trivy.go | 62 +++ commands/ops/tsuru.go | 84 +++ commands/ops/vault.go | 84 +++ commands/ops/vela.go | 93 ++++ commands/ops/vercel.go | 97 ++++ commands/ops/volta.go | 42 ++ commands/ops/watson.go | 67 +++ commands/ops/whois.go | 31 ++ commands/ops/wrangler.go | 58 +++ commands/ops/xc.go | 19 + commands/ops/xcodes.go | 37 ++ commands/pkginstaller/dpkg.go | 63 +++ commands/pkginstaller/pkgutil.go | 49 ++ commands/python/black.go | 38 ++ commands/python/conda.go | 78 +++ commands/python/django_admin.go | 57 +++ commands/python/googler.go | 43 ++ commands/python/jupyter.go | 50 ++ commands/python/mamba.go | 83 +++ commands/python/mypy.go | 50 ++ commands/python/pipenv.go | 69 +++ commands/python/pipx.go | 49 ++ commands/python/pre_commit.go | 51 ++ commands/python/pyenv.go | 35 ++ commands/python/pytest.go | 54 ++ commands/python/ruff.go | 53 ++ commands/python/sqlfluff.go | 48 ++ commands/python/sqlmesh.go | 72 +++ commands/python/streamlit.go | 30 ++ commands/python/youtube_dl.go | 54 ++ commands/runner/ant.go | 40 ++ commands/runner/composer.go | 29 ++ commands/runner/dbt.go | 82 +++ commands/runner/drush.go | 12 + commands/runner/elixir.go | 38 ++ commands/runner/gem.go | 106 ++++ commands/runner/hexo.go | 63 +++ commands/runner/laravel.go | 33 ++ commands/runner/magento.go | 12 + commands/runner/mix.go | 39 ++ commands/runner/php.go | 12 + commands/runner/phpunit.go | 52 ++ commands/runner/phpunit_watcher.go | 15 + commands/runner/rails.go | 54 ++ commands/runner/rake.go | 26 + commands/runner/rubocop.go | 52 ++ commands/runner/ruby.go | 27 + commands/runner/rvm.go | 37 ++ commands/runner/sidekiq.go | 24 + commands/runner/symfony.go | 72 +++ commands/runner/valet.go | 82 +++ commands/runner/vapor.go | 35 ++ commands/rust/dprint.go | 31 ++ commands/rust/pijul.go | 77 +++ commands/rust/rustup.go | 70 +++ commands/rust/taplo.go | 47 ++ commands/rust/tokei.go | 27 + commands/rust/trunk.go | 55 ++ commands/rust/wasm_bindgen.go | 36 ++ commands/rust/wasm_pack.go | 23 + commands/rust/zellij.go | 54 ++ commands/sys/adb.go | 84 +++ commands/sys/ag.go | 54 ++ commands/sys/airflow.go | 106 ++++ commands/sys/aliases.go | 43 ++ commands/sys/asciinema.go | 38 ++ commands/sys/asr.go | 43 ++ commands/sys/atuin.go | 64 +++ commands/sys/basename.go | 16 + commands/sys/bc.go | 21 + commands/sys/btop.go | 21 + commands/sys/bundle.go | 72 +++ commands/sys/cal.go | 17 + commands/sys/cci.go | 91 ++++ commands/sys/cdk8s.go | 34 ++ commands/sys/chezmoi.go | 99 ++++ commands/sys/chsh.go | 18 + commands/sys/codesign.go | 20 + commands/sys/croc.go | 45 ++ commands/sys/crontab.go | 18 + commands/sys/date.go | 23 + commands/sys/dateseq.go | 18 + commands/sys/dcli.go | 59 +++ commands/sys/dd.go | 12 + commands/sys/ddev.go | 100 ++++ commands/sys/defaults.go | 28 + commands/sys/degit.go | 19 + commands/sys/deta.go | 60 +++ commands/sys/dirname.go | 12 + commands/sys/do_release_upgrade.go | 21 + commands/sys/dog.go | 40 ++ commands/sys/dotnet.go | 19 + commands/sys/dscacheutil.go | 25 + commands/sys/dscl.go | 38 ++ commands/sys/dtm.go | 52 ++ commands/sys/echo.go | 17 + commands/sys/eleventy.go | 12 + commands/sys/exec.go | 12 + commands/sys/fastlane.go | 55 ++ commands/sys/fdisk.go | 29 ++ commands/sys/ffmpeg.go | 54 ++ commands/sys/firefox.go | 49 ++ commands/sys/fisher.go | 24 + commands/sys/fmt.go | 15 + commands/sys/forc.go | 67 +++ commands/sys/forge.go | 53 ++ commands/sys/fzf.go | 54 ++ commands/sys/fzf_tmux.go | 54 ++ commands/sys/gltfjsx.go | 23 + commands/sys/goto.go | 23 + commands/sys/gum.go | 73 +++ commands/sys/herd.go | 41 ++ commands/sys/hop.go | 40 ++ commands/sys/hostname.go | 17 + commands/sys/htop.go | 26 + commands/sys/http.go | 36 ++ commands/sys/hyper.go | 23 + commands/sys/hyperfine.go | 32 ++ commands/sys/ibus.go | 26 + commands/sys/id.go | 20 + commands/sys/ignite_cli.go | 27 + commands/sys/install.go | 20 + commands/sys/join.go | 18 + commands/sys/julia.go | 51 ++ commands/sys/kafkactl.go | 83 +++ commands/sys/kamal.go | 48 ++ commands/sys/kitty.go | 57 +++ commands/sys/klist.go | 22 + commands/sys/kool.go | 52 ++ commands/sys/launchctl.go | 88 ++++ commands/sys/leaf.go | 41 ++ commands/sys/lima.go | 15 + commands/sys/login.go | 18 + commands/sys/lsblk.go | 39 ++ commands/sys/lsof.go | 45 ++ commands/sys/man.go | 34 ++ commands/sys/meroxa.go | 85 ++++ commands/sys/mkdocs.go | 39 ++ commands/sys/mkfifo.go | 15 + commands/sys/mkinitcpio.go | 40 ++ commands/sys/mknod.go | 19 + commands/sys/mosh.go | 25 + commands/sys/mount.go | 48 ++ commands/sys/ncal.go | 27 + commands/sys/neofetch.go | 54 ++ commands/sys/networkquality.go | 20 + commands/sys/networksetup.go | 95 ++++ commands/sys/nextflow.go | 73 +++ commands/sys/nhost.go | 27 + commands/sys/nmap.go | 35 ++ commands/sys/nrm.go | 19 + commands/sys/ns.go | 52 ++ commands/sys/nylas.go | 106 ++++ commands/sys/oh_my_posh.go | 47 ++ commands/sys/okta.go | 41 ++ commands/sys/ollama.go | 32 ++ commands/sys/omz.go | 31 ++ commands/sys/pac.go | 106 ++++ commands/sys/passwd.go | 17 + commands/sys/pathchk.go | 15 + commands/sys/pdfunite.go | 16 + commands/sys/pkg_config.go | 34 ++ commands/sys/pmset.go | 42 ++ commands/sys/pocketbase.go | 35 ++ commands/sys/prisma.go | 61 +++ commands/sys/pro.go | 29 ++ commands/sys/pry.go | 30 ++ commands/sys/publish.go | 21 + commands/sys/pwd.go | 16 + commands/sys/rancher.go | 78 +++ commands/sys/repeat.go | 12 + commands/sys/rscript.go | 27 + commands/sys/sam.go | 73 +++ commands/sys/sanity.go | 94 ++++ commands/sys/screen.go | 46 ++ commands/sys/shell_config.go | 30 ++ commands/sys/shortcuts.go | 25 + commands/sys/simctl.go | 95 ++++ commands/sys/source.go | 12 + commands/sys/speedtest_cli.go | 28 + commands/sys/spotify.go | 44 ++ commands/sys/st2.go | 64 +++ commands/sys/stack.go | 66 +++ commands/sys/starkli.go | 92 ++++ commands/sys/su.go | 15 + commands/sys/sudo.go | 17 + commands/sys/sysctl.go | 25 + commands/sys/systemctl.go | 106 ++++ commands/sys/tac.go | 19 + commands/sys/tailcall.go | 23 + commands/sys/tailwindcss.go | 29 ++ commands/sys/time.go | 12 + commands/sys/tldr.go | 23 + commands/sys/tmux.go | 106 ++++ commands/sys/tmuxinator.go | 43 ++ commands/sys/top.go | 19 + commands/sys/traceroute.go | 25 + commands/sys/trap.go | 16 + commands/sys/trex.go | 36 ++ commands/sys/tsh.go | 57 +++ commands/sys/tuist.go | 40 ++ commands/sys/twilio.go | 57 +++ commands/sys/uname.go | 21 + commands/sys/visudo.go | 23 + commands/sys/vultr_cli.go | 70 +++ commands/sys/wezterm.go | 60 +++ commands/sys/where.go | 20 + commands/sys/whereis.go | 22 + commands/sys/which.go | 16 + commands/sys/who.go | 29 ++ commands/sys/wing.go | 25 + commands/sys/wp.go | 106 ++++ commands/sys/wrk.go | 23 + commands/sys/wscat.go | 35 ++ commands/sys/yank.go | 20 + commands/sys/ykman.go | 105 ++++ commands/sys/zapier.go | 70 +++ commands/text/diff.go | 54 ++ commands/text/dos2unix.go | 43 ++ commands/text/iconv.go | 23 + commands/text/jq.go | 26 + commands/text/pandoc.go | 54 ++ commands/text/seq.go | 17 + commands/text/sha1sum.go | 26 + commands/text/shasum.go | 28 + commands/text/shred.go | 23 + commands/text/split.go | 19 + commands/text/truncate.go | 20 + commands/text/typos.go | 42 ++ commands/text/unix2dos.go | 12 + commands/text/vale.go | 29 ++ commands/view/bat.go | 42 ++ commands/view/code.go | 38 ++ commands/view/cot.go | 12 + commands/view/emacs.go | 12 + commands/view/glow.go | 28 + commands/view/idea.go | 28 + commands/view/lvim.go | 43 ++ commands/view/micro.go | 61 +++ commands/view/more.go | 22 + commands/view/nano.go | 12 + commands/view/nvim.go | 43 ++ commands/view/rich.go | 54 ++ commands/view/subl.go | 25 + commands/view/vi.go | 15 + commands/view/vim.go | 51 ++ commands/view/vimr.go | 21 + commands/view/xed.go | 19 + commands/view/xxd.go | 30 ++ commands/view/zed.go | 18 + integration/icons.go | 86 +++- justfile | 5 + scripts/cmds_docs.go | 202 ++++++++ 482 files changed, 22971 insertions(+), 5 deletions(-) create mode 100644 commands/README.md create mode 100644 commands/categories.json create mode 100644 commands/cc/bazel.go create mode 100644 commands/cc/cmake.go create mode 100644 commands/cc/premake.go create mode 100644 commands/cc/swift.go create mode 100644 commands/cc/typst.go create mode 100644 commands/cc/xcode_select.go create mode 100644 commands/cc/xcodebuild.go create mode 100644 commands/cc/xcodeproj.go create mode 100644 commands/cc/xcrun.go create mode 100644 commands/cc/zig.go create mode 100644 commands/fs/broot.go create mode 100644 commands/fs/df.go create mode 100644 commands/fs/dust.go create mode 100644 commands/fs/exa.go create mode 100644 commands/fs/eza.go create mode 100644 commands/fs/find.go create mode 100644 commands/fs/fold.go create mode 100644 commands/fs/lsd.go create mode 100644 commands/fs/paper.go create mode 100644 commands/fs/rclone.go create mode 100644 commands/fs/readlink.go create mode 100644 commands/fs/rmdir.go create mode 100644 commands/fs/stow.go create mode 100644 commands/fs/tar.go create mode 100644 commands/fs/trash.go create mode 100644 commands/fs/tree.go create mode 100644 commands/fs/unzip.go create mode 100644 commands/fs/zip.go create mode 100644 commands/git/ghq.go create mode 100644 commands/git/git_cliff.go create mode 100644 commands/git/git_flow.go create mode 100644 commands/git/git_profile.go create mode 100644 commands/git/git_quick_stats.go create mode 100644 commands/git/github.go create mode 100644 commands/git/svn.go create mode 100644 commands/golang/goctl.go create mode 100644 commands/golang/goreleaser.go create mode 100644 commands/js/asar.go create mode 100644 commands/js/astro.go create mode 100644 commands/js/babel.go create mode 100644 commands/js/blitz.go create mode 100644 commands/js/browser_sync.go create mode 100644 commands/js/build_storybook.go create mode 100644 commands/js/cordova.go create mode 100644 commands/js/create_completion_spec.go create mode 100644 commands/js/create_next_app.go create mode 100644 commands/js/create_nx_workspace.go create mode 100644 commands/js/create_react_app.go create mode 100644 commands/js/create_react_native_app.go create mode 100644 commands/js/create_redwood_app.go create mode 100644 commands/js/create_remix.go create mode 100644 commands/js/create_t3_app.go create mode 100644 commands/js/create_video.go create mode 100644 commands/js/create_vite.go create mode 100644 commands/js/create_web3_frontend.go create mode 100644 commands/js/deno.go create mode 100644 commands/js/dotenv.go create mode 100644 commands/js/electron.go create mode 100644 commands/js/elm.go create mode 100644 commands/js/elm_format.go create mode 100644 commands/js/elm_json.go create mode 100644 commands/js/elm_review.go create mode 100644 commands/js/esbuild.go create mode 100644 commands/js/eslint.go create mode 100644 commands/js/expo.go create mode 100644 commands/js/expo_cli.go create mode 100644 commands/js/ganache_cli.go create mode 100644 commands/js/gatsby.go create mode 100644 commands/js/hardhat.go create mode 100644 commands/js/ionic.go create mode 100644 commands/js/jest.go create mode 100644 commands/js/lerna.go create mode 100644 commands/js/meteor.go create mode 100644 commands/js/ncu.go create mode 100644 commands/js/nest.go create mode 100644 commands/js/next.go create mode 100644 commands/js/ng.go create mode 100644 commands/js/node.go create mode 100644 commands/js/npx.go create mode 100644 commands/js/nuxi.go create mode 100644 commands/js/nuxt.go create mode 100644 commands/js/nx.go create mode 100644 commands/js/oxlint.go create mode 100644 commands/js/playwright.go create mode 100644 commands/js/pnpx.go create mode 100644 commands/js/prettier.go create mode 100644 commands/js/quasar.go create mode 100644 commands/js/react_native.go create mode 100644 commands/js/redwood.go create mode 100644 commands/js/remix.go create mode 100644 commands/js/remotion.go create mode 100644 commands/js/rollup.go create mode 100644 commands/js/rome.go create mode 100644 commands/js/rush.go create mode 100644 commands/js/sequelize.go create mode 100644 commands/js/serve.go create mode 100644 commands/js/shadcn_ui.go create mode 100644 commands/js/start_storybook.go create mode 100644 commands/js/stencil.go create mode 100644 commands/js/swagger_typescript_api.go create mode 100644 commands/js/swc.go create mode 100644 commands/js/truffle.go create mode 100644 commands/js/ts_node.go create mode 100644 commands/js/tsc.go create mode 100644 commands/js/tsx.go create mode 100644 commands/js/turbo.go create mode 100644 commands/js/typeorm.go create mode 100644 commands/js/vite.go create mode 100644 commands/js/vr.go create mode 100644 commands/js/vsce.go create mode 100644 commands/js/vue.go create mode 100644 commands/js/watchman.go create mode 100644 commands/js/webpack.go create mode 100644 commands/js/yalc.go create mode 100644 commands/jvm/clojure.go create mode 100644 commands/jvm/dart.go create mode 100644 commands/jvm/flutter.go create mode 100644 commands/jvm/fvm.go create mode 100644 commands/jvm/gradle.go create mode 100644 commands/jvm/jenv.go create mode 100644 commands/jvm/jmeter.go create mode 100644 commands/jvm/kdoctor.go create mode 100644 commands/jvm/keytool.go create mode 100644 commands/jvm/mvn.go create mode 100644 commands/jvm/spring.go create mode 100644 commands/ops/amplify.go create mode 100644 commands/ops/ampx.go create mode 100644 commands/ops/ansible.go create mode 100644 commands/ops/ansible_config.go create mode 100644 commands/ops/ansible_doc.go create mode 100644 commands/ops/ansible_galaxy.go create mode 100644 commands/ops/ansible_lint.go create mode 100644 commands/ops/ansible_playbook.go create mode 100644 commands/ops/appwrite.go create mode 100644 commands/ops/arch.go create mode 100644 commands/ops/arduino_cli.go create mode 100644 commands/ops/argo.go create mode 100644 commands/ops/asdf.go create mode 100644 commands/ops/atlas.go create mode 100644 commands/ops/aws.go create mode 100644 commands/ops/aws_vault.go create mode 100644 commands/ops/bit.go create mode 100644 commands/ops/bosh.go create mode 100644 commands/ops/capacitor.go create mode 100644 commands/ops/cdk.go create mode 100644 commands/ops/cf.go create mode 100644 commands/ops/checkov.go create mode 100644 commands/ops/circleci.go create mode 100644 commands/ops/cloudflared.go create mode 100644 commands/ops/coda.go create mode 100644 commands/ops/command.go create mode 100644 commands/ops/copilot.go create mode 100644 commands/ops/cosign.go create mode 100644 commands/ops/dapr.go create mode 100644 commands/ops/datree.go create mode 100644 commands/ops/deployctl.go create mode 100644 commands/ops/direnv.go create mode 100644 commands/ops/doctl.go create mode 100644 commands/ops/doppler.go create mode 100644 commands/ops/eas.go create mode 100644 commands/ops/fastly.go create mode 100644 commands/ops/firebase.go create mode 100644 commands/ops/flyctl.go create mode 100644 commands/ops/fnm.go create mode 100644 commands/ops/gcloud.go create mode 100644 commands/ops/gh.go create mode 100644 commands/ops/gpg.go create mode 100644 commands/ops/hasura.go create mode 100644 commands/ops/helm.go create mode 100644 commands/ops/helmfile.go create mode 100644 commands/ops/hugo.go create mode 100644 commands/ops/k3d.go create mode 100644 commands/ops/k6.go create mode 100644 commands/ops/k9s.go create mode 100644 commands/ops/kind.go create mode 100644 commands/ops/knex.go create mode 100644 commands/ops/kubectx.go create mode 100644 commands/ops/kubens.go create mode 100644 commands/ops/limactl.go create mode 100644 commands/ops/locust.go create mode 100644 commands/ops/lpass.go create mode 100644 commands/ops/minikube.go create mode 100644 commands/ops/mongocli.go create mode 100644 commands/ops/mongoimport.go create mode 100644 commands/ops/mongosh.go create mode 100644 commands/ops/multipass.go create mode 100644 commands/ops/mysql.go create mode 100644 commands/ops/netlify.go create mode 100644 commands/ops/newman.go create mode 100644 commands/ops/nginx.go create mode 100644 commands/ops/ngrok.go create mode 100644 commands/ops/nvm.go create mode 100644 commands/ops/oci.go create mode 100644 commands/ops/okteto.go create mode 100644 commands/ops/op.go create mode 100644 commands/ops/opa.go create mode 100644 commands/ops/osqueryi.go create mode 100644 commands/ops/pass.go create mode 100644 commands/ops/pg_dump.go create mode 100644 commands/ops/pgcli.go create mode 100644 commands/ops/pm2.go create mode 100644 commands/ops/pod.go create mode 100644 commands/ops/podman.go create mode 100644 commands/ops/pscale.go create mode 100644 commands/ops/psql.go create mode 100644 commands/ops/pulumi.go create mode 100644 commands/ops/qodana.go create mode 100644 commands/ops/railway.go create mode 100644 commands/ops/rbenv.go create mode 100644 commands/ops/robot.go create mode 100644 commands/ops/serverless.go create mode 100644 commands/ops/sfdx.go create mode 100644 commands/ops/sftp.go create mode 100644 commands/ops/space.go create mode 100644 commands/ops/sqlite3.go create mode 100644 commands/ops/src.go create mode 100644 commands/ops/ssh_keygen.go create mode 100644 commands/ops/stripe.go create mode 100644 commands/ops/supabase.go create mode 100644 commands/ops/surreal.go create mode 100644 commands/ops/tailscale.go create mode 100644 commands/ops/terraform.go create mode 100644 commands/ops/terragrunt.go create mode 100644 commands/ops/tfenv.go create mode 100644 commands/ops/tfsec.go create mode 100644 commands/ops/tkn.go create mode 100644 commands/ops/trivy.go create mode 100644 commands/ops/tsuru.go create mode 100644 commands/ops/vault.go create mode 100644 commands/ops/vela.go create mode 100644 commands/ops/vercel.go create mode 100644 commands/ops/volta.go create mode 100644 commands/ops/watson.go create mode 100644 commands/ops/whois.go create mode 100644 commands/ops/wrangler.go create mode 100644 commands/ops/xc.go create mode 100644 commands/ops/xcodes.go create mode 100644 commands/pkginstaller/dpkg.go create mode 100644 commands/pkginstaller/pkgutil.go create mode 100644 commands/python/black.go create mode 100644 commands/python/conda.go create mode 100644 commands/python/django_admin.go create mode 100644 commands/python/googler.go create mode 100644 commands/python/jupyter.go create mode 100644 commands/python/mamba.go create mode 100644 commands/python/mypy.go create mode 100644 commands/python/pipenv.go create mode 100644 commands/python/pipx.go create mode 100644 commands/python/pre_commit.go create mode 100644 commands/python/pyenv.go create mode 100644 commands/python/pytest.go create mode 100644 commands/python/ruff.go create mode 100644 commands/python/sqlfluff.go create mode 100644 commands/python/sqlmesh.go create mode 100644 commands/python/streamlit.go create mode 100644 commands/python/youtube_dl.go create mode 100644 commands/runner/ant.go create mode 100644 commands/runner/composer.go create mode 100644 commands/runner/dbt.go create mode 100644 commands/runner/drush.go create mode 100644 commands/runner/elixir.go create mode 100644 commands/runner/gem.go create mode 100644 commands/runner/hexo.go create mode 100644 commands/runner/laravel.go create mode 100644 commands/runner/magento.go create mode 100644 commands/runner/mix.go create mode 100644 commands/runner/php.go create mode 100644 commands/runner/phpunit.go create mode 100644 commands/runner/phpunit_watcher.go create mode 100644 commands/runner/rails.go create mode 100644 commands/runner/rake.go create mode 100644 commands/runner/rubocop.go create mode 100644 commands/runner/ruby.go create mode 100644 commands/runner/rvm.go create mode 100644 commands/runner/sidekiq.go create mode 100644 commands/runner/symfony.go create mode 100644 commands/runner/valet.go create mode 100644 commands/runner/vapor.go create mode 100644 commands/rust/dprint.go create mode 100644 commands/rust/pijul.go create mode 100644 commands/rust/rustup.go create mode 100644 commands/rust/taplo.go create mode 100644 commands/rust/tokei.go create mode 100644 commands/rust/trunk.go create mode 100644 commands/rust/wasm_bindgen.go create mode 100644 commands/rust/wasm_pack.go create mode 100644 commands/rust/zellij.go create mode 100644 commands/sys/adb.go create mode 100644 commands/sys/ag.go create mode 100644 commands/sys/airflow.go create mode 100644 commands/sys/aliases.go create mode 100644 commands/sys/asciinema.go create mode 100644 commands/sys/asr.go create mode 100644 commands/sys/atuin.go create mode 100644 commands/sys/basename.go create mode 100644 commands/sys/bc.go create mode 100644 commands/sys/btop.go create mode 100644 commands/sys/bundle.go create mode 100644 commands/sys/cal.go create mode 100644 commands/sys/cci.go create mode 100644 commands/sys/cdk8s.go create mode 100644 commands/sys/chezmoi.go create mode 100644 commands/sys/chsh.go create mode 100644 commands/sys/codesign.go create mode 100644 commands/sys/croc.go create mode 100644 commands/sys/crontab.go create mode 100644 commands/sys/date.go create mode 100644 commands/sys/dateseq.go create mode 100644 commands/sys/dcli.go create mode 100644 commands/sys/dd.go create mode 100644 commands/sys/ddev.go create mode 100644 commands/sys/defaults.go create mode 100644 commands/sys/degit.go create mode 100644 commands/sys/deta.go create mode 100644 commands/sys/dirname.go create mode 100644 commands/sys/do_release_upgrade.go create mode 100644 commands/sys/dog.go create mode 100644 commands/sys/dotnet.go create mode 100644 commands/sys/dscacheutil.go create mode 100644 commands/sys/dscl.go create mode 100644 commands/sys/dtm.go create mode 100644 commands/sys/echo.go create mode 100644 commands/sys/eleventy.go create mode 100644 commands/sys/exec.go create mode 100644 commands/sys/fastlane.go create mode 100644 commands/sys/fdisk.go create mode 100644 commands/sys/ffmpeg.go create mode 100644 commands/sys/firefox.go create mode 100644 commands/sys/fisher.go create mode 100644 commands/sys/fmt.go create mode 100644 commands/sys/forc.go create mode 100644 commands/sys/forge.go create mode 100644 commands/sys/fzf.go create mode 100644 commands/sys/fzf_tmux.go create mode 100644 commands/sys/gltfjsx.go create mode 100644 commands/sys/goto.go create mode 100644 commands/sys/gum.go create mode 100644 commands/sys/herd.go create mode 100644 commands/sys/hop.go create mode 100644 commands/sys/hostname.go create mode 100644 commands/sys/htop.go create mode 100644 commands/sys/http.go create mode 100644 commands/sys/hyper.go create mode 100644 commands/sys/hyperfine.go create mode 100644 commands/sys/ibus.go create mode 100644 commands/sys/id.go create mode 100644 commands/sys/ignite_cli.go create mode 100644 commands/sys/install.go create mode 100644 commands/sys/join.go create mode 100644 commands/sys/julia.go create mode 100644 commands/sys/kafkactl.go create mode 100644 commands/sys/kamal.go create mode 100644 commands/sys/kitty.go create mode 100644 commands/sys/klist.go create mode 100644 commands/sys/kool.go create mode 100644 commands/sys/launchctl.go create mode 100644 commands/sys/leaf.go create mode 100644 commands/sys/lima.go create mode 100644 commands/sys/login.go create mode 100644 commands/sys/lsblk.go create mode 100644 commands/sys/lsof.go create mode 100644 commands/sys/man.go create mode 100644 commands/sys/meroxa.go create mode 100644 commands/sys/mkdocs.go create mode 100644 commands/sys/mkfifo.go create mode 100644 commands/sys/mkinitcpio.go create mode 100644 commands/sys/mknod.go create mode 100644 commands/sys/mosh.go create mode 100644 commands/sys/mount.go create mode 100644 commands/sys/ncal.go create mode 100644 commands/sys/neofetch.go create mode 100644 commands/sys/networkquality.go create mode 100644 commands/sys/networksetup.go create mode 100644 commands/sys/nextflow.go create mode 100644 commands/sys/nhost.go create mode 100644 commands/sys/nmap.go create mode 100644 commands/sys/nrm.go create mode 100644 commands/sys/ns.go create mode 100644 commands/sys/nylas.go create mode 100644 commands/sys/oh_my_posh.go create mode 100644 commands/sys/okta.go create mode 100644 commands/sys/ollama.go create mode 100644 commands/sys/omz.go create mode 100644 commands/sys/pac.go create mode 100644 commands/sys/passwd.go create mode 100644 commands/sys/pathchk.go create mode 100644 commands/sys/pdfunite.go create mode 100644 commands/sys/pkg_config.go create mode 100644 commands/sys/pmset.go create mode 100644 commands/sys/pocketbase.go create mode 100644 commands/sys/prisma.go create mode 100644 commands/sys/pro.go create mode 100644 commands/sys/pry.go create mode 100644 commands/sys/publish.go create mode 100644 commands/sys/pwd.go create mode 100644 commands/sys/rancher.go create mode 100644 commands/sys/repeat.go create mode 100644 commands/sys/rscript.go create mode 100644 commands/sys/sam.go create mode 100644 commands/sys/sanity.go create mode 100644 commands/sys/screen.go create mode 100644 commands/sys/shell_config.go create mode 100644 commands/sys/shortcuts.go create mode 100644 commands/sys/simctl.go create mode 100644 commands/sys/source.go create mode 100644 commands/sys/speedtest_cli.go create mode 100644 commands/sys/spotify.go create mode 100644 commands/sys/st2.go create mode 100644 commands/sys/stack.go create mode 100644 commands/sys/starkli.go create mode 100644 commands/sys/su.go create mode 100644 commands/sys/sudo.go create mode 100644 commands/sys/sysctl.go create mode 100644 commands/sys/systemctl.go create mode 100644 commands/sys/tac.go create mode 100644 commands/sys/tailcall.go create mode 100644 commands/sys/tailwindcss.go create mode 100644 commands/sys/time.go create mode 100644 commands/sys/tldr.go create mode 100644 commands/sys/tmux.go create mode 100644 commands/sys/tmuxinator.go create mode 100644 commands/sys/top.go create mode 100644 commands/sys/traceroute.go create mode 100644 commands/sys/trap.go create mode 100644 commands/sys/trex.go create mode 100644 commands/sys/tsh.go create mode 100644 commands/sys/tuist.go create mode 100644 commands/sys/twilio.go create mode 100644 commands/sys/uname.go create mode 100644 commands/sys/visudo.go create mode 100644 commands/sys/vultr_cli.go create mode 100644 commands/sys/wezterm.go create mode 100644 commands/sys/where.go create mode 100644 commands/sys/whereis.go create mode 100644 commands/sys/which.go create mode 100644 commands/sys/who.go create mode 100644 commands/sys/wing.go create mode 100644 commands/sys/wp.go create mode 100644 commands/sys/wrk.go create mode 100644 commands/sys/wscat.go create mode 100644 commands/sys/yank.go create mode 100644 commands/sys/ykman.go create mode 100644 commands/sys/zapier.go create mode 100644 commands/text/diff.go create mode 100644 commands/text/dos2unix.go create mode 100644 commands/text/iconv.go create mode 100644 commands/text/jq.go create mode 100644 commands/text/pandoc.go create mode 100644 commands/text/seq.go create mode 100644 commands/text/sha1sum.go create mode 100644 commands/text/shasum.go create mode 100644 commands/text/shred.go create mode 100644 commands/text/split.go create mode 100644 commands/text/truncate.go create mode 100644 commands/text/typos.go create mode 100644 commands/text/unix2dos.go create mode 100644 commands/text/vale.go create mode 100644 commands/view/bat.go create mode 100644 commands/view/code.go create mode 100644 commands/view/cot.go create mode 100644 commands/view/emacs.go create mode 100644 commands/view/glow.go create mode 100644 commands/view/idea.go create mode 100644 commands/view/lvim.go create mode 100644 commands/view/micro.go create mode 100644 commands/view/more.go create mode 100644 commands/view/nano.go create mode 100644 commands/view/nvim.go create mode 100644 commands/view/rich.go create mode 100644 commands/view/subl.go create mode 100644 commands/view/vi.go create mode 100644 commands/view/vim.go create mode 100644 commands/view/vimr.go create mode 100644 commands/view/xed.go create mode 100644 commands/view/xxd.go create mode 100644 commands/view/zed.go create mode 100644 scripts/cmds_docs.go 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:///<field> or dl://<id>/<field>)"}, + {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=<modules> 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 `<path>`"}, + {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.<type> 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 <on> for <authenticated> to enable authenticated proxy support"}, + {Name: "off", Description: "Specify <off> for <authenticated> 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 <computername>. 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 <networkservice>"}, + {Name: "-setv6off", Description: "Use this command to turn IPv6 off on the specified <networkservice>"}, + {Name: "-setv6automatic", Description: "Use this command to set IPv6 to only use link local for <networkservice>"}, + {Name: "-setv6manual", Description: "The IPv6 address to assign"}, + {Name: "-getv6additionalroutes", Description: "Displays DNS info for <networkservice>"}, + {Name: "-setdnsservers", Description: "IP addresses of DNS servers. Use 'empty' to clear all DNS entries"}, + {Name: "-getsearchdomains", Description: "Displays Domain Name info for <networkservice>"}, + {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 <networkservice>"}, + {Name: "-setwebproxy", Description: "The domain name or IP address of the proxy server"}, + {Name: "-setwebproxystate", Description: "Set Web proxy on <networkservice> to either <on> or <off>"}, + {Name: "-getsecurewebproxy", Description: "The proxy server's domain or IP address"}, + {Name: "-setsecurewebproxystate", Description: "Set Secure Web proxy on <networkservice> to either <on> or <off>"}, + {Name: "-getsocksfirewallproxy", Description: "The proxy server's domain or IP address"}, + {Name: "-setsocksfirewallproxystate", Description: "Set SOCKS Firewall proxy to either <on> or <off>"}, + {Name: "-getproxybypassdomains", Description: "Displays Bypass Domain Names for <networkservice>"}, + {Name: "-setproxybypassdomains", Description: "Domains to bypass proxy for. Use 'Empty' to clear all bypass domains"}, + {Name: "-getproxyautodiscovery", Description: "Displays Proxy Auto Discover for <networkservice>"}, + {Name: "-setproxyautodiscovery", Description: "Set Proxy Auto Discover for <networkservice> to either <on> or <off>"}, + {Name: "-setautoproxyurl", Description: "Set proxy auto-config to url for <networkservice> and enable it"}, + {Name: "-getautoproxyurl", Description: "Displays proxy auto-config (url, enabled) info for <networkservice>"}, + {Name: "-getairportnetwork", Description: "Displays current Wi-Fi Network"}, + {Name: "-setairportnetwork", Description: "Set Wi-Fi Network to <network> 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 <on> or <off>"}, + {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 <pid>.sockname instead of <pid>.<tty>.<host>"}, + {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 <cmd> 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: "<group identifier>", Description: "A specific App Group container"}, + {Name: "getenv", Description: "Print an environment variable from a running device"}, + {Name: "help", Description: "Prints the usage for a given subcommand"}, + {Name: "icloud_sync", Description: "Trigger iCloud sync on a device"}, + {Name: "install", Description: "Install an app on a device"}, + {Name: "io", Description: "Set up a device IO operation"}, + {Name: "enumerate", Description: "Lists all available IO ports and descriptor states"}, + {Name: "poll", Description: "Polls all available IO ports for events"}, + {Name: "recordVideo", Description: "Records the display to a QuickTime movie at the specified file or url"}, + {Name: "screenshot", Description: "Saves a screenshot as a PNG to the specified file or url(use '-' for stdout)"}, + {Name: "keychain", Description: "Manipulate a device's keychain"}, + {Name: "add-root-cert", Description: "Add a certificate to the trusted root store"}, + {Name: "add-cert", Description: "Add a certificate to the keychain"}, + {Name: "reset", Description: "Reset the keychain"}, + {Name: "launch", Description: "Launch an application by identifier on a device"}, + {Name: "list", Description: "List available devices, device types, runtimes, or device pairs"}, + {Name: "location", Description: "Control a device's simulated location"}, + {Name: "clear", Description: "Stop any running scenario and clear any simulated location"}, + {Name: "set", Description: "Set the location to a specific latitude and longitude"}, + {Name: "device", Description: "The device. If not provided all booted devices are affected"}, + {Name: "enable/disable", Description: "Enable or Disable verbose logging"}, + {Name: "openurl", Description: "Open a URL in a device"}, + {Name: "pair", Description: "Create a new watch and phone pair"}, + {Name: "pair_activate", Description: "Set a given pair as active"}, + {Name: "pbcopy", Description: "Copy standard input onto the device pasteboard"}, + {Name: "pbpaste", Description: "Print the contents of the device's pasteboard to standard output"}, + {Name: "pbsync", Description: "Sync the pasteboard content from one pasteboard to another"}, + {Name: "privacy", Description: "Grant, revoke, or reset privacy and permissions"}, + {Name: "bundle identifier", Description: "The bundle identifier of the target application"}, + {Name: "push", Description: "Send a simulated push notification"}, + {Name: "rename", Description: "Rename a device"}, + {Name: "runtime", Description: "Perform operations on runtimes"}, + {Name: "verify", Description: "Re-verify the signature of a given runtime"}, + {Name: "shutdown", Description: "Shutdown a device"}, + {Name: "spawn", Description: "Spawn a process by executing a given executable on a device"}, + {Name: "status_bar", Description: "Set or clear status bar overrides"}, + {Name: "terminate", Description: "Terminate an application by identifier on a device"}, + {Name: "ui", Description: "Get or Set UI options"}, + }, + Options: []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> 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 <bareMetalID>"}, + {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 <cmd> before any config"}, + {Name: "-c", Description: "Execute <cmd> 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 <session> after loading the first file"}, + {Name: "-s", Description: "Read Normal mode commands from <scriptin>"}, + {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 <file>"}, + }, + }) +} 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/<scheme>.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 <cmd> before any config"}, + {Name: "-c", Description: "Execute <cmd> 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 <session> after loading the first file"}, + {Name: "-s", Description: "Read Normal mode commands from <scriptin>"}, + {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 <file>"}, + }, + }) +} 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 <terminal>"}, + {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 <vimrc> 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 <command> before loading any vimrc file"}, + {Name: "-c", Description: "Execute <command> after loading the first file"}, + {Name: "-S", Description: "Source file <session> after loading the first file"}, + {Name: "-w", Description: "Append all typed commands to file <scriptout>"}, + {Name: "-W", Description: "Write all typed commands to file <scriptout>"}, + {Name: "-x", Description: "Edit encrypted files"}, + {Name: "--startuptime", Description: "Write startup timing messages to <file>"}, + {Name: "-i", Description: "Use <viminfo> 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 <cols> 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> bytes"}, + {Name: "-include", Description: "Output in C include file style"}, + {Name: "-len", Description: "Stop after writing <len> octets"}, + {Name: "-name", Description: "Override the variable name output when -i is used"}, + {Name: "-o", Description: "Add <offset> 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, "<a id=\"%s\"></a>\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)) +}