feat: remade scripts to be simpler
This commit is contained in:
Executable
+133
@@ -0,0 +1,133 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Get script directory
|
||||
DOTFILES_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
cd "$DOTFILES_DIR"
|
||||
|
||||
# Detect OS
|
||||
OS=$(uname -s)
|
||||
|
||||
echo "═══════════════════════════════════════"
|
||||
echo " Dotfiles Installation"
|
||||
echo " OS: $OS"
|
||||
echo "═══════════════════════════════════════"
|
||||
echo
|
||||
|
||||
# ---------------------------------------------------------
|
||||
# 1. OS-Specific Package Installation
|
||||
# ---------------------------------------------------------
|
||||
if [ "$OS" = "Darwin" ]; then
|
||||
echo "🍎 Detected macOS."
|
||||
|
||||
# Install Homebrew if not found
|
||||
if ! command -v brew &> /dev/null; then
|
||||
echo "Installing Homebrew..."
|
||||
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
|
||||
|
||||
# Add brew to path for the remainder of this script
|
||||
if [ -x "/opt/homebrew/bin/brew" ]; then
|
||||
eval "$(/opt/homebrew/bin/brew shellenv)"
|
||||
fi
|
||||
fi
|
||||
|
||||
echo "Installing packages via Homebrew..."
|
||||
brew bundle --file="$DOTFILES_DIR/os/macos/Brewfile"
|
||||
|
||||
elif [ "$OS" = "Linux" ]; then
|
||||
echo "🐧 Detected Linux (Assuming CachyOS / Arch)."
|
||||
|
||||
echo "Updating system and installing official packages..."
|
||||
sudo pacman -Syu --noconfirm
|
||||
sudo pacman -S --needed --noconfirm - < "$DOTFILES_DIR/os/cachyos/pkglist.txt"
|
||||
|
||||
# Check for AUR helper and install AUR packages
|
||||
AUR_HELPER=""
|
||||
if command -v paru &> /dev/null; then
|
||||
AUR_HELPER="paru"
|
||||
elif command -v yay &> /dev/null; then
|
||||
AUR_HELPER="yay"
|
||||
fi
|
||||
|
||||
if [ -n "$AUR_HELPER" ]; then
|
||||
echo "Installing AUR packages using $AUR_HELPER..."
|
||||
$AUR_HELPER -S --needed --noconfirm - < "$DOTFILES_DIR/os/cachyos/aurlist.txt"
|
||||
else
|
||||
echo "⚠️ No AUR helper (paru/yay) found. Skipping AUR packages."
|
||||
echo "Please install paru or yay and run: paru -S --needed - < os/cachyos/aurlist.txt"
|
||||
fi
|
||||
|
||||
if [ -f "$DOTFILES_DIR/os/cachyos/kde/cachyos-profile.knsv" ] && command -v konsave &> /dev/null; then
|
||||
echo "Applying KDE Plasma Profile..."
|
||||
konsave -i "$DOTFILES_DIR/os/cachyos/kde/cachyos-profile.knsv" || true
|
||||
sleep 2
|
||||
konsave -a cachyos-profile || true
|
||||
fi
|
||||
else
|
||||
echo "⚠️ Unsupported OS detected: $OS"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo
|
||||
|
||||
# ---------------------------------------------------------
|
||||
# 2. Linking Configuration Files
|
||||
# ---------------------------------------------------------
|
||||
echo "🔗 Setting up configuration..."
|
||||
mkdir -p ~/.config
|
||||
|
||||
cd "$DOTFILES_DIR/stow"
|
||||
for app in */; do
|
||||
echo "Stowing ${app%/}"
|
||||
stow -R "${app%/}" -t "$HOME"
|
||||
done
|
||||
cd "$DOTFILES_DIR"
|
||||
|
||||
# Link OS-specific .zprofile and aliases
|
||||
if [ "$OS" = "Darwin" ]; then
|
||||
echo "Linking macOS .zprofile and aliases..."
|
||||
rm -f ~/.zprofile
|
||||
ln -s "$DOTFILES_DIR/os/macos/.zprofile" ~/.zprofile
|
||||
rm -f ~/.os_aliases
|
||||
ln -s "$DOTFILES_DIR/os/macos/aliases.sh" ~/.os_aliases
|
||||
elif [ "$OS" = "Linux" ]; then
|
||||
echo "Linking Linux .zprofile and aliases..."
|
||||
rm -f ~/.zprofile
|
||||
ln -s "$DOTFILES_DIR/os/cachyos/.zprofile" ~/.zprofile
|
||||
rm -f ~/.os_aliases
|
||||
ln -s "$DOTFILES_DIR/os/cachyos/aliases.sh" ~/.os_aliases
|
||||
fi
|
||||
|
||||
echo "Linking common aliases..."
|
||||
rm -f ~/.common_aliases
|
||||
ln -s "$DOTFILES_DIR/shell/aliases.sh" ~/.common_aliases
|
||||
|
||||
# ---------------------------------------------------------
|
||||
# 3. Tmux Plugin Manager
|
||||
# ---------------------------------------------------------
|
||||
if [ ! -d ~/.tmux/plugins/tpm ]; then
|
||||
echo "Installing tmux plugin manager (TPM)..."
|
||||
git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm
|
||||
fi
|
||||
|
||||
# ---------------------------------------------------------
|
||||
# 4. Secondary Setup Scripts
|
||||
# ---------------------------------------------------------
|
||||
echo
|
||||
echo "🛠️ Running secondary installation scripts..."
|
||||
|
||||
# Export newly installed binaries into PATH for these scripts
|
||||
export PATH="/opt/homebrew/bin:$HOME/.local/bin:$HOME/go/bin:$HOME/.bun/bin:$PATH"
|
||||
|
||||
if [ -f "$DOTFILES_DIR/scripts/install_dev_tools.sh" ]; then
|
||||
bash "$DOTFILES_DIR/scripts/install_dev_tools.sh"
|
||||
fi
|
||||
|
||||
if [ -f "$DOTFILES_DIR/scripts/install_conda.sh" ]; then
|
||||
bash "$DOTFILES_DIR/scripts/install_conda.sh"
|
||||
fi
|
||||
|
||||
echo
|
||||
echo "═══════════════════════════════════════"
|
||||
echo " ✅ Installation Complete!"
|
||||
echo "═══════════════════════════════════════"
|
||||
echo "Please restart your terminal or run 'exec zsh' to apply all changes."
|
||||
Reference in New Issue
Block a user