Refactor gaming-setup.sh (#380)

* Refactored + removed bashisms

 - revieved all packages
 - changed the structure to have synergy with other scripts
 - updated dnf & zypper commands
 - added nala

* use apt-get instead of apt

Co-authored-by: Nyx <144965845+nnyyxxxx@users.noreply.github.com>

* small refactor (#3)

Co-authored-by: nnyyxxxx <nnyyxxxx@users.noreply.github.com>

* apt-get + quote escalation

---------

Co-authored-by: Nyx <144965845+nnyyxxxx@users.noreply.github.com>
Co-authored-by: nnyyxxxx <nnyyxxxx@users.noreply.github.com>
This commit is contained in:
Adam Perkowski 2024-09-18 21:10:21 +02:00 committed by GitHub
parent ad9d1662da
commit 44d9360448
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -3,35 +3,59 @@
. ../common-script.sh . ../common-script.sh
installDepend() { installDepend() {
## Check for dependencies. # Check for dependencies
DEPENDENCIES='wine dbus'
printf "%b\n" "${YELLOW}Installing dependencies...${RC}" printf "%b\n" "${YELLOW}Installing dependencies...${RC}"
if [ "$PACKAGER" = "pacman" ]; then case "$PACKAGER" in
if ! grep -q "^\s*\[multilib\]" /etc/pacman.conf; then pacman)
echo "[multilib]" | $ESCALATION_TOOL tee -a /etc/pacman.conf #Check for multilib
echo "Include = /etc/pacman.d/mirrorlist" | $ESCALATION_TOOL tee -a /etc/pacman.conf if ! grep -q "^\s*$$multilib$$" /etc/pacman.conf; then
$ESCALATION_TOOL ${PACKAGER} -Syu echo "[multilib]" | "$ESCALATION_TOOL" tee -a /etc/pacman.conf
echo "Include = /etc/pacman.d/mirrorlist" | "$ESCALATION_TOOL" tee -a /etc/pacman.conf
"$ESCALATION_TOOL" "$PACKAGER" -Syu
else else
echo "Multilib is already enabled." printf "%b\n" "${GREEN}Multilib is already enabled.${RC}"
fi
$AUR_HELPER -S --needed --noconfirm wine giflib lib32-giflib libpng lib32-libpng libldap lib32-libldap gnutls lib32-gnutls \
mpg123 lib32-mpg123 openal lib32-openal v4l-utils lib32-v4l-utils libpulse lib32-libpulse libgpg-error \
lib32-libgpg-error alsa-plugins lib32-alsa-plugins alsa-lib lib32-alsa-lib libjpeg-turbo lib32-libjpeg-turbo \
sqlite lib32-sqlite libxcomposite lib32-libxcomposite libxinerama lib32-libgcrypt libgcrypt lib32-libxinerama \
ncurses lib32-ncurses ocl-icd lib32-ocl-icd libxslt lib32-libxslt libva lib32-libva gtk3 \
lib32-gtk3 gst-plugins-base-libs lib32-gst-plugins-base-libs vulkan-icd-loader lib32-vulkan-icd-loader
elif [ "$PACKAGER" = "apt-get" ]; then
$ESCALATION_TOOL ${PACKAGER} update
$ESCALATION_TOOL ${PACKAGER} install -y wine64 wine32 libasound2-plugins:i386 libsdl2-2.0-0:i386 libdbus-1-3:i386 libsqlite3-0:i386
elif [ "$PACKAGER" = "dnf" ] || [ "$PACKAGER" = "zypper" ]; then
$ESCALATION_TOOL ${PACKAGER} install -y wine
else
$ESCALATION_TOOL ${PACKAGER} install -y ${DEPENDENCIES}
fi fi
DISTRO_DEPS="gnutls lib32-gnutls base-devel gtk2 gtk3 lib32-gtk2 lib32-gtk3 libpulse lib32-libpulse alsa-lib lib32-alsa-lib \
alsa-utils alsa-plugins lib32-alsa-plugins alsa-lib lib32-alsa-lib giflib lib32-giflib libpng lib32-libpng \
libldap lib32-libldap openal lib32-openal libxcomposite lib32-libxcomposite libxinerama lib32-libxinerama \
ncurses lib32-ncurses vulkan-icd-loader lib32-vulkan-icd-loader ocl-icd lib32-ocl-icd libva lib32-libva \
gst-plugins-base-libs lib32-gst-plugins-base-libs sdl2"
$AUR_HELPER -S --needed --noconfirm "$DEPENDENCIES" $DISTRO_DEPS
;;
apt-get|nala)
DISTRO_DEPS="libasound2 libsdl2 wine64 wine32"
"$ESCALATION_TOOL" "$PACKAGER" update
"$ESCALATION_TOOL" dpkg --add-architecture i386
"$ESCALATION_TOOL" "$PACKAGER" install -y software-properties-common
"$ESCALATION_TOOL" apt-add-repository contrib -y
"$ESCALATION_TOOL" "$PACKAGER" update
"$ESCALATION_TOOL" "$PACKAGER" install -y "$DEPENDENCIES" $DISTRO_DEPS
;;
dnf)
"$ESCALATION_TOOL" "$PACKAGER" install https://mirrors.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm https://mirrors.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm -y
"$ESCALATION_TOOL" "$PACKAGER" config-manager --enable fedora-cisco-openh264 -y
"$ESCALATION_TOOL" "$PACKAGER" install -y $DEPENDENCIES
;;
zypper)
"$ESCALATION_TOOL" "$PACKAGER" -n install $DEPENDENCIES
;;
*)
"$ESCALATION_TOOL" "$PACKAGER" install -y $DEPENDENCIES
;;
esac
} }
install_additional_dependencies() { installAdditionalDepend() {
case $(command -v apt-get || command -v zypper || command -v dnf || command -v pacman) in case "$PACKAGER" in
*apt-get) pacman)
DISTRO_DEPS='steam lutris goverlay'
"$ESCALATION_TOOL" "$PACKAGER" -S --needed --noconfirm $DISTRO_DEPS
;;
apt-get|nala)
version=$(git -c 'versionsort.suffix=-' ls-remote --tags --sort='v:refname' https://github.com/lutris/lutris | version=$(git -c 'versionsort.suffix=-' ls-remote --tags --sort='v:refname' https://github.com/lutris/lutris |
grep -v 'beta' | grep -v 'beta' |
tail -n1 | tail -n1 |
@ -39,54 +63,33 @@ install_additional_dependencies() {
version_no_v=$(echo "$version" | tr -d v) version_no_v=$(echo "$version" | tr -d v)
curl -sSLo "lutris_${version_no_v}_all.deb" "https://github.com/lutris/lutris/releases/download/${version}/lutris_${version_no_v}_all.deb" curl -sSLo "lutris_${version_no_v}_all.deb" "https://github.com/lutris/lutris/releases/download/${version}/lutris_${version_no_v}_all.deb"
# Install the downloaded .deb package using apt-get
echo "Installing lutris_${version_no_v}_all.deb"
$ESCALATION_TOOL apt-get update
$ESCALATION_TOOL apt-get install ./lutris_${version_no_v}_all.deb
# Clean up the downloaded .deb file printf "%b\n" "${YELLOW}Installing Lutris...${RC}"
"$ESCALATION_TOOL" "$PACKAGER" update
"$ESCALATION_TOOL" "$PACKAGER" install ./lutris_${version_no_v}_all.deb
rm lutris_${version_no_v}_all.deb rm lutris_${version_no_v}_all.deb
echo "Lutris Installation complete." printf "%b\n" "${GREEN}Lutris Installation complete.${RC}"
echo "Installing steam..." printf "%b\n" "${YELLOW}Installing steam...${RC}"
#Install steam on Debian if lsb_release -i | grep -qi Debian; then
if (lsb_release -i | grep -qi Debian); then "$ESCALATION_TOOL" apt-add-repository non-free -y
#Enable i386 repos "$ESCALATION_TOOL" "$PACKAGER" install steam-installer -y
$ESCALATION_TOOL dpkg --add-architecture i386
# Install software-properties-common to be able to add repos
$ESCALATION_TOOL apt-get install -y software-properties-common
# Add repos necessary for installing steam
$ESCALATION_TOOL apt-add-repository contrib -y
$ESCALATION_TOOL apt-add-repository non-free -y
#Install steam
$ESCALATION_TOOL apt-get install steam-installer -y
else else
#Install steam on Ubuntu "$ESCALATION_TOOL" "$PACKAGER" install -y steam
$ESCALATION_TOOL apt-get install -y steam
fi fi
;; ;;
*zypper) dnf)
DISTRO_DEPS='steam lutris'
"$ESCALATION_TOOL" "$PACKAGER" install -y $DISTRO_DEPS
;; ;;
*dnf) zypper)
# Flatpak
;; DISTRO_DEPS='lutris'
*pacman) "$ESCALATION_TOOL" "$PACKAGER" -n install $DISTRO_DEPS
echo "Installing Steam for Arch Linux..."
$ESCALATION_TOOL pacman -S --needed --noconfirm steam
echo "Steam installation complete."
echo "Installing Lutris for Arch Linux..."
$ESCALATION_TOOL pacman -S --needed --noconfirm lutris
echo "Lutris installation complete."
echo "Installing GOverlay for Arch Linux..."
$ESCALATION_TOOL pacman -S --needed --noconfirm goverlay
echo "GOverlay installation complete."
;; ;;
*) *)
;; ;;
esac esac
} }
@ -95,4 +98,4 @@ checkEnv
checkAURHelper checkAURHelper
checkEscalationTool checkEscalationTool
installDepend installDepend
install_additional_dependencies installAdditionalDepend