dotfiles/deploy_dotfiles.sh

78 lines
2.0 KiB
Bash
Executable File

#!/bin/bash
MISSING=""
if ! [ -x "$(command -v curl)" ]; then
echo "curl manque et doit être installé"
MISSING="${MISSING} curl"
fi
if ! [ -x "$(command -v git)" ]; then
echo "git manque et doit être installé"
MISSING="${MISSING} git"
fi
if ! [ -x "$(command -v zsh)" ]; then
echo "zsh manque et doit être installé"
MISSING="${MISSING} zsh"
fi
if ! [ -x "$(command -v exa)" ]; then
echo "exa manque et doit être installé"
MISSING="${MISSING} exa"
fi
if ! [ -x "$(command -v fdfind)" ]; then
echo "fdfind manque et doit être installé"
MISSING="${MISSING} fd-find"
fi
if ! [ -x "$(command -v rg)" ]; then
echo "ripgrep manque et doit être installé"
MISSING="${MISSING} ripgrep"
fi
if [ -n "$MISSING" ]; then
echo "Installation de $MISSING"
sudo apt update
sudo apt -y install $MISSING
fi
if ! [ -x "$HOME/.bin/starship" ]; then
echo "Installation de starship"
mkdir -p "$HOME/.bin"
curl -sfL https://starship.rs/install.sh -o /tmp/install.sh
chmod +x /tmp/install.sh
/tmp/install.sh -y -b "$HOME/.bin"
rm /tmp/install.sh
fi
if [ ! "$SHELL" = "/bin/zsh" ]; then
sudo usermod "$USER" -s /bin/zsh && echo "Nouveau shell: zsh"
fi
if [ ! -x "$HOME/.bin/chezmoi" ]; then
echo "Installation de chezmoi"
mkdir -p "$HOME/.bin"
curl -sfL https://git.io/chezmoi -o /tmp/chezmoi.sh
chmod +x /tmp/chezmoi.sh
/tmp/chezmoi.sh -b "$HOME/.bin" -d
rm /tmp/chezmoi.sh
fi
if [ ! -d "$HOME/.local/share/chezmoi/.git" ]; then
mkdir -p "$HOME/.vim/backup"
echo "Application des dotfiles …"
cd "$HOME" || exit
"$HOME/.bin/chezmoi" init --apply --verbose https://git.sysnove.net/jrabier/dotfiles
echo "Application des dotfiles terminée"
else
echo "Mise à jour de chezmoi"
"$HOME/.bin/chezmoi" upgrade
echo "Mise à jour des dotfiles"
"$HOME/.bin/chezmoi" update -v
echo "Mise à jour des plugins ZSH"
"$HOME/.bin/sheldon" lock --update
mkdir -p "$HOME/.vim/backup"
fi