106 lines
2.4 KiB
Bash
Executable File
106 lines
2.4 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
|
|
curl
|
|
dialog
|
|
dos2unix
|
|
gawk
|
|
libwbclient
|
|
unzip
|
|
w3m
|
|
wine
|
|
winetricks
|
|
wine_gecko
|
|
wine-mono
|
|
sdl2
|
|
ncurses
|
|
mpg123
|
|
libpulse
|
|
libpng
|
|
libjpeg-turbo
|
|
gnutls
|
|
alsa-plugins
|
|
alsa-lib
|
|
mesa
|
|
openal
|
|
sox
|
|
sqlite3
|
|
translate-shell
|
|
xz
|
|
gst-plugins-bad
|
|
gst-plugins-good
|
|
gst-plugins-ugly
|
|
gst-libav
|
|
p7zip
|
|
xdg-utils
|
|
)
|
|
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 --noconfirm $i
|
|
done
|
|
}
|
|
|
|
configure_debian() {
|
|
packageList=(
|
|
curl
|
|
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
|