Files
endeavour_config/scripts/01_setup_configs.sh

110 lines
2.5 KiB
Bash
Executable File

#!/bin/bash
# cannot be used by multiple user, pacman.conf will be linked to the last invocating user
scriptdir=$(dirname $(realpath $BASH_SOURCE))
echo "script dir $scriptdir"
econfigdir=$(realpath $scriptdir/..)
echo "Setting up configs linking to $econfigdir"
echo ""
function Sudo {
local firstArg=$1
if [ $(type -t $firstArg) = function ]
then
shift && command sudo bash -c "$(declare -f $firstArg);$firstArg $*"
elif [ $(type -t $firstArg) = alias ]
then
alias sudo='\sudo '
eval "sudo $@"
else
command sudo "$@"
fi
}
link_file() {
echo "linking file $2"
if [ $(readlink -f $2) -ef $1 ]; then
echo " is already linked like that"
else
ln -sbfv $1 $2
fi
echo ""
}
link_folder() {
echo "linking folder $2"
if [ $(is_link $2) -eq 0 ]; then
# it is still a directory, create backup
echo " is a dir (pointing to $(readlink -f $2)), creating backup at $2_original"
mv -fvT --backup=numbered $2 $2_original
fi
if [ $(readlink -f $2) -ef $1 ]; then
echo " is already linked like that"
else
ln -sbfvn $1 $2
fi
echo ""
}
is_link() {
if [ $(readlink -f $1) = $1 ]; then
echo 0
else
echo 1
fi
}
# bashrc
link_file $econfigdir/home/bashrc $HOME/.bashrc
link_folder $econfigdir/home/bashrc.d $HOME/.bashrc.d
# bash_aliases
link_file $econfigdir/home/bash_aliases $HOME/.bash_aliases
# profile
link_file $econfigdir/home/profile $HOME/.profile
link_folder $econfigdir/home/profile.d $HOME/.profile.d
# git config
link_folder $econfigdir/config/git $HOME/.config/git
# pacman
Sudo link_file $econfigdir/etc/pacman.conf /etc/pacman.conf
# i3 config
link_folder $econfigdir/config/i3 $HOME/.config/i3
mv $HOME/.i3 $HOME/.i3_original > /dev/null 2>&1
# alacritty
link_folder $econfigdir/config/alacritty $HOME/.config/alacritty
# tmux
link_file $econfigdir/home/tmux.conf $HOME/.tmux.conf
link_folder $econfigdir/config/tmux $HOME/.config/tmux
# ranger
link_folder $econfigdir/config/ranger $HOME/.config/ranger
# starship
link_folder $econfigdir/config/starship $HOME/.config/starship
# bin
link_file $econfigdir/bin/wtk_connect-vpn $HOME/.local/bin/wtk_connect-vpn
link_file $econfigdir/bin/dmount $HOME/.local/bin/dmount
link_file $econfigdir/bin/dumount $HOME/.local/bin/dumount
# nvim
link_folder $econfigdir/config/nvim $HOME/.config/nvim
# lvim
link_folder $econfigdir/config/lvim $HOME/.config/lvim
# gdbinit
link_file $econfigdir/home/gdbinit $HOME/.gdbinit
# dunst
link_folder $econfigdir/config/dunst $HOME/.config/dunst
# mplayer
link_folder $econfigdir/home/mplayer $HOME/.mplayer