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 Distribution

bashers-0.8.5.tar.gz (63.2 kB view details)

Uploaded Source

Built Distributions

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

bashers-0.8.5-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.5-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.5-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.5-cp310-cp310-manylinux_2_39_x86_64.whl (15.8 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.39+ x86-64

File details

Details for the file bashers-0.8.5.tar.gz.

File metadata

  • Download URL: bashers-0.8.5.tar.gz
  • Upload date:
  • Size: 63.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for bashers-0.8.5.tar.gz
Algorithm Hash digest
SHA256 a4034cd932cb155fa0a01e785ccfea8908eeead651db13bb4b0f8c3a97186b2f
MD5 027c95b0b44cf277fbd6030e5e0115e4
BLAKE2b-256 87949a331e5e616e6e54109f017d7acac7c3abec226d200e06eab572aeebbcf8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for bashers-0.8.5-cp313-cp313-manylinux_2_39_x86_64.whl
Algorithm Hash digest
SHA256 6749379cb3d7972eee9e45e590edaae0871f3c5cfa18dbbd5cc383eb7b7688cb
MD5 e94189b85cb0d33025b34d53b33ea4a9
BLAKE2b-256 80144b46ab8b69e0cd428cc8c07b4308645fe1340250755bad9014f4643b0e93

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for bashers-0.8.5-cp312-cp312-manylinux_2_39_x86_64.whl
Algorithm Hash digest
SHA256 fa884e365ac9edffaa7a0c0c36137ca9a446c534dd8c17f32f639e81dde5dab3
MD5 542093f6d1e65dcfe93f9a6f9a5c48c8
BLAKE2b-256 0347bac7b7004436b043bb8ab0f1adfdfc67963987deaa3aa9b98659bf0005f3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for bashers-0.8.5-cp311-cp311-manylinux_2_39_x86_64.whl
Algorithm Hash digest
SHA256 bcd3225a820f88356b0087e1ca693a24578849255f66c3e47fd7a22269def8d7
MD5 53aff6011a74eae16cf74b291550311d
BLAKE2b-256 1c6acd1cdf0cc791bd182c9a22e61fad3340185f7f85a47592a4af0fbd8c6498

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for bashers-0.8.5-cp310-cp310-manylinux_2_39_x86_64.whl
Algorithm Hash digest
SHA256 c85494d17aec6d5f6ecb3bf97311690c712059c0861a07d7d14cfac05dfa38f1
MD5 9d45fb4e8a2dee6958ee5aa2bb66d4d4
BLAKE2b-256 eaf19ec6cc6864038af863e62d83b9ecdad8ef81e2717fecb7af6720c5c60070

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