bash-classify 0.1.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- bash_classify/__init__.py +14 -0
- bash_classify/__main__.py +3 -0
- bash_classify/classifier.py +244 -0
- bash_classify/cli.py +110 -0
- bash_classify/commands/apt.yaml +23 -0
- bash_classify/commands/awk.yaml +5 -0
- bash_classify/commands/basename.yaml +5 -0
- bash_classify/commands/bash.yaml +18 -0
- bash_classify/commands/brew.yaml +25 -0
- bash_classify/commands/builtin.yaml +6 -0
- bash_classify/commands/cargo.yaml +29 -0
- bash_classify/commands/cat.yaml +5 -0
- bash_classify/commands/chgrp.yaml +8 -0
- bash_classify/commands/chmod.yaml +8 -0
- bash_classify/commands/chown.yaml +8 -0
- bash_classify/commands/column.yaml +5 -0
- bash_classify/commands/comm.yaml +5 -0
- bash_classify/commands/command.yaml +10 -0
- bash_classify/commands/cp.yaml +5 -0
- bash_classify/commands/curl.yaml +28 -0
- bash_classify/commands/cut.yaml +5 -0
- bash_classify/commands/date.yaml +8 -0
- bash_classify/commands/df.yaml +5 -0
- bash_classify/commands/diff.yaml +5 -0
- bash_classify/commands/dig.yaml +5 -0
- bash_classify/commands/dirname.yaml +5 -0
- bash_classify/commands/docker.yaml +152 -0
- bash_classify/commands/du.yaml +5 -0
- bash_classify/commands/echo.yaml +5 -0
- bash_classify/commands/env.yaml +14 -0
- bash_classify/commands/expand.yaml +5 -0
- bash_classify/commands/false.yaml +5 -0
- bash_classify/commands/file.yaml +5 -0
- bash_classify/commands/find.yaml +27 -0
- bash_classify/commands/fmt.yaml +5 -0
- bash_classify/commands/fold.yaml +5 -0
- bash_classify/commands/free.yaml +5 -0
- bash_classify/commands/gawk.yaml +5 -0
- bash_classify/commands/git.yaml +441 -0
- bash_classify/commands/go.yaml +38 -0
- bash_classify/commands/grep.yaml +5 -0
- bash_classify/commands/groups.yaml +5 -0
- bash_classify/commands/gunzip.yaml +5 -0
- bash_classify/commands/gzip.yaml +5 -0
- bash_classify/commands/head.yaml +5 -0
- bash_classify/commands/helm.yaml +127 -0
- bash_classify/commands/hostname.yaml +5 -0
- bash_classify/commands/id.yaml +5 -0
- bash_classify/commands/install.yaml +5 -0
- bash_classify/commands/join.yaml +5 -0
- bash_classify/commands/journalctl.yaml +12 -0
- bash_classify/commands/jq.yaml +5 -0
- bash_classify/commands/kill.yaml +5 -0
- bash_classify/commands/killall.yaml +5 -0
- bash_classify/commands/kubectl.yaml +190 -0
- bash_classify/commands/less.yaml +5 -0
- bash_classify/commands/ln.yaml +5 -0
- bash_classify/commands/ls.yaml +5 -0
- bash_classify/commands/make.yaml +19 -0
- bash_classify/commands/md5sum.yaml +5 -0
- bash_classify/commands/mkdir.yaml +5 -0
- bash_classify/commands/more.yaml +5 -0
- bash_classify/commands/mv.yaml +5 -0
- bash_classify/commands/netstat.yaml +5 -0
- bash_classify/commands/nice.yaml +9 -0
- bash_classify/commands/nl.yaml +5 -0
- bash_classify/commands/node.yaml +5 -0
- bash_classify/commands/nohup.yaml +6 -0
- bash_classify/commands/npm.yaml +65 -0
- bash_classify/commands/nslookup.yaml +5 -0
- bash_classify/commands/paste.yaml +5 -0
- bash_classify/commands/ping.yaml +5 -0
- bash_classify/commands/pip.yaml +29 -0
- bash_classify/commands/pip3.yaml +29 -0
- bash_classify/commands/pkill.yaml +5 -0
- bash_classify/commands/poetry.yaml +74 -0
- bash_classify/commands/printenv.yaml +5 -0
- bash_classify/commands/printf.yaml +5 -0
- bash_classify/commands/ps.yaml +5 -0
- bash_classify/commands/pwd.yaml +5 -0
- bash_classify/commands/python.yaml +5 -0
- bash_classify/commands/python3.yaml +5 -0
- bash_classify/commands/read.yaml +5 -0
- bash_classify/commands/readlink.yaml +5 -0
- bash_classify/commands/realpath.yaml +5 -0
- bash_classify/commands/rev.yaml +5 -0
- bash_classify/commands/rm.yaml +5 -0
- bash_classify/commands/rsync.yaml +10 -0
- bash_classify/commands/scp.yaml +5 -0
- bash_classify/commands/sed.yaml +12 -0
- bash_classify/commands/seq.yaml +5 -0
- bash_classify/commands/sh.yaml +12 -0
- bash_classify/commands/sha1sum.yaml +5 -0
- bash_classify/commands/sha256sum.yaml +5 -0
- bash_classify/commands/sort.yaml +8 -0
- bash_classify/commands/ss.yaml +5 -0
- bash_classify/commands/ssh.yaml +39 -0
- bash_classify/commands/stat.yaml +5 -0
- bash_classify/commands/strace.yaml +18 -0
- bash_classify/commands/sudo.yaml +22 -0
- bash_classify/commands/systemctl.yaml +56 -0
- bash_classify/commands/tac.yaml +5 -0
- bash_classify/commands/tail.yaml +5 -0
- bash_classify/commands/tar.yaml +22 -0
- bash_classify/commands/tee.yaml +5 -0
- bash_classify/commands/terraform.yaml +68 -0
- bash_classify/commands/test.yaml +5 -0
- bash_classify/commands/time.yaml +6 -0
- bash_classify/commands/timeout.yaml +15 -0
- bash_classify/commands/top.yaml +5 -0
- bash_classify/commands/touch.yaml +5 -0
- bash_classify/commands/tr.yaml +5 -0
- bash_classify/commands/traceroute.yaml +5 -0
- bash_classify/commands/true.yaml +5 -0
- bash_classify/commands/type.yaml +5 -0
- bash_classify/commands/uname.yaml +5 -0
- bash_classify/commands/unexpand.yaml +5 -0
- bash_classify/commands/uniq.yaml +5 -0
- bash_classify/commands/unzip.yaml +7 -0
- bash_classify/commands/uptime.yaml +5 -0
- bash_classify/commands/uv.yaml +117 -0
- bash_classify/commands/wc.yaml +5 -0
- bash_classify/commands/wget.yaml +5 -0
- bash_classify/commands/whereis.yaml +5 -0
- bash_classify/commands/which.yaml +5 -0
- bash_classify/commands/whoami.yaml +5 -0
- bash_classify/commands/xargs.yaml +25 -0
- bash_classify/commands/xmllint.yaml +5 -0
- bash_classify/commands/yes.yaml +5 -0
- bash_classify/commands/yq.yaml +8 -0
- bash_classify/commands/zip.yaml +5 -0
- bash_classify/commands/zsh.yaml +12 -0
- bash_classify/database.py +257 -0
- bash_classify/matcher.py +702 -0
- bash_classify/models.py +148 -0
- bash_classify/parser.py +525 -0
- bash_classify/py.typed +0 -0
- bash_classify-0.1.0.dist-info/METADATA +147 -0
- bash_classify-0.1.0.dist-info/RECORD +142 -0
- bash_classify-0.1.0.dist-info/WHEEL +4 -0
- bash_classify-0.1.0.dist-info/entry_points.txt +2 -0
- bash_classify-0.1.0.dist-info/licenses/LICENSE +21 -0
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: bash-classify
|
|
3
|
+
Version: 0.1.0
|
|
4
|
+
Summary: Classify bash commands as READONLY, WRITE, DANGEROUS, or UNKNOWN
|
|
5
|
+
Project-URL: Homepage, https://github.com/fprochazka/bash-classify
|
|
6
|
+
Project-URL: Repository, https://github.com/fprochazka/bash-classify
|
|
7
|
+
Project-URL: Issues, https://github.com/fprochazka/bash-classify/issues
|
|
8
|
+
Project-URL: Documentation, https://github.com/fprochazka/bash-classify/blob/main/SPEC.md
|
|
9
|
+
Author-email: Filip Procházka <dev@fprochazka.cz>
|
|
10
|
+
License-Expression: MIT
|
|
11
|
+
License-File: LICENSE
|
|
12
|
+
Keywords: bash,classification,cli,security,tree-sitter
|
|
13
|
+
Classifier: Development Status :: 4 - Beta
|
|
14
|
+
Classifier: Environment :: Console
|
|
15
|
+
Classifier: Intended Audience :: Developers
|
|
16
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
17
|
+
Classifier: Programming Language :: Python :: 3
|
|
18
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
19
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
20
|
+
Classifier: Topic :: Security
|
|
21
|
+
Classifier: Topic :: Software Development :: Libraries
|
|
22
|
+
Classifier: Topic :: System :: Shells
|
|
23
|
+
Classifier: Typing :: Typed
|
|
24
|
+
Requires-Python: >=3.12
|
|
25
|
+
Requires-Dist: pyyaml>=6.0
|
|
26
|
+
Requires-Dist: tree-sitter-bash>=0.23
|
|
27
|
+
Requires-Dist: tree-sitter>=0.24
|
|
28
|
+
Description-Content-Type: text/markdown
|
|
29
|
+
|
|
30
|
+
# bash-classify
|
|
31
|
+
|
|
32
|
+
Classify bash commands by their side-effect risk level.
|
|
33
|
+
|
|
34
|
+
## What it does
|
|
35
|
+
|
|
36
|
+
bash-classify parses bash expressions using tree-sitter, classifies each command against a database of 120+ known commands, and outputs a structured JSON verdict. Commands are classified into four levels: `READONLY`, `WRITE`, `DANGEROUS`, and `UNKNOWN`.
|
|
37
|
+
|
|
38
|
+
Designed primarily as a [Claude Code](https://docs.anthropic.com/en/docs/claude-code) hook to automatically allow safe, read-only commands while flagging risky ones for human review.
|
|
39
|
+
|
|
40
|
+
## Installation
|
|
41
|
+
|
|
42
|
+
```bash
|
|
43
|
+
uv tool install bash-classify
|
|
44
|
+
# or
|
|
45
|
+
pip install bash-classify
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
## Quick start
|
|
49
|
+
|
|
50
|
+
```bash
|
|
51
|
+
$ echo 'kubectl get pods -n production' | bash-classify | jq '.classification'
|
|
52
|
+
"READONLY"
|
|
53
|
+
|
|
54
|
+
$ echo 'git push --force origin main' | bash-classify | jq '.classification'
|
|
55
|
+
"DANGEROUS"
|
|
56
|
+
|
|
57
|
+
$ echo 'cp file.txt /etc/config' | bash-classify | jq '.classification'
|
|
58
|
+
"DANGEROUS"
|
|
59
|
+
|
|
60
|
+
$ echo 'find . -name "*.pyc" -delete' | bash-classify | jq '.classification'
|
|
61
|
+
"DANGEROUS"
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
## Claude Code hook
|
|
65
|
+
|
|
66
|
+
Install as a Claude Code hook to auto-allow read-only commands and require approval for everything else:
|
|
67
|
+
|
|
68
|
+
```json
|
|
69
|
+
{
|
|
70
|
+
"hooks": {
|
|
71
|
+
"PreToolUse": [
|
|
72
|
+
{
|
|
73
|
+
"matcher": "Bash",
|
|
74
|
+
"hooks": [
|
|
75
|
+
{
|
|
76
|
+
"type": "command",
|
|
77
|
+
"command": "echo \"$CLAUDE_TOOL_INPUT\" | jq -r '.command' | bash-classify",
|
|
78
|
+
"timeout": 5000,
|
|
79
|
+
"on_output": [
|
|
80
|
+
{
|
|
81
|
+
"matcher": "\"classification\": \"READONLY\"",
|
|
82
|
+
"action": "approve"
|
|
83
|
+
}
|
|
84
|
+
]
|
|
85
|
+
}
|
|
86
|
+
]
|
|
87
|
+
}
|
|
88
|
+
]
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
## Command database
|
|
94
|
+
|
|
95
|
+
The classification database includes 120+ command definitions covering common Unix utilities, package managers, container tools, cloud CLIs, and more.
|
|
96
|
+
|
|
97
|
+
- See [docs/classification-guidance.md](docs/classification-guidance.md) for how to add new commands
|
|
98
|
+
- YAML definitions are validated against a JSON Schema for IDE autocomplete and CI checks
|
|
99
|
+
|
|
100
|
+
## Classification levels
|
|
101
|
+
|
|
102
|
+
| Level | Description | Examples |
|
|
103
|
+
|---|---|---|
|
|
104
|
+
| `READONLY` | No side effects, safe to auto-approve | `ls`, `cat`, `grep`, `kubectl get` |
|
|
105
|
+
| `WRITE` | Modifies local files or state | `mkdir`, `cp`, `git commit` |
|
|
106
|
+
| `DANGEROUS` | Destructive, system-wide, or irreversible | `rm -rf`, `git push --force`, `chmod` |
|
|
107
|
+
| `UNKNOWN` | Command not in database | Any unrecognized command |
|
|
108
|
+
|
|
109
|
+
## How it works
|
|
110
|
+
|
|
111
|
+
- **Tree-sitter parsing** -- bash expressions are parsed into an AST for accurate command extraction, handling pipes, subshells, and command substitution
|
|
112
|
+
- **YAML command database** -- each command has classification rules with subcommand and option matching
|
|
113
|
+
- **Subcommand matching** -- `kubectl get` and `kubectl delete` can have different classifications
|
|
114
|
+
- **Delegation for wrappers** -- commands like `xargs`, `sudo`, and `env` delegate classification to the inner command
|
|
115
|
+
|
|
116
|
+
## Python API
|
|
117
|
+
|
|
118
|
+
```python
|
|
119
|
+
from bash_classify import classify_expression
|
|
120
|
+
|
|
121
|
+
result = classify_expression("kubectl get pods")
|
|
122
|
+
print(result.classification) # Classification.READONLY
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
See [SPEC.md](SPEC.md) for the full specification.
|
|
126
|
+
|
|
127
|
+
## Development
|
|
128
|
+
|
|
129
|
+
```bash
|
|
130
|
+
git clone https://github.com/fprochazka/bash-classify.git
|
|
131
|
+
cd bash-classify
|
|
132
|
+
uv sync --dev
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
Run tests and linting before committing:
|
|
136
|
+
|
|
137
|
+
```bash
|
|
138
|
+
uv run ruff format .
|
|
139
|
+
uv run ruff check .
|
|
140
|
+
uv run pytest
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
To add or modify command definitions, see [docs/classification-guidance.md](docs/classification-guidance.md). All YAML files in `src/bash_classify/commands/` are validated against a [JSON Schema](schemas/command.schema.json) — your IDE will provide autocomplete if it supports the `# $schema:` comment.
|
|
144
|
+
|
|
145
|
+
## License
|
|
146
|
+
|
|
147
|
+
[MIT](LICENSE)
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
bash_classify/__init__.py,sha256=SmgoVAWuW9SJ6au9wjJOmj8uMtq1tomUBbm5fzZhHKo,438
|
|
2
|
+
bash_classify/__main__.py,sha256=ZVGqh6yuvVPHCzpUDVbnVj6A8nNT8V5-pn1Lt0ahUzo,43
|
|
3
|
+
bash_classify/classifier.py,sha256=hNCbRp54J1s7i5z29xFxmK0x1OywqtilRw86jFNXEyw,8815
|
|
4
|
+
bash_classify/cli.py,sha256=84WhLdHEkeeP3WRsH1jnAKUlPSJZUfdzwBd8-bagFJk,3321
|
|
5
|
+
bash_classify/database.py,sha256=UlUlNQhqt-wkAai0ZFMi5S7k-irSSgSA43jjh36F4fU,8362
|
|
6
|
+
bash_classify/matcher.py,sha256=OINrRZR8mZhjk-eKgtJ3Lw_BNopPz1UfHsS75I1MbLA,25083
|
|
7
|
+
bash_classify/models.py,sha256=xmC05HbDjPCA7fGzL6fM9TJi_2hc__sLP4vqm0JNtC0,4021
|
|
8
|
+
bash_classify/parser.py,sha256=vvt7I-FL8hLZcHJ9NKVX_4SuZ1BL0OKbd_BQdS-XchI,18166
|
|
9
|
+
bash_classify/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
10
|
+
bash_classify/commands/apt.yaml,sha256=0v6DPXZniW4jorCvLZoPmCDQjkqkwmmWUEczCmG9Gqg,488
|
|
11
|
+
bash_classify/commands/awk.yaml,sha256=emkjOaTMhCUPIO-u_DWGaRI5jY7pXQXJe5z_et2T71s,161
|
|
12
|
+
bash_classify/commands/basename.yaml,sha256=kzaZDdkFNXQpmmqiNQFcrIb8e_hODExUq24NQWKZD34,162
|
|
13
|
+
bash_classify/commands/bash.yaml,sha256=GdHrrjYDY1Ky5HDJKkf3NUbxbZzr0aWl-8y_9CDscvI,336
|
|
14
|
+
bash_classify/commands/brew.yaml,sha256=UeTrsCHbaWBJxNdtSbO8yiGHI7ftPA48Kx31n2kgkGQ,513
|
|
15
|
+
bash_classify/commands/builtin.yaml,sha256=QAUYfcJfx3dMhhp1pGtqHrbyHnP90WH7pz6YY8M0uEw,173
|
|
16
|
+
bash_classify/commands/cargo.yaml,sha256=3ep1MDs-xUh22pRD_mwjpqh6Tdi8wbJU0rE4bg_jCIY,584
|
|
17
|
+
bash_classify/commands/cat.yaml,sha256=6JyeCjyOFYiuIN54ynkkozhaY5SspaYUx5cmE6sLypY,143
|
|
18
|
+
bash_classify/commands/chgrp.yaml,sha256=C5dyOtPv0NwaS5zPwtB8U6BnzDggnMwMrqKlhvtZfkk,237
|
|
19
|
+
bash_classify/commands/chmod.yaml,sha256=fVcD7Hglnj8u9sw6yIJqu1kTKHVOKcaz_2IVjccOIS8,227
|
|
20
|
+
bash_classify/commands/chown.yaml,sha256=fLgYYqxXI_Vv4A--lC0D_uxfsTr0hFL1Zb_WVbYkQBo,233
|
|
21
|
+
bash_classify/commands/column.yaml,sha256=_1cL2Q_Dk_1sD-dGimdenG8ux9LiiQLznHgsnCzX4o0,153
|
|
22
|
+
bash_classify/commands/comm.yaml,sha256=7UdtrP8qICsA8pffgRAmApyi3ngsdhg7a_p2uE7DNNs,154
|
|
23
|
+
bash_classify/commands/command.yaml,sha256=EIXwbP3AeodSGQ5Dqa5Jsms6nccZp-lub2ZoodCrqbE,219
|
|
24
|
+
bash_classify/commands/cp.yaml,sha256=Mo7a1miMIFTP15oAI6IyReqv-Q1iuY9T6SFCs9FhiZI,138
|
|
25
|
+
bash_classify/commands/curl.yaml,sha256=U1kRaf2K97vw-j342Tzyz4PcisQ_fVsRoRSQarRaiOE,966
|
|
26
|
+
bash_classify/commands/cut.yaml,sha256=ffgYG4vXwLKVOAKOsLAMHyTyeVLpCuiHqdO1F4i6CZA,155
|
|
27
|
+
bash_classify/commands/date.yaml,sha256=PKCY9A_uCpRJdH5-WFEuHah5U86uWHLSC3TzrP3WRzU,278
|
|
28
|
+
bash_classify/commands/df.yaml,sha256=o3SNXEA0DzFmrubQOa-7uX2nr28-VIDpCy0ed-ie5eA,150
|
|
29
|
+
bash_classify/commands/diff.yaml,sha256=Oc7Q37gk-W74eQy9fZRYZ4R6LxB9UYJZEqRm-l7Y2Og,143
|
|
30
|
+
bash_classify/commands/dig.yaml,sha256=VJ_YYymjffWddypr4R1JQrhBJGsWmHb485z1MBXh3Fs,134
|
|
31
|
+
bash_classify/commands/dirname.yaml,sha256=KUl45jQjoF9PLsB5y-VKjR_VMEKNR1X58GnXxvgZrvU,155
|
|
32
|
+
bash_classify/commands/docker.yaml,sha256=EpfMh7UPxH-KIze8U4HdruqE773F8Zw3zQQCoxF2ws0,3059
|
|
33
|
+
bash_classify/commands/du.yaml,sha256=aHiuHITExMygXVETRL5qBxrOOYnUExlO_Yza_C26lsY,140
|
|
34
|
+
bash_classify/commands/echo.yaml,sha256=yCxXYfWUGiDUyap1jSD6cAPoHeHd4ioz_qIFcEoaAwI,139
|
|
35
|
+
bash_classify/commands/env.yaml,sha256=DmtusWzjQ4-UG3u02pWTJRS5YBKUujiJvlL1R-0hwsU,444
|
|
36
|
+
bash_classify/commands/expand.yaml,sha256=I8wZiVXFwnqJLL0odyXcKAWHP8mKacvWPXwtOml-08E,141
|
|
37
|
+
bash_classify/commands/false.yaml,sha256=-dxa5F4WSlcKieid8vUZ_LZ032DrRnwlU5Upxm04JF4,154
|
|
38
|
+
bash_classify/commands/file.yaml,sha256=N4M41hDaTGIh3q5mFnX7iNwLvzJSS87h_AiF2HedaqE,136
|
|
39
|
+
bash_classify/commands/find.yaml,sha256=trydWCEbfo-xNgq5x10zOac1M8JjnlxOIaNgszhy0w0,603
|
|
40
|
+
bash_classify/commands/fmt.yaml,sha256=UeIAITaJ3z96n45WrUXCebB97GtL3cV7h1eI-qwyMpc,145
|
|
41
|
+
bash_classify/commands/fold.yaml,sha256=xB8LQfnwpbITZPWi_ZWod4H8-atswnn6uK_usUM0qyw,163
|
|
42
|
+
bash_classify/commands/free.yaml,sha256=zgQc4tqKJWOSY-w3VX0h6dvm2WmJKwIvtK_tJSAGnAo,155
|
|
43
|
+
bash_classify/commands/gawk.yaml,sha256=hAQXCdbKqZID5NItX00c_5X6Ee8AIdVZ03CwzAUDOt8,157
|
|
44
|
+
bash_classify/commands/git.yaml,sha256=hqMPIp88w8Bkk8QYaJ2BuVNRFKaVuG9DlKBh7XrzxDI,9629
|
|
45
|
+
bash_classify/commands/go.yaml,sha256=xQDIATPTx9GTiXQXdI1FtDQnNpUQn4-w520LG5BFSdw,760
|
|
46
|
+
bash_classify/commands/grep.yaml,sha256=lNgadZdeqypAKKi1K4gRU7cCFr54JdJfnykRWYUyCPk,145
|
|
47
|
+
bash_classify/commands/groups.yaml,sha256=0eDqIXB14eS_Hqai71-9CdiIjMvRBta9Ng5_DjWuScA,148
|
|
48
|
+
bash_classify/commands/gunzip.yaml,sha256=cIYsNOSq2UPixsJTcDmyxR5Eq5bWFq4gt9FrlcNwQ2c,148
|
|
49
|
+
bash_classify/commands/gzip.yaml,sha256=3LoffJTwOd_eX0vbIUhYffOiN0A3My93FlbEyhqcsrI,153
|
|
50
|
+
bash_classify/commands/head.yaml,sha256=hGxQR8vNzWfb8pIwtsoEv041dAQ9W95M3ezvKAYE27I,147
|
|
51
|
+
bash_classify/commands/helm.yaml,sha256=b7ToIp7ZROpvMavgR5f2-TjWwb_pgJxNadUqQG-2fFY,2564
|
|
52
|
+
bash_classify/commands/hostname.yaml,sha256=AQakK9TvC_TpbCuuiqod2_tI0Ht7m7W1maP37eOiFS8,149
|
|
53
|
+
bash_classify/commands/id.yaml,sha256=fti3UJKUTpr6KkDJm-jGbJSZkcgtfV0jb4FaVZ55eKA,158
|
|
54
|
+
bash_classify/commands/install.yaml,sha256=UWcdBMrmkThBr9tdCIWqijZRjFtWsDshu2_mgLqkx4U,146
|
|
55
|
+
bash_classify/commands/join.yaml,sha256=vx6lCUPwSGE7x--6BUShHCxtubjnS_LigN5BthrYTxE,158
|
|
56
|
+
bash_classify/commands/journalctl.yaml,sha256=JI0s2uGWernZvUjoKwhaxbyoK6Nc9PgB-i1NiAxnNFE,425
|
|
57
|
+
bash_classify/commands/jq.yaml,sha256=JS4HZ4-XhU1_l-3JrT5H8vfwT2KP6FN1ZE1yOpn7QFU,142
|
|
58
|
+
bash_classify/commands/kill.yaml,sha256=R3Yv4wWeXKaNnp0IgzgDINbQOMO3DWhFkbsCBV-tUx0,143
|
|
59
|
+
bash_classify/commands/killall.yaml,sha256=77ZokaFkTtCB2jjSynqbXLOD4OqMtJwmVYtXnrH5J3o,143
|
|
60
|
+
bash_classify/commands/kubectl.yaml,sha256=7iQFvJ0ZK_jdRGg4AIThhKojZV1os6CmXv76Ja-frPE,4004
|
|
61
|
+
bash_classify/commands/less.yaml,sha256=zHlFOz6ACsgqxKOtHlwTxJlBElieuc-CE8eXC2qycKk,158
|
|
62
|
+
bash_classify/commands/ln.yaml,sha256=ZlY-e6MHwqkQyo8MvaMXhwzY-9HlSIORsq44onCWRX0,136
|
|
63
|
+
bash_classify/commands/ls.yaml,sha256=47ukvLexn0ccURat6LAt8i4TwT3EqXm1p8A31DWDkiw,138
|
|
64
|
+
bash_classify/commands/make.yaml,sha256=EBWJe-5YiathSfpNipS-zYutn0yXf951yyLtYc57kIY,602
|
|
65
|
+
bash_classify/commands/md5sum.yaml,sha256=klL5-HVeD7oU4LBHE_wQFtb9oBlvfe8HcSYCNevZp_k,155
|
|
66
|
+
bash_classify/commands/mkdir.yaml,sha256=3FbiKN2MTRp4nIMr8Wur47DWfndrRxilXuu7rtYWRcU,133
|
|
67
|
+
bash_classify/commands/more.yaml,sha256=qNuGmUKSJ35XO5Pgp4O5kc2ns8BjX3kASOn5LIidgt4,156
|
|
68
|
+
bash_classify/commands/mv.yaml,sha256=ofDIA8cxoa3o5NBMSPHvfXlP9PDuP5fDDMG1xjTIqKc,148
|
|
69
|
+
bash_classify/commands/netstat.yaml,sha256=ETse8B6tsDLFz8YbZkKXR_FPUkDhK5vD2y06li3wP6Y,160
|
|
70
|
+
bash_classify/commands/nice.yaml,sha256=80Y0mBF8CfUhGVMQnOdrhFKRSaKEoiFm_IGXOGPipvk,269
|
|
71
|
+
bash_classify/commands/nl.yaml,sha256=gFN0ZcdmTMnzUgHSDqY8Tjz4jx77k-gRDgBCf8TdpX0,136
|
|
72
|
+
bash_classify/commands/node.yaml,sha256=DD4Ix9cjzWo1Hju9pef1yOJFTuaPAt71QMLsTQ_bG-o,155
|
|
73
|
+
bash_classify/commands/nohup.yaml,sha256=S3vCrfW6fT-ucAL5gi_dCekAVczASULJK6pjTG_Ghrw,168
|
|
74
|
+
bash_classify/commands/npm.yaml,sha256=DHmoX86_n8NlKSEECzEZkvkZJnRiS6HjZjl7JOxygk4,1233
|
|
75
|
+
bash_classify/commands/nslookup.yaml,sha256=bnz3-TxGb_-xBHYeQsluaxlwmoS_GczNfnpCikp2Fqg,162
|
|
76
|
+
bash_classify/commands/paste.yaml,sha256=GbvnsV6m_qNL3hpXj91UrIkjr13dQzodoHt3toeCo4c,151
|
|
77
|
+
bash_classify/commands/ping.yaml,sha256=gDoe-z9gr_PpPj6M-h5q6ZRzHID6a_QMb078XOeAEhU,157
|
|
78
|
+
bash_classify/commands/pip.yaml,sha256=i-b2dnoM0NKw8j7NemfgIQqvDF5Lamf8TBZ3nh-NulU,575
|
|
79
|
+
bash_classify/commands/pip3.yaml,sha256=DqNbXe5WwND_Fiaib8821jnqYD2JRVcL7C1W6x0umKE,576
|
|
80
|
+
bash_classify/commands/pkill.yaml,sha256=SCQ372wktRVWvugE6e48q8NzyzPUxUVAeBTOxphgnPA,163
|
|
81
|
+
bash_classify/commands/poetry.yaml,sha256=iMOy2sTtM6qRGvnJ_d53UOazsxX-jPU0cqqWamPdNe8,1432
|
|
82
|
+
bash_classify/commands/printenv.yaml,sha256=MtjIPZAwqchso_fqTBUlEvI_Jnen3_5Eu2Ga3LQtI8Y,163
|
|
83
|
+
bash_classify/commands/printf.yaml,sha256=bE9iaJKbTzXbVeWs_WTUOXSlWh6sPHm7hbvsJ2yWYmc,140
|
|
84
|
+
bash_classify/commands/ps.yaml,sha256=PXJOmfu0uVpWFXXge-qZ7ogJZzsUsQ1S7iwZGsAdpTk,153
|
|
85
|
+
bash_classify/commands/pwd.yaml,sha256=gUykLHxYauAckcTltMoLUYJgnJk5HfhdmSkmdPjPSZw,155
|
|
86
|
+
bash_classify/commands/python.yaml,sha256=GTDMu50KrPaQd5Cq0_PNwiRAwAnOm2Ui-FN_tGgL8qM,147
|
|
87
|
+
bash_classify/commands/python3.yaml,sha256=lmKlID85zFAvbW77YtJqNdKzsCbc7oiu3j8JxtySuzo,150
|
|
88
|
+
bash_classify/commands/read.yaml,sha256=iD_C7R-jFweaZzrhRRFVIvcOYhYa6mJgCzJPtbq6Yhk,148
|
|
89
|
+
bash_classify/commands/readlink.yaml,sha256=pYCiy4D2q5yb3QzAWycvz5aqpIQrwXhaFP5J8lbmlLs,169
|
|
90
|
+
bash_classify/commands/realpath.yaml,sha256=q0jB5ZdeVL0cHcxVZBpV0DPsrCHcpCMV0Ome3LsYAj0,153
|
|
91
|
+
bash_classify/commands/rev.yaml,sha256=q9-bSILNgE_kRzEfZvavcyXsKutaNwLJGSfn8BZrCjc,144
|
|
92
|
+
bash_classify/commands/rm.yaml,sha256=FPMc0kTZ777vFgYuvetzLQslAye_6UHBxfiBPABzXvk,143
|
|
93
|
+
bash_classify/commands/rsync.yaml,sha256=-e0A3-olhhp1bj4yc5nmfx0v3fRBbO19krW6RYzwKgA,307
|
|
94
|
+
bash_classify/commands/scp.yaml,sha256=B_Ez9F5CdSeoR-Woynbran8uFNrqfjRCwhu3uD0P0zk,144
|
|
95
|
+
bash_classify/commands/sed.yaml,sha256=oXlS1ATD8hQ703U-StVYCOQUAhcbKgtR63DhK2Pj-P8,395
|
|
96
|
+
bash_classify/commands/seq.yaml,sha256=uNVRyOBLsg_txm90hWbt5rIC1v2abEq556g_GZs0AV0,143
|
|
97
|
+
bash_classify/commands/sh.yaml,sha256=0JHy2w5wMi2qcC6yt7JKx_Sx3MW5yxKIK39hy0w1HeU,257
|
|
98
|
+
bash_classify/commands/sha1sum.yaml,sha256=w7c7BuiOsiXRx2mmkskXWck-se_aP1cC6AtqMSpx3c8,158
|
|
99
|
+
bash_classify/commands/sha256sum.yaml,sha256=rmP5JdkiVn7KiA_lfg7-ukWDB7ngsXdC1vUYUbUBQpg,162
|
|
100
|
+
bash_classify/commands/sort.yaml,sha256=iAQfP9CSMGzkOymC3Bnw7RgqT26kcVLfAJuqwnFKLas,259
|
|
101
|
+
bash_classify/commands/ss.yaml,sha256=LGR6oGZdAVBUNQSZF-Zm20XXx2xsEsgtvReTDT614sI,145
|
|
102
|
+
bash_classify/commands/ssh.yaml,sha256=qL0IGIUpJqQChXyEHwdWOShCUavT9EJCZsttwUI3O50,705
|
|
103
|
+
bash_classify/commands/stat.yaml,sha256=2y8mwLhM4T1pPturW-YhQTgJmO4_MCQtC2wxdiunzQk,151
|
|
104
|
+
bash_classify/commands/strace.yaml,sha256=k12sibDb9oY55K8Hl4j-d8eTfF_maN0Hq8L6FSTI4hs,346
|
|
105
|
+
bash_classify/commands/sudo.yaml,sha256=a8RzIzbnS4XiPvt3HFgIRfiMSYUlDOoB3rwvoyTOjAE,502
|
|
106
|
+
bash_classify/commands/systemctl.yaml,sha256=5KDMTNtBGoJN5yqPhrrFZ24lcEWGclfRgSfZ9s7L_Kk,1199
|
|
107
|
+
bash_classify/commands/tac.yaml,sha256=D5v8E1ucwHgDLHnZUE6OxsRQkwqJQsrnDfzynOmULdk,154
|
|
108
|
+
bash_classify/commands/tail.yaml,sha256=AyaLkUjdUj6bYbu-to4t-MQ1_mNDzl4g4IooUU2vwpk,146
|
|
109
|
+
bash_classify/commands/tar.yaml,sha256=19QSxyjOJQKww4btS22xOipNbN0dr4PXlFGmqTIpO2o,632
|
|
110
|
+
bash_classify/commands/tee.yaml,sha256=CdpgWiwTHpwxvEEZGudiq9FoehKkuboVNCSx7P5PNLo,158
|
|
111
|
+
bash_classify/commands/terraform.yaml,sha256=KLNSxJ-xTcw2pqfRFDZ7fsFYhvpVZDJWp-WNC5yJULc,1437
|
|
112
|
+
bash_classify/commands/test.yaml,sha256=OpAP8AbpBgIwJrfF-LWRJlOoRFyLM1Vi5zd2kdzhJ50,149
|
|
113
|
+
bash_classify/commands/time.yaml,sha256=r-b57UsX-OtI9255uDGRyMu7JRvzWSXL3NUSppjV5j8,163
|
|
114
|
+
bash_classify/commands/timeout.yaml,sha256=G_VW_7h8-JhZb73MG0tnWUOQEWvhLjsaX-_fhv0DFBA,400
|
|
115
|
+
bash_classify/commands/top.yaml,sha256=8x2h6E2ewBR6WahQ3TSFMRrHLe1bNZ_TADnO8JFSenE,152
|
|
116
|
+
bash_classify/commands/touch.yaml,sha256=j0ptg3NCsXNZxL60MPSnzbq5XGi0pDg8TBJ9XkeV7ZQ,159
|
|
117
|
+
bash_classify/commands/tr.yaml,sha256=4aOQVtMlqurTGdiJCtSsXLy1lE_lq8lSbXHLzcOJ2VM,145
|
|
118
|
+
bash_classify/commands/traceroute.yaml,sha256=jOzrNAhElj4XgGB8SYHcPwMzgHKLYmKSredhd_EsfKI,161
|
|
119
|
+
bash_classify/commands/true.yaml,sha256=TiJqirJ5RS7x1a8YSJtwwsIPzTfBnNjjBLrFLJxvj5I,150
|
|
120
|
+
bash_classify/commands/type.yaml,sha256=O080wKymRzy5K3J6eEN8ed72vwGn1D-P-EFb2P_Cuuk,155
|
|
121
|
+
bash_classify/commands/uname.yaml,sha256=uUWrQ_Em3aaWgR-zRR6hfn32I6PpnlbpCxJOdMyviI4,142
|
|
122
|
+
bash_classify/commands/unexpand.yaml,sha256=12bnas9BKfsmph6OOK-bptFgSfgVSPCXge-felQMvX4,143
|
|
123
|
+
bash_classify/commands/uniq.yaml,sha256=w0HylAk_nYRJXt2Pa_yj4C-KwmYHYGG9hyO7wjUOlr8,146
|
|
124
|
+
bash_classify/commands/unzip.yaml,sha256=_8KkTNwLvzbX-YgevMq154NC1twuv6jEbjlg6hkRjCU,183
|
|
125
|
+
bash_classify/commands/uptime.yaml,sha256=awMq8KjV5ad9UtqJyjWlGo1if08MyjoGjZrJ8BtKNHQ,160
|
|
126
|
+
bash_classify/commands/uv.yaml,sha256=rvfZLZ7IqBqH0heF-qDUC-BJ4LlH7WL673Qv9pr_dX4,2352
|
|
127
|
+
bash_classify/commands/wc.yaml,sha256=i4ui8-ooDNz-oPxUUHPxy13KkJKj8rF-cH51W1JSCyY,161
|
|
128
|
+
bash_classify/commands/wget.yaml,sha256=cDwYwcj1gSj7uvJb-CmIGuQn-7xNyFXU7POlB6A9Nag,153
|
|
129
|
+
bash_classify/commands/whereis.yaml,sha256=0xKBS_F4VRR9wMaRxkgMF8ENzSAnUiI6_40u4tHbnfA,176
|
|
130
|
+
bash_classify/commands/which.yaml,sha256=PH7psTXicFDAa8G_tfyH83RtGSVievFTHxatrA4O8AQ,146
|
|
131
|
+
bash_classify/commands/whoami.yaml,sha256=7jq7Xey2g1SDMIOPtU4JBN3R8DcvM1ZjPttSjCKXs74,144
|
|
132
|
+
bash_classify/commands/xargs.yaml,sha256=OC-OwE6Pl91kKTeH6arWRaSO5dXdGoZuxnN_xIUQbIw,686
|
|
133
|
+
bash_classify/commands/xmllint.yaml,sha256=v5kddm9uPEUKTGbyY047gFF1GnKxhFoc8KreEdO5Y-0,146
|
|
134
|
+
bash_classify/commands/yes.yaml,sha256=Ym1dYDH8tw7vPnJ5dmDapOgO1E9Y1ZT9MAYrZU3_-dI,157
|
|
135
|
+
bash_classify/commands/yq.yaml,sha256=FBbsBH_cGAvLlxXRX-3ew32mgUyUjQ9UaI_GXY4_Wjc,223
|
|
136
|
+
bash_classify/commands/zip.yaml,sha256=gjBMl6-YYztJo36EGRkMF35sSUeA6Cwl1OmTY8vraQM,157
|
|
137
|
+
bash_classify/commands/zsh.yaml,sha256=Pq7YePhL77WkHOTC9E0UT5TKxYki5aKBB8hveteQufg,250
|
|
138
|
+
bash_classify-0.1.0.dist-info/METADATA,sha256=tk_Va6bCSQR0R-nmgXNV4scgVRmJANnQL4ObewE_buA,4891
|
|
139
|
+
bash_classify-0.1.0.dist-info/WHEEL,sha256=QccIxa26bgl1E6uMy58deGWi-0aeIkkangHcxk2kWfw,87
|
|
140
|
+
bash_classify-0.1.0.dist-info/entry_points.txt,sha256=xwnTNVBmuCxcSb9UVnvOFnBqwnVXe2CEckmTHvMwbMA,57
|
|
141
|
+
bash_classify-0.1.0.dist-info/licenses/LICENSE,sha256=eZtnvSqyJJ3SWkPFtKXbev_9_sAgaazbPcSgLAyW9vo,1072
|
|
142
|
+
bash_classify-0.1.0.dist-info/RECORD,,
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2025 Filip Prochazka
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|