Files
dotfiles/install.zsh
2026-03-30 17:38:45 +09:00

52 lines
1.2 KiB
Bash
Executable File

#!/bin/zsh
# dotfiles installer
# usage: ./install.zsh [dotfiles_dir]
dotdir="${1:-$HOME/dotfiles}"
files=(.zshrc .vimrc .tmux.conf .gitconfig)
dirs=(.zsh .vim/plugin .tmux .local/bin .local/share/fonts)
# backup and symlink files
for f in "${files[@]}"; do
src="$dotdir/$f"
dst="$HOME/$f"
[ ! -f "$src" ] && continue
if [ -e "$dst" ] && [ ! -L "$dst" ]; then
mv "$dst" "${dst}.bak"
echo "backup: $dst -> ${dst}.bak"
fi
ln -sf "$src" "$dst"
echo "link: $dst -> $src"
done
# symlink directories
for d in "${dirs[@]}"; do
src="$dotdir/.${d#.}"
dst="$HOME/.${d#.}"
# handle nested dirs
if [[ "$d" == */* ]]; then
src="$dotdir/$d"
dst="$HOME/$d"
mkdir -p "$(dirname "$dst")"
else
src="$dotdir/$d"
dst="$HOME/$d"
fi
[ ! -d "$src" ] && continue
if [ -d "$dst" ] && [ ! -L "$dst" ]; then
mv "$dst" "${dst}.bak"
echo "backup: $dst -> ${dst}.bak"
fi
ln -sf "$src" "$dst"
echo "link: $dst -> $src"
done
# install font (mac only)
if [ "$(uname)" = "Darwin" ] && [ -f "$dotdir/.local/share/fonts/aifont.ttf" ]; then
cp -f "$dotdir/.local/share/fonts/aifont.ttf" ~/Library/Fonts/aifont.ttf
echo "font: aifont.ttf -> ~/Library/Fonts/"
fi
echo "done"