place-dotfiles-base.sh
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
#!/bin/sh
# place-dotfiles-base.sh: simple script to symlink my core dotfiles
# by x1phosura
dotfiles_root="$HOME"/73h4x/dotfiles/dotfiles-base # where dotfiles live
#dotfiles_root="$PWD" # alternative (for testing)
dest="$HOME" # usually $HOME
die() {
echo "$@"; exit 1
}
[ ! -d "$dotfiles_root" ] && \
die "ERROR: $dotfiles_root doesn't exist. Aborting..."
# TODO: change '[[' to '[', test...
#[[ "$(realpath $dotfiles_root)" = "$(realpath $dest)" ]] && \
# die " ERROR: dotfiles_root and dest are the same directory! Aborting..."
# TODO: maybe, maybe not place .bash_prompt
dotfiles_base_list=".bash_profile \
.bashrc \
.gdbinit \
.lynxrc \
.tmux.conf \
.config/fish \
.config/nvim \
.config/helix"
# Note: directly symlink items to .config instead of symlinking .config itself
# because I don't want to preserve everything that programs create there
mkdir -p "$dest"/.config
# link dotfiles in home directory
for file in $dotfiles_base_list ; do
# TODO: only link after checking file's existence in dotfiles_root
ln -svfn "$dotfiles_root"/"$file" "$dest"/"$file"
done
# handle neovim-to-vimrc symlink
ln -svfn "$dotfiles_root"/.config/nvim/vimrc.vim "$dest"/.vimrc
|