#!/usr/bin/env zsh

DOTFILES_PATH="${0:a:h}"

install_dotfile() {
  local dest="$1"
  local contents="$2"

  if [[ -f "$dest" ]]; then
    mv -vi "$dest" "$dest.dmitmel-dotfiles-backup"
  fi

  mkdir -pv "${dest:h}"
  echo "installing dotfile '$dest'"
  echo "$contents" > "$dest"
}

# ZSH
for file_name in zshrc; do
  file_path="$DOTFILES_PATH/zsh/$file_name"
  install_dotfile "$HOME/.$file_name" "source ${(q)file_path}"
done

# Neovim
for file_name in {init,ginit}.vim; do
  file_path="$DOTFILES_PATH/nvim/$file_name"
  install_dotfile "$HOME/.config/nvim/$file_name" "source ${(q)file_path}"
done

# Kitty
file_name=kitty.conf
file_path="$DOTFILES_PATH/kitty/$file_name"
install_dotfile "$HOME/.config/kitty/$file_name" "include ${(q)file_path}"

# tmux
file_name=tmux.conf
file_path="$DOTFILES_PATH/tmux/$file_name"
install_dotfile "$HOME/.$file_name" "source-file ${(q)file_path}"