mirror of
https://github.com/ivuorinen/dotfiles.git
synced 2026-03-05 23:01:15 +00:00
122 lines
3.4 KiB
Markdown
122 lines
3.4 KiB
Markdown
# Essential Commands for .dotfiles Development
|
|
|
|
## Installation & Setup
|
|
|
|
```bash
|
|
# Initial setup - install linting tools and dependencies
|
|
yarn install
|
|
|
|
# Install/update all dotfiles configurations
|
|
./install
|
|
|
|
# Update git submodules (multiple approaches)
|
|
git submodule update --remote --merge
|
|
git submodule update --init --recursive --force
|
|
bash add-submodules.sh
|
|
```
|
|
|
|
## Development Commands
|
|
|
|
```bash
|
|
# Linting (run all linters - ALWAYS fix all issues)
|
|
yarn lint
|
|
|
|
# Individual linting commands
|
|
yarn lint:markdown # Markdownlint
|
|
yarn lint:prettier # Prettier check
|
|
yarn lint:ec # EditorConfig checker
|
|
|
|
# Auto-fixing (use these BEFORE manual linting)
|
|
yarn fix # Fix all format issues
|
|
yarn fix:markdown # Fix markdown formatting
|
|
yarn fix:prettier # Fix prettier formatting
|
|
|
|
# Testing
|
|
yarn test # Run all Bats tests
|
|
bash test-all.sh # Alternative test runner
|
|
```
|
|
|
|
## Pre-commit Hooks (Comprehensive)
|
|
|
|
Current pre-commit configuration includes:
|
|
|
|
- **Security**: detect-aws-credentials, detect-private-key
|
|
- **File integrity**: check-case-conflict, check-merge-conflict, check-symlinks
|
|
- **Shell scripts**: shellcheck, shfmt (formatting)
|
|
- **YAML/JSON**: yamllint, check-yaml, check-toml, pretty-format-json
|
|
- **Markdown**: markdownlint with auto-fix
|
|
- **Lua**: stylua formatting for Neovim configs
|
|
- **Fish**: fish_syntax, fish_indent for shell configs
|
|
- **GitHub Actions**: actionlint validation
|
|
- **Renovate**: renovate-config-validator
|
|
- **General**: trailing-whitespace, end-of-file-fixer, mixed-line-ending
|
|
|
|
```bash
|
|
# Run pre-commit manually
|
|
pre-commit run --all-files
|
|
```
|
|
|
|
## Version Management
|
|
|
|
```bash
|
|
# Check current versions
|
|
node --version # Managed by nvm (.nvmrc: v20.18.1)
|
|
go version # Managed by asdf (.go-version)
|
|
python --version # Managed by asdf (.python-version)
|
|
```
|
|
|
|
## System Utilities (Darwin-specific)
|
|
|
|
```bash
|
|
# Modern CLI tools available
|
|
ls # aliased to eza with icons and git info
|
|
grep # aliased to grep --color
|
|
fd pattern # modern find alternative
|
|
rg pattern # ripgrep for text search
|
|
bat file # modern cat with syntax highlighting
|
|
```
|
|
|
|
## Project-specific Scripts (100+ available)
|
|
|
|
```bash
|
|
# Dotfiles management
|
|
bash local/bin/dfm install all
|
|
|
|
# Git utilities
|
|
git-dirty # Check for dirty git repositories
|
|
git-fsck-dirs # Run fsck on git directories
|
|
git-update-dirs # Update multiple git directories
|
|
|
|
# Development utilities
|
|
x-pr-comments <pr> # Analyze GitHub PR comments (NEW)
|
|
x-set-php-aliases # Generate PHP version aliases
|
|
x-env-list # List environment variables
|
|
x-open-ports # Check open network ports
|
|
|
|
# Backup utilities
|
|
x-backup-folder # Backup directories
|
|
x-backup-mysql-with-prefix # MySQL backup with prefix
|
|
```
|
|
|
|
## Configuration Management
|
|
|
|
```bash
|
|
# Load shell configurations
|
|
source config/shared.sh # Cross-shell compatibility functions
|
|
source x-set-php-aliases # PHP version management
|
|
|
|
# Host-specific configurations
|
|
# Automatically applied: hosts/{hostname}/
|
|
```
|
|
|
|
## Quality Assurance (CRITICAL)
|
|
|
|
**All linting errors are BLOCKING and must be fixed:**
|
|
|
|
- EditorConfig violations are considered blocking errors
|
|
- ShellCheck warnings must be addressed
|
|
- Prettier formatting must be consistent
|
|
- Markdownlint rules must be followed
|
|
- NEVER use --no-verify with git operations
|
|
- ALWAYS run autofixers before manual intervention
|