#!/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

# 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"