mirror of
https://github.com/Maks1mS/devcontainers-features.git
synced 2025-03-31 05:43:44 +03:00
78 lines
2.0 KiB
Bash
78 lines
2.0 KiB
Bash
#!/bin/bash
|
|
set -e
|
|
|
|
WINEVERSION="${VERSION:-"latest"}"
|
|
|
|
WINEHOME=$_REMOTE_USER_HOME
|
|
WINEPREFIX="$WINEHOME/.wine32"
|
|
WINEARCH="win32"
|
|
WINEDEBUG="-all"
|
|
|
|
update_rc_file() {
|
|
# see if folder containing file exists
|
|
local rc_file_folder
|
|
rc_file_folder="$(dirname "$1")"
|
|
if [ ! -d "${rc_file_folder}" ]; then
|
|
echo "${rc_file_folder} does not exist. Skipping update of $1."
|
|
elif [ ! -e "$1" ] || [[ "$(cat "$1")" != *"$2"* ]]; then
|
|
echo "$2" >>"$1"
|
|
fi
|
|
}
|
|
|
|
install_debian() {
|
|
export DEBIAN_FRONTEND=noninteractive
|
|
dpkg --add-architecture i386
|
|
apt-get update
|
|
apt-get install -y --no-install-recommends \
|
|
apt-transport-https \
|
|
ca-certificates \
|
|
telnet \
|
|
cabextract \
|
|
gnupg2 \
|
|
wget
|
|
|
|
wget https://dl.winehq.org/wine-builds/winehq.key -O - | apt-key add -
|
|
echo "deb https://dl.winehq.org/wine-builds/debian $VERSION_CODENAME main" >/etc/apt/sources.list.d/winehq.list
|
|
|
|
if [ "${WINEVERSION}" != "latest" ]; then
|
|
{
|
|
echo "Package: *wine* *wine*:i386"
|
|
echo "Pin: version $WINEVERSION~*"
|
|
echo "Pin-Priority: 1001"
|
|
} >/etc/apt/preferences.d/winehq.pref
|
|
fi
|
|
|
|
apt-get update
|
|
apt-get install -y --no-install-recommends winehq-staging
|
|
|
|
wget https://raw.githubusercontent.com/Winetricks/winetricks/master/src/winetricks -O /usr/bin/winetricks
|
|
chmod +rx /usr/bin/winetricks
|
|
|
|
snippet="export WINEHOME=\"$_REMOTE_USER_HOME\"
|
|
export WINEPREFIX=\"\$WINEHOME/.wine32\"
|
|
export WINEARCH=win32
|
|
export WINEDEBUG=-all"
|
|
|
|
update_rc_file "$_REMOTE_USER_HOME/.zshenv" "${snippet}"
|
|
update_rc_file "$_REMOTE_USER_HOME/.profile" "${snippet}"
|
|
update_rc_file "$_REMOTE_USER_HOME/.bashrc" "${snippet}"
|
|
|
|
su -l "$_REMOTE_USER" -c "mkdir -p $WINEPREFIX && wine wineboot --init"
|
|
su -l "$_REMOTE_USER" -c "echo \"check-certificate=off\" >> ~/.wgetrc"
|
|
su -l "$_REMOTE_USER" -c "winetricks corefonts"
|
|
|
|
# Cleanup
|
|
apt purge --auto-remove -y
|
|
apt autoremove --purge -y
|
|
rm -rf /var/lib/apt/lists/*
|
|
}
|
|
|
|
. /etc/os-release
|
|
|
|
if [ "${ID}" = "debian" ]; then
|
|
install_debian
|
|
else
|
|
echo "Linux distro ${ID} not supported."
|
|
exit 1
|
|
fi
|