sofka 0.4.0

A Kubernetes TUI, reimagined in Rust
set unstable
set shell := ["bash", "-eu", "-o", "pipefail", "-c"]

mod nix '.just/nix.just'
mod release '.just/release.just'
mod rust '.just/rust.just'

default:
    @just --list

# Install local git hooks.
hooks:
    lefthook install

# Format Rust sources.
fmt: rust::fmt

# Check Rust formatting without changing files.
fmt-check: rust::fmt-check

# Run clippy with the same policy as CI.
clippy: rust::clippy

# Run the unit test suite.
test: rust::test

# Fast local confidence check.
check: fmt-check clippy test

# Build the debug binary.
build: rust::build

# Build the release binary.
build-release: rust::build-release

# Run sofka against the current kube context.
run resource="pods":
    just rust run {{ resource }}

# Headless cluster connectivity check.
smoke: rust::smoke

# Render one headless UI snapshot.
snapshot resource="pods":
    just rust snapshot {{ resource }}

# Run Nix's flake checks.
nix-check: nix::check

# Build the Nix package.
nix-build: nix::build

# Build and smoke-test the Nix package.
nix-smoke: nix::smoke

# Release a patch version.
release-patch: release::patch

# Release a minor version.
release-minor: release::minor

# Release a major version.
release-major: release::major