Files
endeavour_config/scripts/01_setup_configs.sh
2024-04-20 20:30:01 +02:00

106 lines
2.3 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 ~/.bashrc.d
# bash_aliases
link_file $econfigdir/home/bash_aliases ~/.bash_aliases
# git config
link_folder $econfigdir/config/git ~/.config/git
# pacman
Sudo link_file $econfigdir/etc/pacman.conf /etc/pacman.conf
# i3 config
link_folder $econfigdir/config/i3 ~/.config/i3
mv ~/.i3 ~/.i3_original > /dev/null 2>&1
# alacritty
link_folder $econfigdir/config/alacritty ~/.config/alacritty
# tmux
link_file $econfigdir/home/tmux.conf ~/.tmux.conf
link_folder $econfigdir/config/tmux ~/.config/tmux
# ranger
link_folder $econfigdir/config/ranger ~/.config/ranger
# starship
link_folder $econfigdir/config/starship ~/.config/starship
# bin
link_file $econfigdir/bin/wtk_connect-vpn ~/.local/bin/wtk_connect-vpn
link_file $econfigdir/bin/dmount ~/.local/bin/dmount
link_file $econfigdir/bin/dumount ~/.local/bin/dumount
# nvim
link_folder $econfigdir/config/nvim ~/.config/nvim
# lvim
link_folder $econfigdir/config/lvim ~/.config/lvim
# gdbinit
link_file $econfigdir/home/gdbinit ~/.gdbinit
# dunst
link_folder $econfigdir/config/dunst ~/.config/dunst
# mplayer
link_folder $econfigdir/home/mplayer ~/.mplayer