#!/usr/bin/env bash # Deployment script for dotfiles # # WARNING: This script _will_ clobber existing files by force linking # Relative path/name as keys, destination path as values declare -A configs=( ["zsh/zshrc"]="$HOME/.zshrc" ["zsh/zsh_functions"]="$HOME/.config/zsh/zsh_functions.zsh" ["zsh/zsh_aliases"]="$HOME/.config/zsh/zsh_aliases.zsh" ["zsh/zsh_exports"]="$HOME/.config/zsh/zsh_exports.zsh" ["fb-custom.zsh-theme"]="$HOME/.oh-my-zsh/custom/themes" ["nvim/init.lua"]="$HOME/.config/nvim/init.lua" ["nvim/lua"]="$HOME/.config/nvim/" ["nvim/after"]="$HOME/.config/nvim/" ["nvim/snippets"]="$HOME/.config/nvim/" ["tmux.conf"]="$HOME/.tmux.conf" ["wezterm.lua"]="$HOME/.config/wezterm/wezterm.lua" # ["wezterm.local_linux.lua"]="$HOME/.config/wezterm/local.lua" # TODO: switch contents to elsewhere, be aware of OS, or refactor elsewise ["npmrc"]="$HOME/.npmrc" ) declare -a config_directories=( "$HOME/.config/nvim" "$HOME/.config/wezterm" "$HOME/.config/zsh" ) for dir in ${config_directories[@]}; do mkdir -p ${dir} done for dotfile in "${!configs[@]}"; do echo "Deploying $PWD/${dotfile} to ${configs[$dotfile]}" ln -fs "$PWD/${dotfile}" "${configs[$dotfile]}" done