#!/usr/bin/env fish function main set start_dir (pwd) set cwd (string match -r '\w+$' $start_dir) set uname (uname) echo 'Syncing configuration files to your home dir...' set_color grey setup_tmp_space $cwd sync_terminal_env sync_desktop_env set_kitty_font_size $uname install_fisher_packages install_nvim_plugins set_color normal set_git_user set_fish_universal_vars clean_up_tmp_space $cwd $start_dir echo -s \n 'Done syncing.' end function setup_tmp_space -a cwd if test ! "$cwd" = 'dotfiles' cd /var/tmp git clone --recurse-submodules https://github.com/mitchell/dotfiles.git cd ./dotfiles end end function sync_terminal_env if ! test -e ~/.config; mkdir ~/.config; end rsync -aP ./.config/fish ~/.config/ rsync -aP ./.config/nvim ~/.config/ rsync -aP ./.gitconfig ~/ rsync -aP ./.tmux-line.conf ~/ rsync -aP ./.tmux.conf ~/ rsync -aP ./.vim ~/ rsync -aP ./.vimrc ~/ rsync -aP ./.taskrc ~/ end function sync_desktop_env set prompt 'Would you like to sync the desktop environment?' read -p "set_color red; printf '\n$prompt (Y/n) '; set_color normal" sync_desktop_env if test -z "$sync_desktop_env"; or test "$sync_desktop_env" = 'y'; or test "$sync_desktop_env" = 'Y' rsync -aP ./.config/kitty ~/.config/ rsync -aP ./.config/bspwm ~/.config/ rsync -aP ./.config/sxhkd ~/.config/ rsync -aP ./.config/picom ~/.config/ rsync -aP ./.config/xfce4 ~/.config/ rsync -aP ./.config/qutebrowser ~/.config/ rsync -aP ./.config/keepassxc ~/.config/ rsync -aP ./.ideavimrc ~/ rsync -aP ./.yabairc ~/ rsync -aP ./.skhdrc ~/ end end function set_kitty_font_size -a uname if test "$uname" = 'Darwin' sed -i '' -e 's/font_size 11\.0/font_size 13\.0/' ~/.config/kitty/kitty.conf end end function install_fisher_packages eval fisher end function install_nvim_plugins command -q nvim; and nvim +PlugUpgrade +PlugUpdate +qa end function set_git_user set prompt 'Would you like to set your git user name and email?' read -p "set_color red; printf '\n$prompt (y/N) '; set_color normal" set_git_user if test "$set_git_user" = 'y'; or test "$set_git_user" = 'Y' read -P 'name: ' name read -P 'email: ' email git config --global user.name $name git config --global user.email $email end end function set_fish_universal_vars source ./fish_universal_vars.fish end function clean_up_tmp_space -a cwd start_dir if test ! "$cwd" = 'dotfiles' cd .. rm -rf ./dotfiles cd $start_dir end end main