index : dotfiles.git

ascending towards madness

#!/bin/env zsh

DOTFILES_DIR=.

sync() {
  # dir structure
  mkdir -p "${DOTFILES_DIR}/.config/gtk-3.0"
  mkdir -p "${DOTFILES_DIR}/.config/helix"
  mkdir -p "${DOTFILES_DIR}/.config/kitty"
  mkdir -p "${DOTFILES_DIR}/.config/zellij"
  mkdir -p "${DOTFILES_DIR}/.scripts"

  # configs
  cp -v "${HOME}/.zshrc" "${DOTFILES_DIR}/.zshrc"
  cp -v "${HOME}/.config/gtk-3.0/gtk.css" "${DOTFILES_DIR}/.config/gtk-3.0/gtk.css"
  cp -v "${HOME}/.config/helix/config.toml" "${DOTFILES_DIR}/.config/helix/config.toml"
  cp -v "${HOME}/.config/kitty/kitty.conf" "${DOTFILES_DIR}/.config/kitty/kitty.conf"
  cp -vr "${HOME}/.config/zellij" "${DOTFILES_DIR}/.config/"

  # scripts
  cp -v "${HOME}/.scripts/calendar.sh" "${DOTFILES_DIR}/.scripts/calendar.sh"
  cp -v "${HOME}/.scripts/zellij-launcher.zsh" "${DOTFILES_DIR}/.scripts/zellij-launcher.zsh"

  echo "done."
}

restore() {
  # configs
  cp -v "${DOTFILES_DIR}/.zshrc" "${HOME}/.zshrc"
  cp -vr "${DOTFILES_DIR}/.config" "${HOME}/"

  # scripts
  cp -vr "${DOTFILES_DIR}/.scripts" "${HOME}/"
  echo "done."
}

clean() {
  # dirs
  rm -rfv "${DOTFILES_DIR}/.config"
  rm -rfv "${DOTFILES_DIR}/.scripts"

  # files
  rm -fv "${DOTFILES_DIR}/.zshrc"
}

main() {
  if [[ "$1" == "clean" ]]; then
    clean
  elif [[ "$1" == "restore" ]]; then
    restore
  else
    sync
  fi

  echo "goodbye."
  exit 0
}

main "$@"