refactor(script/bootstrap): Checks and stuff
* Use case to check package manager for easier control * Finally use `install_aur_packages` function * Add a check to make sure it won't run on distro other than arch * Add a check to make sure AUR helper is already installed * Add extra check to make sure package is not empty
This commit is contained in:
parent
28b29c3487
commit
7e0770387b
1 changed files with 46 additions and 2 deletions
48
bootstrap
48
bootstrap
|
@ -16,16 +16,55 @@ packages_arch=(
|
||||||
ffmpeg4.4
|
ffmpeg4.4
|
||||||
)
|
)
|
||||||
|
|
||||||
|
packages_arch_aur=(
|
||||||
|
)
|
||||||
|
|
||||||
# === Function and Variable ===
|
# === Function and Variable ===
|
||||||
|
|
||||||
|
DISTRO="$(cat /etc/*-release | grep ^ID | head -n1 | cut -d '=' -f2 | cut -d '"' -f2)"
|
||||||
SUDO="${SUDO:-sudo}"
|
SUDO="${SUDO:-sudo}"
|
||||||
PACMAN="${PACMAN:-pacman}"
|
PACMAN="${PACMAN:-pacman}"
|
||||||
AUR="${AUR:-paru}"
|
AUR="${AUR:-paru}"
|
||||||
|
|
||||||
|
is_package_exists() {
|
||||||
|
[ $(command -v "$1" | wc -l) -gt 0 ] && echo 1 || echo 0
|
||||||
|
}
|
||||||
|
|
||||||
|
update_package_db() {
|
||||||
|
MSG_FAILED="Failed to update package database, skipping..."
|
||||||
|
case "$PACMAN" in
|
||||||
|
"pacman" )
|
||||||
|
$SUDO $PACMAN -Sy || echo $MSG_FAILED
|
||||||
|
;;
|
||||||
|
"apt" )
|
||||||
|
$SUDO $PACMAN update || echo $MSG_FAILED
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
|
||||||
install_package() {
|
install_package() {
|
||||||
[ $PACMAN = "pacman" ] && { $SUDO $PACMAN -S --noconfirm "$@" || echo "Failed to install some packages, skipping..."; }
|
[ "$1" = "" ] && { echo "No package candidate is specified, skipping..."; return; }
|
||||||
|
|
||||||
|
MSG_FAILED="Failed to install some packages, skipping..."
|
||||||
|
case "$PACMAN" in
|
||||||
|
"pacman" )
|
||||||
|
$SUDO $PACMAN -S --noconfirm "$@" || echo $MSG_FAILED
|
||||||
|
;;
|
||||||
|
"apt" )
|
||||||
|
$SUDO $PACMAN install "$@" || echo $MSG_FAILED
|
||||||
|
;;
|
||||||
|
esac
|
||||||
}
|
}
|
||||||
|
|
||||||
install_aur_package() {
|
install_aur_package() {
|
||||||
|
# >> Paranoia checks
|
||||||
|
[ $DISTRO = "arch" ] || { echo "AUR only available in Arch, skipping..."; return; }
|
||||||
|
|
||||||
|
[ $(is_package_exists $AUR) = 1 ] || { echo "AUR helper '$AUR' is not installed, skipping..."; return; }
|
||||||
|
|
||||||
|
[ "$1" = "" ] && { echo "No AUR package candidate is specified, skipping..."; return; }
|
||||||
|
# <<
|
||||||
|
|
||||||
$AUR -S --noconfirm "$@"
|
$AUR -S --noconfirm "$@"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -36,11 +75,16 @@ ln -si $ZI_DOTFILES/.config/xinitrc $HOME/.xinitrc
|
||||||
ln -si $ZI_DOTFILES/.config/xprofile $HOME/.xprofile
|
ln -si $ZI_DOTFILES/.config/xprofile $HOME/.xprofile
|
||||||
|
|
||||||
echo "Updating package database..."
|
echo "Updating package database..."
|
||||||
[ $PACMAN = "pacman" ] && { $SUDO $PACMAN -Sy || echo "Failed to update package database, skipping..."; }
|
update_package_db
|
||||||
|
|
||||||
echo "Installing packages..."
|
echo "Installing packages..."
|
||||||
install_package $packages_arch
|
install_package $packages_arch
|
||||||
|
|
||||||
|
[ $DISTRO = "arch" ] && {
|
||||||
|
echo "Installing AUR packages..."
|
||||||
|
install_aur_package $packages_arch_aur
|
||||||
|
}
|
||||||
|
|
||||||
echo "Changing default shell to zsh..."
|
echo "Changing default shell to zsh..."
|
||||||
sudo chsh -s $(which zsh)
|
sudo chsh -s $(which zsh)
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue