Installable cli helpers
Project description
Bashers
CLI command helpers (Rust). Install: cargo install bashers. Both bashers and bs go to ~/.cargo/bin; ensure it’s in PATH before pyenv/shims.
Install from PyPI: pip install bashers (or pip install --upgrade bashers to get the latest). PyPI wheels are built for Python 3.11, 3.12, and 3.13; if you’re on 3.13 and see an old version, a 3.13 wheel may not have been published yet for that release—use the next release or cargo install bashers / install from repo.
Install from repo: ./scripts/install.sh (or curl -sSf https://raw.githubusercontent.com/Sung96kim/bashers/main/scripts/install.sh | sh). Use --no-path to skip profile changes.
Usage
bashers update # update deps (fuzzy match optional)
bashers setup # install deps (--frozen, --rm, --dry-run)
bashers show # list packages
bashers git sync # checkout default, pull, fetch (--current = current branch only); bs sync works
bashers kube kmg <pattern> # pod describe + Image lines
bashers kube track <pattern> # follow logs (--err-only, --simple)
bashers docker build [ -f <path> ] # build from Dockerfile (default: ./Dockerfile; -t tag, --no-cache, -c context); bs build works
bashers watch -n 2 -- <cmd> # run command repeatedly, highlight changes (-n interval, --no-diff)
bashers self update # upgrade bashers
bashers version
| Command | Description |
|---|---|
| update | Update deps (uv/poetry), fuzzy match |
| setup | Install project deps |
| show | List installed packages |
| git | sync (default branch or --current) |
| kube | kmg, track |
| docker | build (optional Dockerfile path [default: ./Dockerfile], tag, no-cache, context) |
| watch | Run command on an interval, diff highlight (green = changed) |
| self | update |
| version | Print version |
bashers <cmd> --help for options.
Features
Fuzzy package matching, fzf when multiple matches, uv & poetry, color output, dry-run.
Development
Build: cargo build / cargo build --release
Test: cargo test (unit: cargo test --lib; one test: cargo test test_fuzzy_match_exact)
Quality: cargo fmt · cargo clippy · cargo fmt --check · cargo clippy -- -D warnings
Run: cargo run --quiet -- <cmd> or ./target/debug/bashers <cmd>. Optional: NO_SPINNER=1 to disable spinner.
Coverage: cargo install cargo-tarpaulin --locked then cargo tarpaulin --out Xml --output-dir coverage --timeout 120
Python wheel (build and test locally): Install maturin (pip install maturin). From the repo root: maturin build --release --features pyo3. Wheels are written to target/wheels/. Install with a matching Python (e.g. 3.13): python3 -m pip install --force-reinstall target/wheels/bashers-*-cp313-*.whl. Run bashers --help or bashers version to confirm.
New command: Add module under src/commands/ (or src/commands/<group>/), add variant in src/cli.rs, wire in src/lib.rs, then cargo build. When adding or changing any CLI command, update the Usage section and the Command table above.
Releasing
Releases are automated with release-plz on push to main. Use Conventional Commits: feat: (minor), fix: (patch), feat!: or BREAKING CHANGE: (major). Push to main → version/changelog PR, merge → publish to crates.io and GitHub Release. The tag and GitHub Release are created in the workflow run triggered by the merge (not the run that opened the PR). Set CARGO_REGISTRY_TOKEN if publishing to crates.io. First time: run cargo publish once so release-plz knows the current version.
Manual: bump version in Cargo.toml, tag vX.Y.Z, push tag; workflow builds and creates the GitHub Release.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file bashers-0.8.6.tar.gz.
File metadata
- Download URL: bashers-0.8.6.tar.gz
- Upload date:
- Size: 67.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c80f137e3bb7d984f2809103497f2fcaa5a1f466eb2c41ef774717b555d90a9c
|
|
| MD5 |
e286da34b013df63a9b0b38d253571d2
|
|
| BLAKE2b-256 |
6fd410e52b8b5c6e3e7cd34fa0808cd8bf4e796f9ed2809e4b7a9d5c34bcbcfc
|
File details
Details for the file bashers-0.8.6-cp313-cp313-manylinux_2_39_x86_64.whl.
File metadata
- Download URL: bashers-0.8.6-cp313-cp313-manylinux_2_39_x86_64.whl
- Upload date:
- Size: 1.8 MB
- Tags: CPython 3.13, manylinux: glibc 2.39+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f633d087b9f311b2f7ac49b15aa40ad780c224537ff0d0260636a94736a76fda
|
|
| MD5 |
f35b1fb75e038a16387d1b049a922356
|
|
| BLAKE2b-256 |
883789b9cdf5548c14566b286ef8e60a152ede8a089ad302a8fb9f95c0eaca44
|
File details
Details for the file bashers-0.8.6-cp312-cp312-manylinux_2_39_x86_64.whl.
File metadata
- Download URL: bashers-0.8.6-cp312-cp312-manylinux_2_39_x86_64.whl
- Upload date:
- Size: 1.8 MB
- Tags: CPython 3.12, manylinux: glibc 2.39+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8d8267071ef2a543dd41f9862d991985c95a338d413375b3445eb4afc49c1384
|
|
| MD5 |
6f99ef2e9680d6e9566e06d3dc183e11
|
|
| BLAKE2b-256 |
a6813d965be3c95d19db6fe36162316aea41ca0fd2d45677dc5fd09fef954dba
|
File details
Details for the file bashers-0.8.6-cp311-cp311-manylinux_2_39_x86_64.whl.
File metadata
- Download URL: bashers-0.8.6-cp311-cp311-manylinux_2_39_x86_64.whl
- Upload date:
- Size: 1.8 MB
- Tags: CPython 3.11, manylinux: glibc 2.39+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f173aea410d9ea345d28821349876867cab7197369efeb891b0c6e2d4e36e439
|
|
| MD5 |
4a443ba873b1af71639e7f57f99f38f8
|
|
| BLAKE2b-256 |
a2333a53429a96f6b636cfe7971aba72b140a289354ef8a52fc3dacbc149b951
|
File details
Details for the file bashers-0.8.6-cp310-cp310-manylinux_2_39_x86_64.whl.
File metadata
- Download URL: bashers-0.8.6-cp310-cp310-manylinux_2_39_x86_64.whl
- Upload date:
- Size: 1.8 MB
- Tags: CPython 3.10, manylinux: glibc 2.39+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0890546cd8ed50d806b1281c266971e50d63cfe3396668d4fcd5dbdef74fe5b8
|
|
| MD5 |
0de672efb9a603ea165841182cc1bac9
|
|
| BLAKE2b-256 |
c854a156071fde2d6e03ffe855d2878dca59d05c65ac3befa9c69328d055c5c2
|