#!/bin/bash # _ _ _ # | | (_) |__ _ __ __ _ _ __ _ _ # | | | | '_ \| '__/ _` | '__| | | | # | |___| | |_) | | | (_| | | | |_| | # |_____|_|_.__/|_| \__,_|_| \__, | # |___/ # # by Stephan Raabe (2023) # ----------------------------------------------------- # ------------------------------------------------------ # Function: Is package installed # ------------------------------------------------------ _isInstalledPacman() { package="$1"; check="$(sudo pacman -Qs --color always "${package}" | grep "local" | grep "${package} ")"; if [ -n "${check}" ] ; then echo 0; #'0' means 'true' in Bash return; #true fi; echo 1; #'1' means 'false' in Bash return; #false } _isInstalledYay() { package="$1"; check="$(yay -Qs --color always "${package}" | grep "local" | grep "${package} ")"; if [ -n "${check}" ] ; then echo 0; #'0' means 'true' in Bash return; #true fi; echo 1; #'1' means 'false' in Bash return; #false } # ------------------------------------------------------ # Function Install all package if not installed # ------------------------------------------------------ _installPackagesPacman() { toInstall=(); for pkg; do if [[ $(_isInstalledPacman "${pkg}") == 0 ]]; then echo "${pkg} is already installed."; continue; fi; toInstall+=("${pkg}"); done; if [[ "${toInstall[@]}" == "" ]] ; then # echo "All pacman packages are already installed."; return; fi; printf "Packages not installed:\n%s\n" "${toInstall[@]}"; sudo pacman --noconfirm -S "${toInstall[@]}"; } _installPackagesYay() { toInstall=(); for pkg; do if [[ $(_isInstalledYay "${pkg}") == 0 ]]; then echo "${pkg} is already installed."; continue; fi; toInstall+=("${pkg}"); done; if [[ "${toInstall[@]}" == "" ]] ; then # echo "All packages are already installed."; return; fi; printf "AUR ackages not installed:\n%s\n" "${toInstall[@]}"; yay --noconfirm -S "${toInstall[@]}"; } # ------------------------------------------------------ # Create symbolic links # ------------------------------------------------------ _installSymLink() { symlink="$1"; linksource="$2"; linktarget="$3"; while true; do read -p "DO YOU WANT TO INSTALL ${symlink}? (Yy/Nn): " yn case $yn in [Yy]* ) if [ -L "${symlink}" ]; then rm ${symlink} ln -s ${linksource} ${linktarget} echo "Symlink ${symlink} created." else if [ -d ${symlink} ]; then rm -rf ${symlink}/ ln -s ${linksource} ${linktarget} echo "Symlink for directory ${symlink}/ created." else if [ -f ${symlink} ]; then rm ${symlink} ln -s ${linksource} ${linktarget} echo "Symlink to file ${symlink} created." else ln -s ${linksource} ${linktarget} echo "New symlink ${linksource} -> ${linktarget} created." fi fi fi break;; [Nn]* ) # exit; break;; * ) echo "Please answer yes or no.";; esac done }