128 lines
2.7 KiB
Bash
Executable File
128 lines
2.7 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
packages="sshpass tmux python3-pip cargo vim-nox build-essential python3-dev \
|
|
zathura zathura-pdf-poppler"
|
|
pip="awscli cmake"
|
|
|
|
read -p "Are you sure? (Y/N) "
|
|
|
|
if [[ "$REPLY" != "Y" ]]
|
|
then
|
|
echo "OK, Bye!"
|
|
exit 0
|
|
fi
|
|
|
|
echo "Creating necessary directories ..."
|
|
mkdir -p ~/.config
|
|
|
|
release=$(lsb_release -d | grep -i ubuntu > /dev/null && echo ubuntu || echo unknown)
|
|
echo "Release is $release"
|
|
|
|
if [[ "$release" == "ubuntu" ]]
|
|
then
|
|
echo "Installing packages ..."
|
|
sudo apt install -y $packages
|
|
fi
|
|
|
|
if [[ -f /usr/bin/pip3 ]]
|
|
then
|
|
echo "Pip 3 detected, installing packages ..."
|
|
pip install --user -U $pip
|
|
fi
|
|
|
|
if [[ -f ~/.dotfiles/inputrc ]]
|
|
then
|
|
echo "Installing inputrc ..."
|
|
rm -rf ~/.inputrc
|
|
ln -sf ~/.dotfiles/inputrc ~/.inputrc
|
|
fi
|
|
|
|
if [[ -f ~/.dotfiles/bash/bashrc ]]
|
|
then
|
|
echo "Dotfiles bashrc found, linking it ..."
|
|
rm -rf ~/.bashrc
|
|
ln -sf ~/.dotfiles/bash/bashrc ~/.bashrc
|
|
fi
|
|
|
|
if [[ -f ~/.dotfiles/tmux/tmux.conf ]]
|
|
then
|
|
echo "Dotfiles tmux.conf found, linking it ..."
|
|
rm -rf ~/.tmux.conf
|
|
ln -sf ~/.dotfiles/tmux/tmux.conf ~/.tmux.conf
|
|
rm -rf ~/.tmux
|
|
ln -sf ~/.dotfiles/tmux ~/.tmux
|
|
fi
|
|
|
|
# I hate this but no other option worked ...
|
|
if [[ ! -f /usr/local/bin/starship ]]
|
|
then
|
|
echo "Installing starship ..."
|
|
curl -sS https://starship.rs/install.sh | sh
|
|
fi
|
|
|
|
if [[ -f ~/.dotfiles/starship/starship.toml ]]
|
|
then
|
|
echo "Installing starship configuration ..."
|
|
rm -rf ~/.config/starship.toml
|
|
ln -sf ~/.dotfiles/starship/starship.toml ~/.config/starship.toml
|
|
fi
|
|
|
|
if [[ -f ~/.dotfiles/git/gitconfig ]]
|
|
then
|
|
echo "Installing git configuration ..."
|
|
rm -rf ~/.gitconfig
|
|
ln -sf ~/.dotfiles/git/gitconfig ~/.gitconfig
|
|
fi
|
|
|
|
if [[ -d ~/.dotfiles/ssh ]]
|
|
then
|
|
echo "Installing ssh configuration ..."
|
|
rm -rf ~/.ssh
|
|
ln -sf ~/.dotfiles/ssh ~/.ssh
|
|
fi
|
|
|
|
if [[ -d ~/.dotfiles/vim ]]
|
|
then
|
|
echo "Installing vim configuration ..."
|
|
rm -rf ~/.vimrc
|
|
mkdir -p ~/.vim/bundle
|
|
mkdir -p ~/.vimundo
|
|
if [[ ! -d ~/.vim/bundle/Vundle.vim ]]
|
|
then
|
|
git clone https://github.com/gmarik/Vundle.vim.git ~/.vim/bundle/Vundle.vim
|
|
fi
|
|
ln -sf ~/.dotfiles/vim/vimrc ~/.vimrc
|
|
echo "Installing vim plugins ..."
|
|
vim +'PlugInstall --sync' +qa
|
|
fi
|
|
|
|
if [[ -d ~/.vim/bundle/YouCompleteMe ]]
|
|
then
|
|
echo "Installing ycm dependencies"
|
|
python3 ~/.vim/bundle/YouCompleteMe/install.py
|
|
fi
|
|
|
|
if [[ -d ~/.dotfiles/projects ]]
|
|
then
|
|
for f in ~/.dotfiles/projects/*
|
|
do
|
|
if [[ -f $f/basegit ]]
|
|
then
|
|
basegit=$(<$f/basegit)
|
|
echo "Base git $basegit sourced ..."
|
|
fi
|
|
if [[ -f $f/projects ]]
|
|
then
|
|
while read -r project
|
|
do
|
|
dir=$(basename $f)
|
|
mkdir -p ~/dev/${dir}
|
|
echo "Cloning ${basegit}${project} in ~/dev/${dir}/${project}"
|
|
git clone ${basegit}${project} ~/dev/${dir}/${project}
|
|
done < $f/projects
|
|
fi
|
|
done
|
|
fi
|
|
. ~/.bashrc
|
|
|