- Add packages.yaml defining system packages across platforms - Add machine-profiles.yaml for different deployment scenarios - Support for server, workstation, and development profiles 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
191 lines
6.5 KiB
YAML
191 lines
6.5 KiB
YAML
# Dotfiles Package Configuration
|
|
# Define packages to be installed across all systems
|
|
|
|
# System packages (apt/yum/brew)
|
|
system_packages:
|
|
- name: sshuttle
|
|
description: "VPN over SSH"
|
|
check_command: "which sshuttle"
|
|
install_commands:
|
|
debian: "sudo apt update && sudo apt install -y sshuttle"
|
|
ubuntu: "sudo apt update && sudo apt install -y sshuttle"
|
|
fedora: "sudo dnf install -y sshuttle"
|
|
centos: "sudo yum install -y sshuttle"
|
|
rhel: "sudo yum install -y sshuttle"
|
|
macos: "brew install sshuttle"
|
|
|
|
- name: curl
|
|
description: "Command line tool for transferring data"
|
|
check_command: "which curl"
|
|
install_commands:
|
|
debian: "sudo apt update && sudo apt install -y curl"
|
|
ubuntu: "sudo apt update && sudo apt install -y curl"
|
|
fedora: "sudo dnf install -y curl"
|
|
centos: "sudo yum install -y curl"
|
|
rhel: "sudo yum install -y curl"
|
|
macos: "brew install curl"
|
|
|
|
- name: git
|
|
description: "Version control system"
|
|
check_command: "which git"
|
|
install_commands:
|
|
debian: "sudo apt update && sudo apt install -y git"
|
|
ubuntu: "sudo apt update && sudo apt install -y git"
|
|
fedora: "sudo dnf install -y git"
|
|
centos: "sudo yum install -y git"
|
|
rhel: "sudo yum install -y git"
|
|
macos: "brew install git"
|
|
|
|
- name: vim
|
|
description: "Text editor"
|
|
check_command: "which vim"
|
|
install_commands:
|
|
debian: "sudo apt update && sudo apt install -y vim"
|
|
ubuntu: "sudo apt update && sudo apt install -y vim"
|
|
fedora: "sudo dnf install -y vim"
|
|
centos: "sudo yum install -y vim"
|
|
rhel: "sudo yum install -y vim"
|
|
macos: "brew install vim"
|
|
|
|
# Binary downloads and installs
|
|
binary_packages:
|
|
- name: claude-code
|
|
description: "Claude Code CLI"
|
|
check_command: "which claude"
|
|
install_type: "npm"
|
|
npm_package: "@anthropic-ai/claude-code"
|
|
fallback_install: |
|
|
echo "Trying alternative binary installation..."
|
|
if [[ "$OSTYPE" == "linux-gnu"* ]] || [[ "$OSTYPE" == "darwin"* ]]; then
|
|
curl -fsSL https://claude.ai/install.sh | bash
|
|
else
|
|
echo "Unsupported OS for Claude Code CLI"
|
|
return 1
|
|
fi
|
|
|
|
- name: gemini-cli
|
|
description: "Google Gemini CLI"
|
|
check_command: "which gemini"
|
|
install_type: "npm"
|
|
npm_package: "@google/gemini-cli"
|
|
homebrew_package: "gemini-cli"
|
|
npx_fallback: "https://github.com/google-gemini/gemini-cli"
|
|
|
|
- name: task-master
|
|
description: "Task management tool"
|
|
check_command: "which task-master"
|
|
install_type: "github"
|
|
github_repo: "your-username/task-master" # Replace with actual repo
|
|
github_install_method: "release" # or "build"
|
|
install_path: "$HOME/.local/bin"
|
|
|
|
# GitHub repository installations
|
|
github_packages:
|
|
- name: fzf
|
|
description: "Command-line fuzzy finder"
|
|
check_command: "which fzf"
|
|
github_repo: "junegunn/fzf"
|
|
install_method: "clone_and_install"
|
|
install_path: "$HOME/.fzf"
|
|
post_install: "$HOME/.fzf/install --all"
|
|
|
|
- name: exa
|
|
description: "Modern replacement for ls"
|
|
check_command: "which exa"
|
|
github_repo: "ogham/exa"
|
|
install_method: "release_binary"
|
|
install_path: "$HOME/.local/bin"
|
|
binary_name: "exa"
|
|
asset_pattern: "linux-x86_64" # or "macos-x86_64" for macOS
|
|
|
|
- name: bat
|
|
description: "A cat clone with syntax highlighting"
|
|
check_command: "which bat"
|
|
github_repo: "sharkdp/bat"
|
|
install_method: "release_binary"
|
|
install_path: "$HOME/.local/bin"
|
|
binary_name: "bat"
|
|
asset_pattern: "x86_64-unknown-linux-gnu" # or "x86_64-apple-darwin" for macOS
|
|
|
|
- name: ripgrep
|
|
description: "Fast text search tool"
|
|
check_command: "which rg"
|
|
github_repo: "BurntSushi/ripgrep"
|
|
install_method: "release_binary"
|
|
install_path: "$HOME/.local/bin"
|
|
binary_name: "rg"
|
|
asset_pattern: "x86_64-unknown-linux-gnu"
|
|
|
|
- name: fd
|
|
description: "Fast alternative to find"
|
|
check_command: "which fd"
|
|
github_repo: "sharkdp/fd"
|
|
install_method: "release_binary"
|
|
install_path: "$HOME/.local/bin"
|
|
binary_name: "fd"
|
|
asset_pattern: "x86_64-unknown-linux-gnu"
|
|
|
|
- name: delta
|
|
description: "Syntax-highlighting pager for git"
|
|
check_command: "which delta"
|
|
github_repo: "dandavison/delta"
|
|
install_method: "release_binary"
|
|
install_path: "$HOME/.local/bin"
|
|
binary_name: "delta"
|
|
asset_pattern: "x86_64-unknown-linux-gnu"
|
|
|
|
# Python packages (pip)
|
|
python_packages:
|
|
- name: requests
|
|
description: "Python HTTP library"
|
|
check_command: "python3 -c 'import requests' 2>/dev/null"
|
|
install_command: "pip3 install requests"
|
|
|
|
# Node.js packages (npm)
|
|
npm_packages:
|
|
- name: pm2
|
|
description: "Process manager for Node.js"
|
|
check_command: "which pm2"
|
|
install_command: "npm install -g pm2"
|
|
|
|
# Oh My Zsh plugins (only for zsh users)
|
|
zsh_plugins:
|
|
- name: zsh-syntax-highlighting
|
|
description: "Syntax highlighting for zsh"
|
|
check_path: "$HOME/.oh-my-zsh/plugins/zsh-syntax-highlighting"
|
|
install_script: |
|
|
if [[ -d "$HOME/.oh-my-zsh" ]]; then
|
|
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting
|
|
fi
|
|
|
|
- name: zsh-autosuggestions
|
|
description: "Auto suggestions for zsh"
|
|
check_path: "$HOME/.oh-my-zsh/plugins/zsh-autosuggestions"
|
|
install_script: |
|
|
if [[ -d "$HOME/.oh-my-zsh" ]]; then
|
|
git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
|
|
fi
|
|
|
|
# Optional packages (won't fail installation if they can't be installed)
|
|
optional_packages:
|
|
- name: docker
|
|
description: "Container platform"
|
|
check_command: "which docker"
|
|
install_commands:
|
|
debian: "curl -fsSL https://get.docker.com -o get-docker.sh && sudo sh get-docker.sh"
|
|
ubuntu: "curl -fsSL https://get.docker.com -o get-docker.sh && sudo sh get-docker.sh"
|
|
fedora: "sudo dnf install -y docker"
|
|
centos: "sudo yum install -y docker"
|
|
rhel: "sudo yum install -y docker"
|
|
macos: "brew install --cask docker"
|
|
|
|
- name: docker-compose
|
|
description: "Multi-container Docker applications"
|
|
check_command: "which docker-compose"
|
|
install_commands:
|
|
debian: "sudo apt update && sudo apt install -y docker-compose"
|
|
ubuntu: "sudo apt update && sudo apt install -y docker-compose"
|
|
fedora: "sudo dnf install -y docker-compose"
|
|
centos: "sudo yum install -y docker-compose"
|
|
rhel: "sudo yum install -y docker-compose"
|
|
macos: "brew install docker-compose" |