| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163 |
- export namespace BashArity {
- export function prefix(tokens: string[]) {
- for (let len = tokens.length; len > 0; len--) {
- const prefix = tokens.slice(0, len).join(" ")
- const arity = ARITY[prefix]
- if (arity !== undefined) return tokens.slice(0, arity)
- }
- if (tokens.length === 0) return []
- return tokens.slice(0, 1)
- }
- /* Generated with following prompt:
- You are generating a dictionary of command-prefix arities for bash-style commands.
- This dictionary is used to identify the "human-understandable command" from an input shell command.### **RULES (follow strictly)**1. Each entry maps a **command prefix string → number**, representing how many **tokens** define the command.
- 2. **Flags NEVER count as tokens**. Only subcommands count.
- 3. **Longest matching prefix wins**.
- 4. **Only include a longer prefix if its arity is different from what the shorter prefix already implies**. * Example: If `git` is 2, then do **not** include `git checkout`, `git commit`, etc. unless they require *different* arity.
- 5. The output must be a **single JSON object**. Each entry should have a comment with an example real world matching command. DO NOT MAKE ANY OTHER COMMENTS. Should be alphabetical
- 6. Include the **most commonly used commands** across many stacks and languages. More is better.### **Semantics examples*** `touch foo.txt` → `touch` (arity 1, explicitly listed)
- * `git checkout main` → `git checkout` (because `git` has arity 2)
- * `npm install` → `npm install` (because `npm` has arity 2)
- * `npm run dev` → `npm run dev` (because `npm run` has arity 3)
- * `python script.py` → `python script.py` (default: whole input, not in dictionary)### **Now generate the dictionary.**
- */
- const ARITY: Record<string, number> = {
- cat: 1, // cat file.txt
- cd: 1, // cd /path/to/dir
- chmod: 1, // chmod 755 script.sh
- chown: 1, // chown user:group file.txt
- cp: 1, // cp source.txt dest.txt
- echo: 1, // echo "hello world"
- env: 1, // env
- export: 1, // export PATH=/usr/bin
- grep: 1, // grep pattern file.txt
- kill: 1, // kill 1234
- killall: 1, // killall process
- ln: 1, // ln -s source target
- ls: 1, // ls -la
- mkdir: 1, // mkdir new-dir
- mv: 1, // mv old.txt new.txt
- ps: 1, // ps aux
- pwd: 1, // pwd
- rm: 1, // rm file.txt
- rmdir: 1, // rmdir empty-dir
- sleep: 1, // sleep 5
- source: 1, // source ~/.bashrc
- tail: 1, // tail -f log.txt
- touch: 1, // touch file.txt
- unset: 1, // unset VAR
- which: 1, // which node
- aws: 3, // aws s3 ls
- az: 3, // az storage blob list
- bazel: 2, // bazel build
- brew: 2, // brew install node
- bun: 2, // bun install
- "bun run": 3, // bun run dev
- "bun x": 3, // bun x vite
- cargo: 2, // cargo build
- "cargo add": 3, // cargo add tokio
- "cargo run": 3, // cargo run main
- cdk: 2, // cdk deploy
- cf: 2, // cf push app
- cmake: 2, // cmake build
- composer: 2, // composer require laravel
- consul: 2, // consul members
- "consul kv": 3, // consul kv get config/app
- crictl: 2, // crictl ps
- deno: 2, // deno run server.ts
- "deno task": 3, // deno task dev
- doctl: 3, // doctl kubernetes cluster list
- docker: 2, // docker run nginx
- "docker builder": 3, // docker builder prune
- "docker compose": 3, // docker compose up
- "docker container": 3, // docker container ls
- "docker image": 3, // docker image prune
- "docker network": 3, // docker network inspect
- "docker volume": 3, // docker volume ls
- eksctl: 2, // eksctl get clusters
- "eksctl create": 3, // eksctl create cluster
- firebase: 2, // firebase deploy
- flyctl: 2, // flyctl deploy
- gcloud: 3, // gcloud compute instances list
- gh: 3, // gh pr list
- git: 2, // git checkout main
- "git config": 3, // git config user.name
- "git remote": 3, // git remote add origin
- "git stash": 3, // git stash pop
- go: 2, // go build
- gradle: 2, // gradle build
- helm: 2, // helm install mychart
- heroku: 2, // heroku logs
- hugo: 2, // hugo new site blog
- ip: 2, // ip link show
- "ip addr": 3, // ip addr show
- "ip link": 3, // ip link set eth0 up
- "ip netns": 3, // ip netns exec foo bash
- "ip route": 3, // ip route add default via 1.1.1.1
- kind: 2, // kind delete cluster
- "kind create": 3, // kind create cluster
- kubectl: 2, // kubectl get pods
- "kubectl kustomize": 3, // kubectl kustomize overlays/dev
- "kubectl rollout": 3, // kubectl rollout restart deploy/api
- kustomize: 2, // kustomize build .
- make: 2, // make build
- mc: 2, // mc ls myminio
- "mc admin": 3, // mc admin info myminio
- minikube: 2, // minikube start
- mongosh: 2, // mongosh test
- mysql: 2, // mysql -u root
- mvn: 2, // mvn compile
- ng: 2, // ng generate component home
- npm: 2, // npm install
- "npm exec": 3, // npm exec vite
- "npm init": 3, // npm init vue
- "npm run": 3, // npm run dev
- "npm view": 3, // npm view react version
- nvm: 2, // nvm use 18
- nx: 2, // nx build
- openssl: 2, // openssl genrsa 2048
- "openssl req": 3, // openssl req -new -key key.pem
- "openssl x509": 3, // openssl x509 -in cert.pem
- pip: 2, // pip install numpy
- pipenv: 2, // pipenv install flask
- pnpm: 2, // pnpm install
- "pnpm dlx": 3, // pnpm dlx create-next-app
- "pnpm exec": 3, // pnpm exec vite
- "pnpm run": 3, // pnpm run dev
- poetry: 2, // poetry add requests
- podman: 2, // podman run alpine
- "podman container": 3, // podman container ls
- "podman image": 3, // podman image prune
- psql: 2, // psql -d mydb
- pulumi: 2, // pulumi up
- "pulumi stack": 3, // pulumi stack output
- pyenv: 2, // pyenv install 3.11
- python: 2, // python -m venv env
- rake: 2, // rake db:migrate
- rbenv: 2, // rbenv install 3.2.0
- "redis-cli": 2, // redis-cli ping
- rustup: 2, // rustup update
- serverless: 2, // serverless invoke
- sfdx: 3, // sfdx force:org:list
- skaffold: 2, // skaffold dev
- sls: 2, // sls deploy
- sst: 2, // sst deploy
- swift: 2, // swift build
- systemctl: 2, // systemctl restart nginx
- terraform: 2, // terraform apply
- "terraform workspace": 3, // terraform workspace select prod
- tmux: 2, // tmux new -s dev
- turbo: 2, // turbo run build
- ufw: 2, // ufw allow 22
- vault: 2, // vault login
- "vault auth": 3, // vault auth list
- "vault kv": 3, // vault kv get secret/api
- vercel: 2, // vercel deploy
- volta: 2, // volta install node
- wp: 2, // wp plugin install
- yarn: 2, // yarn add react
- "yarn dlx": 3, // yarn dlx create-react-app
- "yarn run": 3, // yarn run dev
- }
- }
|