#!/usr/bin/env bash # # Set up basic symlinks and directory structure when installing dotfiles. # Expected to be idempotent. set -e # General mkdir -p "$HOME/dev" ln -sfn "$HOME/dev/dotfiles/script" "$HOME/script" # ZSH mkdir -p "$HOME/.config/zsh/functions" # TODO: ZSH on Mac appears to load zshenv from ZDOTDIR, not HOME. # Try to consolidate this. if [ "$(uname -s)" = "Darwin" ]; then envpath="$HOME/.config/zsh/.zshenv" else envpath="$HOME/.zshenv" fi ln -sfn "$HOME/dev/dotfiles/zshenv" "$envpath" ln -sfn "$HOME/dev/dotfiles/zshrc" "$HOME/.config/zsh/.zshrc" secretsfile="$HOME/.config/zsh/.zshsecrets" if [ ! -f "$secretsfile" ]; then cp "$HOME/dev/dotfiles/zshsecrets.example" "$secretsfile" fi # Tmux ln -sfn "$HOME/dev/dotfiles/tmux.conf" "$HOME/.tmux.conf" # Vim mkdir -p "$HOME/.vim/pack/git-plugins/{opt,start}" ln -sfn "$HOME/dev/dotfiles/vimrc" "$HOME/.vimrc" ln -sfn "$HOME/dev/dotfiles/vim/after" "$HOME/.vim/after" ln -sfn "$HOME/dev/dotfiles/vim/after" "$HOME/.vim/queries" ln -sfn "$HOME/dev/dotfiles/vim/after" "$HOME/.vim/lua" # Git ln -sfn "$HOME/dev/dotfiles/gitconfig" "$HOME/.gitconfig" mkdir -p "$HOME/.config/git" ln -sfn "$HOME/dev/dotfiles/gitignore" "$HOME/.config/git/ignore" # Alacritty if [ "$(uname -s)" = "Darwin" ]; then alacrittyconfig="$HOME/dev/dotfiles/alacritty.macos.yml" else alacrittyconfig="$HOME/dev/dotfiles/alacritty.yml" fi ln -sfn "$alacrittyconfig" "$HOME/.config/alacritty.yml" echo "Done"