Skip to main content

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

bashers-0.8.3-cp313-cp313-manylinux_2_39_x86_64.whl (1.8 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.39+ x86-64

bashers-0.8.3-cp312-cp312-manylinux_2_39_x86_64.whl (1.8 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.39+ x86-64

bashers-0.8.3-cp311-cp311-manylinux_2_39_x86_64.whl (1.8 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.39+ x86-64

bashers-0.8.3-cp310-cp310-manylinux_2_39_x86_64.whl (1.8 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.39+ x86-64

File details

Details for the file bashers-0.8.3-cp313-cp313-manylinux_2_39_x86_64.whl.

File metadata

File hashes

Hashes for bashers-0.8.3-cp313-cp313-manylinux_2_39_x86_64.whl
Algorithm Hash digest
SHA256 e31c0cc49cc2077ffccfadee780850df629c19b31f6d20033bc2a462bc44944f
MD5 a33269250000683178094962c526aa20
BLAKE2b-256 447b583b2a41809b7df760efed2e09d5a68fd69d996de9939d175625a1f30a8c

See more details on using hashes here.

File details

Details for the file bashers-0.8.3-cp312-cp312-manylinux_2_39_x86_64.whl.

File metadata

File hashes

Hashes for bashers-0.8.3-cp312-cp312-manylinux_2_39_x86_64.whl
Algorithm Hash digest
SHA256 94d00b1f483390eb30bff0e6210b4436e3d2fbf8ac3fd5578e3e9625b0a502f9
MD5 5cc3b09e44b7295324a5e3ce79b78b06
BLAKE2b-256 4ef3dbd788360c0f45d217ff4f7989a881b370714d38050c38424df2cf3d974f

See more details on using hashes here.

File details

Details for the file bashers-0.8.3-cp311-cp311-manylinux_2_39_x86_64.whl.

File metadata

File hashes

Hashes for bashers-0.8.3-cp311-cp311-manylinux_2_39_x86_64.whl
Algorithm Hash digest
SHA256 e242aa4d2e59b24c9c3a10911e76b43d1a36570b87b2b1ec331d984cf0e5a5f6
MD5 470aad1b2292951383fa5eb200f1bda2
BLAKE2b-256 8a61287bc03d55820f2e3023a06c71a3b2ef0413aec31d62fe3c7c80583d5941

See more details on using hashes here.

File details

Details for the file bashers-0.8.3-cp310-cp310-manylinux_2_39_x86_64.whl.

File metadata

File hashes

Hashes for bashers-0.8.3-cp310-cp310-manylinux_2_39_x86_64.whl
Algorithm Hash digest
SHA256 a0e1cf5e45b4c58ef05b37a915aa3c073dae89cc03b63b55ff6ba88d469b47f0
MD5 eae1b0d64ae8c3234c6ec7407b8f2423
BLAKE2b-256 208820a1c64f54c15a73e361a3f43547239b76450af734056bd5fb21724387de

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page