dotfiles

My dotfiles and configs
git clone https://git.dasho.dev/dotfiles.git
Log | Files | Refs | README

bootstrap (1677B)


      1 #!/usr/bin/env bash
      2 set -euo pipefail
      3 
      4 ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
      5 DOT="$HOME/.dotfiles"
      6 
      7 mkdir -p "$HOME/.config/direnv"
      8 mkdir -p "$HOME/.config/nvim"
      9 mkdir -p "$HOME/.config/redbrick"
     10 mkdir -p "$HOME/.config/git"
     11 mkdir -p "$HOME/.config/yazi"
     12 
     13 # Install Homebrew if missing
     14 if ! command -v brew >/dev/null 2>&1; then
     15   echo "Installing Homebrew..."
     16   /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
     17 
     18   # Make brew available in this script run
     19   if [[ -x /opt/homebrew/bin/brew ]]; then
     20     eval "$(/opt/homebrew/bin/brew shellenv)"
     21   elif [[ -x /usr/local/bin/brew ]]; then
     22     eval "$(/usr/local/bin/brew shellenv)"
     23   elif [[ -x /home/linuxbrew/.linuxbrew/bin/brew ]]; then
     24     eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"
     25   fi
     26 fi
     27 
     28 # Install packages
     29 if [[ -f "$ROOT/Brewfile" ]]; then
     30   echo "Installing Brewfile packages..."
     31   brew bundle install --file "$ROOT/Brewfile"
     32 else
     33   echo "No Brewfile found; skipping brew bundle install" >&2
     34 fi
     35 
     36 # Symlink configs
     37 echo "Linking configs..."
     38 ln -snf "$ROOT/zsh/zshrc" "$HOME/.zshrc"
     39 ln -snf "$ROOT/zsh/secret.zsh" "$DOT/zsh/secret.zsh" 2>/dev/null || true
     40 ln -snf "$ROOT/config/direnv/direnvrc" "$HOME/.config/direnv/direnvrc"
     41 ln -snf "$ROOT/config/git/config" "$HOME/.gitconfig"
     42 ls -snf "$ROOT/config/git/config" "$HOME/.config/git/config" 2>/dev/null || true
     43 ln -snf "$ROOT/config/nvim/init.lua" "$HOME/.config/nvim/init.lua"
     44 ln -snf "$ROOT/config/redbrick" "$HOME/.config/redbrick" 2>/dev/null || true
     45 ln -snf "$ROOT/config/yazi/yazi.toml" "$HOME/.config/yazi/yazi.toml" 2>/dev/null || true
     46 
     47 echo "Bootstrap complete. Restart your shell."
     48