#!/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" ["./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/wezterm.lua"]="$HOME/.config/wezterm/wezterm.lua" ) 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