#!/usr/bin/env bash # --- Helper functions --- log() { echo -e "\033[1;34m[INFO]\033[0m $*"; } # Define paths as they have not been defined by new bashrc yet! PANAMA_PATH="${PANAMA_PATH:-$HOME/.local/share/Panama}" PANAMA_BASH="${PANAMA_BASH:-$PANAMA_PATH/config/bash}" PANAMA_DOT="$PANAMA_PATH/config/dot" PANAMA_OLD="$PANAMA_PATH/config/old" CONFIG="$HOME/.config" # Make backup folder if it doesn't exist mkdir -p "$PANAMA_OLD" # --- Bashrc --- echo -e "\n--- Replacing .bashrc ---" # Backup existing .bashrc if it's a regular file if [ -f "$HOME/.bashrc" ] && [ ! -L "$HOME/.bashrc" ]; then log "Backing up existing .bashrc" mv "$HOME/.bashrc" "$PANAMA_OLD/.bashrc" fi # Remove old symlink if it exists and points somewhere else if [ -L "$HOME/.bashrc" ]; then log "Removing old .bashrc symlink" rm "$HOME/.bashrc" fi # Symlink Panama .bashrc file to ~/.bashrc log "Symlinking Panama .bashrc file to ~/.bashrc" ln -s "$PANAMA_BASH/.bashrc" "$HOME/.bashrc" dirs=("espanso" "forge" "ghostty" "kitty" "nvim" "tmux") for dir in "${dirs[@]}"; do echo -e "\n--- Setting up $dir ---" # Remove old symlink if it exists if [ -L "$CONFIG/$dir" ]; then rm "$CONFIG/$dir" log "Removed old symlink at $CONFIG/$dir" fi # Backup existing directory if it exists if [ -d "$CONFIG/$dir" ]; then mv "$CONFIG/$dir" "$PANAMA_OLD/$dir" log "Moved existing $dir config to $PANAMA_OLD/$dir" fi # Create symlink ln -s "$PANAMA_DOT/$dir" "$CONFIG/$dir" log "Linked $PANAMA_DOT/$dir → $CONFIG/$dir" done