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.7.tar.gz (59.5 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.7-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.7-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.7-cp311-cp311-manylinux_2_39_x86_64.whl (1.9 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.39+ x86-64

bashers-0.8.7-cp310-cp310-manylinux_2_39_x86_64.whl (1.9 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.39+ x86-64

File details

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

File metadata

  • Download URL: bashers-0.8.7.tar.gz
  • Upload date:
  • Size: 59.5 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.7.tar.gz
Algorithm Hash digest
SHA256 6f63a4f04e481a57dc3bc72863e6241681619178e043533d2217da95d6e21889
MD5 8cc26b63371b911d5f45b20d63f2e9ca
BLAKE2b-256 77a2b763c9692e0ea6b234de6a6ddbf8afab5d0cb73d9e35f83aafcfad222064

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for bashers-0.8.7-cp313-cp313-manylinux_2_39_x86_64.whl
Algorithm Hash digest
SHA256 1e78a1dbe7e4e756431be1d1f504bb9eb5b6e21de4c32ad1e25defcd12d25c8f
MD5 affd006108bcfc3318c7d29b51a81b7b
BLAKE2b-256 0bf9a87e177bf060e28daa84f8850761a80b3ca84b1fc0620c367fe6e2c75fbc

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for bashers-0.8.7-cp312-cp312-manylinux_2_39_x86_64.whl
Algorithm Hash digest
SHA256 eae97d880533be0d49dc902354093bcc08d0a56438ad0f86054f96eb8386c338
MD5 a121a4cf484b4ed006c9ca487ce9f2ed
BLAKE2b-256 234c4c4add464af959e135e4542720f5d4265e1f4da9fd4b6f2f6d4e9e5ac937

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for bashers-0.8.7-cp311-cp311-manylinux_2_39_x86_64.whl
Algorithm Hash digest
SHA256 0d2864cfcb1ff809daa6ccfa08be3dd5183786609dc34c3a38b358d2e3ee6b12
MD5 784df4d23a7bdcc77d10b1374ba9db09
BLAKE2b-256 cb8e07691328af27d4756fb5cee79a0b22af1dd96105f30335e32bf1b83aa3a5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for bashers-0.8.7-cp310-cp310-manylinux_2_39_x86_64.whl
Algorithm Hash digest
SHA256 8366e3a49a25f9b5b560db58d4d929f0eda8813a63800c05e5279b305992826d
MD5 33dd5cbb8a1741c9a7b53667907c7612
BLAKE2b-256 49c5224821696dbdf61dd2222d4f3b4129bc6c7ee90ff4bc7c1f2dfc18d3971c

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