40 lines
1.1 KiB
Bash
40 lines
1.1 KiB
Bash
#!/bin/bash
|
|
# Install Python and common development tools
|
|
# This script runs once before other chezmoi operations
|
|
|
|
set -e
|
|
|
|
echo "==> Setting up Python environment..."
|
|
|
|
{{ if eq .pkgManager "pacman" -}}
|
|
# Arch Linux - Python is usually already installed
|
|
sudo pacman -S --noconfirm --needed python python-pip python-pipx
|
|
|
|
{{ else if eq .pkgManager "apt" -}}
|
|
# Debian/Ubuntu
|
|
sudo apt-get install -y python3 python3-pip python3-venv pipx
|
|
|
|
# Create python symlink if needed
|
|
if ! command -v python &> /dev/null && command -v python3 &> /dev/null; then
|
|
sudo ln -sf $(which python3) /usr/local/bin/python
|
|
fi
|
|
|
|
{{ else if eq .pkgManager "brew" -}}
|
|
# macOS
|
|
brew install python pipx
|
|
|
|
{{ end -}}
|
|
|
|
# Ensure pipx path
|
|
pipx ensurepath
|
|
|
|
# Install useful Python CLI tools via pipx
|
|
echo "==> Installing Python CLI tools via pipx..."
|
|
pipx install ruff 2>/dev/null || true
|
|
pipx install black 2>/dev/null || true
|
|
pipx install mypy 2>/dev/null || true
|
|
pipx install httpie 2>/dev/null || true
|
|
|
|
echo "==> Python setup complete!"
|
|
echo " python: $(python3 --version)"
|
|
echo " pip: $(pip3 --version)"
|