🛠️ Development Tools¶
This repository includes Task and mise for streamlined development.
Task Runner¶
Task provides convenient commands for common operations:
# List all available tasks
task --list
# Install all dependencies (mise, go-task, Python packages)
task install:all
# Run all validation checks (required before commit)
task validate:all
# Run specific validations
task validate:chezmoi # Validate Chezmoi config
task validate:shell # Validate shell scripts
task validate:fish # Validate Fish config
# Run tests
task test:all # All tests
task test:chezmoi-apply # Test Chezmoi apply
# Chezmoi operations
task chezmoi:init # Preview changes (dry-run)
task chezmoi:diff # Show differences
task chezmoi:verify # Verify applied files
# Development setup
task dev:setup # Complete dev environment setup
# CI tasks
task ci:validate # Run CI validation pipeline
Mise (Tool Version Manager)¶
Mise manages tool versions defined in
.mise.toml:
# Install mise-managed tools
mise install
# Show installed tools
mise list
# Upgrade all tools
mise upgrade
# Check mise configuration
mise doctor
Full-mode installations automatically install both Task and mise. Light mode installs only mise.
Pre-commit Hooks (Lefthook)¶
This repository uses lefthook for code quality checks:
# Install development tools (lefthook, shellcheck, shfmt, ...) via mise
mise install
# Setup lefthook git hooks (from repository root)
home/.chezmoiscripts/linux/run_once_setup-lefthook.sh
# Run manually on all files
lefthook run pre-commit --all-files
Hooks run automatically on git commit. The checks include:
- 🐚 Shell script linting (
shellcheck) - 🎨 Shell script formatting (
shfmt) - 🔧 Executable bit enforcement on shell scripts
These scripts and hooks are also used in the GitHub Actions CI pipeline to ensure quality.