Skip to main content

Bashers

CLI command helpers in Rust. Install as bashers or bs; both binaries go to the same place.

Installation

  • Cargo: cargo install bashers
    Puts bashers and bs in ~/.cargo/bin. Ensure that directory is in PATH (and before pyenv/shims if you use pyenv).

  • PyPI: pip install bashers or pip install --upgrade bashers
    Wheels for Python 3.11, 3.12, 3.13. If you're on 3.13 and see an old version, a 3.13 wheel may not exist yet—use the next release, or install from Cargo/repo.

  • 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                    # deps (optional packages; fuzzy match; -v verbose, -y auto-select)
bashers update -v pkg1 pkg2       # selected packages, show tool output at end
bashers setup                     # install deps (--frozen, --rm, --dry-run)
bashers show                      # list packages
bashers git sync                  # default branch, pull, fetch (--current = current branch only)
bashers kube kmg <pattern>        # pod describe + Image lines
bashers kube track <pattern>      # follow logs (--err-only, --simple)
bashers docker build [-f <path>]  # Dockerfile (default ./Dockerfile; -t tag, --no-cache, -c context)
bashers watch -n 2 -- <cmd>       # run repeatedly, highlight changes (-n interval, --no-diff)
bashers self update               # upgrade bashers
bashers version

bs works as an alias for bashers (e.g. bs sync, bs build). Run bashers <cmd> --help for options.

Commands

Command Description
update Deps (cargo/uv/poetry). Optional package names (fuzzy match, multi-select). -v show tool output at end, -y auto-select.
setup Install project deps.
show List installed packages.
git sync (default branch or --current).
kube kmg, track.
docker build (optional Dockerfile path, tag, no-cache, context).
watch Run on an interval, diff highlight (green = changed).
self update.
version Print version.

Features

  • Fuzzy package matching; multi-select when multiple matches
  • cargo, uv & poetry
  • Color output, dry-run

Development

Build & test

cargo build
cargo build --release
cargo test

Run a single test: cargo test test_fuzzy_match_exact

Code quality

cargo fmt
cargo clippy -- -D warnings

Running locally

Method Command
Via cargo cargo run --quiet -- <cmd>
Binary ./target/debug/bashers <cmd>
No install (script) ./scripts/local.sh <cmd>

Set NO_SPINNER=1 to disable the spinner.

Scripts (no install)

  • ./scripts/local.sh <cmd> — Runs the repo binary via cargo run --bin bashers. Example: ./scripts/local.sh update.
  • ./scripts/setup-local.sh — Runs cargo check, cargo build, cargo test, then reminds you to use ./scripts/local.sh.

Coverage

cargo install cargo-tarpaulin --locked
cargo tarpaulin --out Xml --output-dir coverage --timeout 120

Python wheel (build & test)

  1. Install maturin: pip install maturin

  2. From repo root, build: maturin build --release --features pyo3
    Wheels are written to target/wheels/.

  3. Install with a matching Python (e.g. 3.13):

    python3 -m pip install --force-reinstall target/wheels/bashers-*-cp313-*.whl
    
  4. Confirm: bashers --help or bashers version

Adding a new command

  1. Add a module under src/commands/ (or src/commands/<group>/).
  2. Add the variant in src/cli.rs and wire it in src/lib.rs.
  3. Run cargo build.
  4. Update the Usage section and Commands table in this README.

Releasing

Automated (release-plz): On push to main, use Conventional Commits: feat: (minor), fix: (patch), feat!: or BREAKING CHANGE: (major). Push → 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. Set CARGO_REGISTRY_TOKEN for 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.

Metadata

Release files for bashers 0.8.8

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for bashers 0.8.8
File Size Uploaded Provenance
bashers-0.8.8.tar.gz 62.8 kB Without provenance Details

Built distributions (wheels)

Table of built distributions (wheels) for bashers 0.8.8
File
bashers-0.8.8-cp313-cp313-manylinux_2_39_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.39+ x86-64 Details
bashers-0.8.8-cp312-cp312-manylinux_2_39_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.39+ x86-64 Details
bashers-0.8.8-cp311-cp311-manylinux_2_39_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.39+ x86-64 Details
bashers-0.8.8-cp310-cp310-manylinux_2_39_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.39+ x86-64 Details

Total release size: 7.7 MB

Release files / bashers-0.8.8.tar.gz

Download URL bashers-0.8.8.tar.gz
Size 62.8 kB
Tags Source
SHA-256 checksum
How to use checksums
aff2ea4b1e6774aec1495aa4056f0fe703b3935ac2603deb912b13ef8b575374
BLAKE2b-256 checksum
How to use checksums
7ce34e0abdcf1326237e45b64cec7c25ee08339bab88eb3c05f9b67690a7e657
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Release files / bashers-0.8.8-cp313-cp313-manylinux_2_39_x86_64.whl

Download URL bashers-0.8.8-cp313-cp313-manylinux_2_39_x86_64.whl
Size 1.9 MB
Tags CPython 3.13 Linux glibc 2.39+ x86-64
SHA-256 checksum
How to use checksums
a65eef62c1d1e8664681ea44dcd7c564c308361bf752ec06349dc2636fc3d702
BLAKE2b-256 checksum
How to use checksums
e4ee2e7dc07a47fc8cdba3ed16ac11d8ab57e9089fa34b6b94cb4249e6a3b572
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Release files / bashers-0.8.8-cp312-cp312-manylinux_2_39_x86_64.whl

Download URL bashers-0.8.8-cp312-cp312-manylinux_2_39_x86_64.whl
Size 1.9 MB
Tags CPython 3.12 Linux glibc 2.39+ x86-64
SHA-256 checksum
How to use checksums
263f3577ef77d2f6dab72cbc88fe17344059cf0fda12037692a29f452178313e
BLAKE2b-256 checksum
How to use checksums
a2ed9ddfac3731d45054c3247360330f9b40623adf06bf959c0297198896b091
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Release files / bashers-0.8.8-cp311-cp311-manylinux_2_39_x86_64.whl

Download URL bashers-0.8.8-cp311-cp311-manylinux_2_39_x86_64.whl
Size 1.9 MB
Tags CPython 3.11 Linux glibc 2.39+ x86-64
SHA-256 checksum
How to use checksums
7486d0af01a01ac725bd63793c46128974bd63988b94d7680f487c7db4666256
BLAKE2b-256 checksum
How to use checksums
57542ae11a03fb638704720ef3167c0815b69ecac011a73306a1eb2f7621333d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Release files / bashers-0.8.8-cp310-cp310-manylinux_2_39_x86_64.whl

Download URL bashers-0.8.8-cp310-cp310-manylinux_2_39_x86_64.whl
Size 1.9 MB
Tags CPython 3.10 Linux glibc 2.39+ x86-64
SHA-256 checksum
How to use checksums
1ba02e2005bea7d63400702a1bf8a5574c58e7545e8700463f61051e216dddd8
BLAKE2b-256 checksum
How to use checksums
b98fc6de3b274721dd2b7081d09eb0141c25d8db88faf210a1821aed390a2283
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Security for bashers 0.8.8

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page