dotfiles/script/installdotfiles

53 lines
1.3 KiB
Bash
Executable File

#!/usr/bin/env bash
#
# Set up basic symlinks and directory structure when installing dotfiles.
# Expected to be idempotent.
set -e
# General
mkdir -p $HOME/dev
ln -sfn $HOME/dev/dotfiles/script $HOME/script
# ZSH
mkdir -p $HOME/.config/zsh/functions
# TODO: ZSH on Mac appears to load zshenv from ZDOTDIR, not HOME.
# Try to consolidate this.
if [ $(uname -s) = "Darwin" ]; then
envpath="$HOME/.config/zsh/.zshenv"
else
envpath="$HOME/.zshenv"
fi
ln -sfn $HOME/dev/dotfiles/zshenv "$envpath"
ln -sfn $HOME/dev/dotfiles/zshrc $HOME/.config/zsh/.zshrc
secretsfile="$HOME/.config/zsh/.zshsecrets"
if [ ! -f "$secretsfile" ]; then
cp $HOME/dev/dotfiles/zshsecrets.example "$secretsfile"
fi
# Tmux
ln -sfn $HOME/dev/dotfiles/tmux.conf $HOME/.tmux.conf
# Vim
mkdir -p $HOME/.vim/pack/git-plugins/{opt,start}
ln -sfn $HOME/dev/dotfiles/vimrc $HOME/.vimrc
ln -sfn $HOME/dev/dotfiles/vim/after $HOME/.vim/after
# Git
ln -sfn $HOME/dev/dotfiles/gitconfig $HOME/.gitconfig
mkdir -p $HOME/.config/git
ln -sfn $HOME/dev/dotfiles/gitignore $HOME/.config/git/ignore
# Alacritty
if [ $(uname -s) = "Darwin" ]; then
alacrittyconfig="$HOME/dev/dotfiles/alacritty.macos.yml"
else
alacrittyconfig="$HOME/dev/dotfiles/alacritty.yml"
fi
ln -sfn "$alacrittyconfig" $HOME/.config/alacritty.yml
echo "Done"