dotfiles/apply-dotfiles

36 lines
913 B
Bash
Executable File

#!/usr/bin/env bash
apply_dotfile() {
directory_to_stow="${1}"
stow --adopt -S -t "${HOME}" "${directory_to_stow}"
}
# Adopt will change the files in stow to match existing files.
# We don't want this, we just want to handle existing files gracefully.
# We simply adopt all the files and then at the end restore our git repo to undo changes
restore_from_adoption() {
git restore .
}
apply_dotfile bash
apply_dotfile sh
apply_dotfile readline
apply_dotfile vim
apply_dotfile ruby
apply_dotfile python
# Check that SSH version is above 9.2 (where EnableEscapeCommandline was added) before conditionally adding
# a config file. This is then included in the main config
SSH_VERSION=$(ssh -V 2>&1 | cut -d',' -f 1 | cut -d '_' -f 2)
if [[ "${SSH_VERSION}" =~ ^9\.[1-9]{0,1}[2-9].*$ ]]; then
cat <<CONFIG > ssh/.ssh/extra.conf
EnableEscapeCommandline yes
CONFIG
fi
apply_dotfile ssh
restore_from_adoption