#!/usr/bin/env bash set -e DOTFILES_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" echo "Setting up dotfiles from $DOTFILES_DIR" stow_pkg() { local pkg="$1" stow -v -d "$DOTFILES_DIR" -t "$HOME" "$pkg" } ensure_sourced() { local file="$1" local bashrc="$HOME/.bashrc" local source_line="[ -f \"$file\" ] && source \"$file\"" if [ ! -f "$bashrc" ]; then echo "WARNING: ~/.bashrc not found, skipping source injection for $file" return fi if grep -qF "$file" "$bashrc"; then echo "OK: $file already sourced in ~/.bashrc" else echo "" >> "$bashrc" echo "# Added by dotfiles setup" >> "$bashrc" echo "$source_line" >> "$bashrc" echo "ADDED: source $file to ~/.bashrc" fi } # ssh — always available stow_pkg ssh # bash — stow dotfiles, then ensure ~/.bashrc sources them stow_pkg bash ensure_sourced "$HOME/.bashrc.omb" # kitty if command -v kitty &>/dev/null; then stow_pkg kitty else echo "SKIP: kitty (not installed)" fi # fastfetch if command -v fastfetch &>/dev/null; then stow_pkg fastfetch else echo "SKIP: fastfetch (not installed)" fi echo "Done!"