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.6.tar.gz (67.3 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.6-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.6-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.6-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.6-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.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

Hashes for bashers-0.8.6.tar.gz
Algorithm Hash digest
SHA256 c80f137e3bb7d984f2809103497f2fcaa5a1f466eb2c41ef774717b555d90a9c
MD5 e286da34b013df63a9b0b38d253571d2
BLAKE2b-256 6fd410e52b8b5c6e3e7cd34fa0808cd8bf4e796f9ed2809e4b7a9d5c34bcbcfc

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for bashers-0.8.6-cp313-cp313-manylinux_2_39_x86_64.whl
Algorithm Hash digest
SHA256 f633d087b9f311b2f7ac49b15aa40ad780c224537ff0d0260636a94736a76fda
MD5 f35b1fb75e038a16387d1b049a922356
BLAKE2b-256 883789b9cdf5548c14566b286ef8e60a152ede8a089ad302a8fb9f95c0eaca44

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for bashers-0.8.6-cp312-cp312-manylinux_2_39_x86_64.whl
Algorithm Hash digest
SHA256 8d8267071ef2a543dd41f9862d991985c95a338d413375b3445eb4afc49c1384
MD5 6f99ef2e9680d6e9566e06d3dc183e11
BLAKE2b-256 a6813d965be3c95d19db6fe36162316aea41ca0fd2d45677dc5fd09fef954dba

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for bashers-0.8.6-cp311-cp311-manylinux_2_39_x86_64.whl
Algorithm Hash digest
SHA256 f173aea410d9ea345d28821349876867cab7197369efeb891b0c6e2d4e36e439
MD5 4a443ba873b1af71639e7f57f99f38f8
BLAKE2b-256 a2333a53429a96f6b636cfe7971aba72b140a289354ef8a52fc3dacbc149b951

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for bashers-0.8.6-cp310-cp310-manylinux_2_39_x86_64.whl
Algorithm Hash digest
SHA256 0890546cd8ed50d806b1281c266971e50d63cfe3396668d4fcd5dbdef74fe5b8
MD5 0de672efb9a603ea165841182cc1bac9
BLAKE2b-256 c854a156071fde2d6e03ffe855d2878dca59d05c65ac3befa9c69328d055c5c2

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