audiogame-manager/wine/install-dependencies.sh

100 lines
2.3 KiB
Bash
Executable File

#!/bin/bash
# Immediately exit if errors are encountered.
set -e
# Installer/configuration tool for wine
# If this fails on your system, please contact storm_dragon@linux-a11y.org
is_function() {
LC_ALL=C type "$1" 2> /dev/null | grep -q "$1 is a function"
}
configure_arch() {
packageList=(
cabextract
dialog
dos2unix
gawk
unzip
w3m
wget
wine
winetricks
wine_gecko
wine-mono
sdl2
ncurses
mpg123
libpulse
libpng
libjpeg-turbo
gnutls
alsa-plugins
alsa-lib
mesa
openal
xz
gst-plugins-bad
gst-plugins-good
gst-plugins-ugly
gst-libav
p7zip
)
if [[ "$(uname -m)" == "x86_64" ]]; then
# Enable multilib
sudo sed -i '/^#\[multilib\]$/{{N;s/^#\[multilib\]\n#Include = \/etc\/pacman.d\/mirrorlist$/[multilib]\nInclude = \/etc\/pacman.d\/mirrorlist/;t;P;D}}' /etc/pacman.conf
# include lib32 packages.
packageList+=(
lib32-sdl2
lib32-ncurses
lib32-mpg123
lib32-libpulse
lib32-libpng
lib32-libjpeg-turbo
lib32-gnutls
lib32-alsa-plugins
lib32-alsa-lib
lib32-mesa
lib32-openal
lib32-gst-plugins-good
lib32-gst-plugins-bad
lib32-gst-plugins-ugly
lib32-gst-libav)
fi
# Some of these may fail, so do them in a for loop.
yay -Syy
for i in "${packageList[@]}" ; do
yay -S --needed $i
done
}
configure_debian() {
packageList=(
dialog
gawk
gstreamer1.0-plugins-bad:i386
gstreamer1.0-plugins-good:i386
gstreamer1.0-plugins-ugly:i386
mono-complete
ncurses5-dev
w3m
winehq-stable
)
# make sure 32 bit libraries are available
sudo dpkg --add-architecture i386
sudo apt install --install-recommends ${packageList[*]}
}
distro="$(head -1 /etc/issue | cut -d ' ' -f1)"
distro="${distro,,}"
if is_function configure_${distro} ; then
configure_${distro}
else
echo "${distro^} is not yet supported. If you want it added, please contact storm_dragon@linux-a11y.org" | fold -s -w 72
fi
exit 0