Files
Autodesk-Fusion-360-for-Linux/files/builds/stable-branch/bin/install.sh
2024-03-24 03:29:38 -04:00

1329 lines
55 KiB
Bash
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/usr/bin/env bash
####################################################################################################
# Name: Autodesk Fusion 360 - Setup Wizard (Linux) #
# Description: With this file you can install Autodesk Fusion 360 on Linux. #
# Author: Steve Zabka #
# Author URI: https://cryinkfly.com #
# License: MIT #
# Copyright (c) 2020-2024 #
# Time/Date: 07:29/23.03.2024 #
# Version: 1.9.7 #
####################################################################################################
# Path: /$HOME/.fusion360/bin/install.sh
###############################################################################################################################################################
# DESCRIPTION IN DETAIL #
###############################################################################################################################################################
# With the help of my setup wizard, you will be given a way to install Autodesk Fusion 360 with some extensions on #
# Linux so that you don't have to use Windows or macOS for this program in the future! #
# #
# Also, my setup wizard will guides you through the installation step by step and will install some required packages. #
# #
# The next one is you have the option of installing the program directly on your system or you can install it on an external storage medium. #
# #
# But it's important to know, you must to purchase the licenses directly from the manufacturer of Autodesk Fusion 360, when you will work with them on Linux! #
###############################################################################################################################################################
###############################################################################################################################################################
# THE INITIALIZATION OF DEPENDENCIES STARTS HERE: #
###############################################################################################################################################################
# Default-Path:
SP_PATH="$HOME/.fusion360"
# Reset the graphics driver value:
WP_DRIVER="DXVK"
# Reset the logfile-value for the installation of Autodesk Fusion 360!
SP_FUSION360_CHANGE=0
REQUIRED_COMMANDS=(
"yad"
"wget"
)
# URL to download Fusion360Installer.exe
#SP_FUSION360_INSTALLER_URL="https://dl.appstreaming.autodesk.com/production/installers/Fusion%20360%20Admin%20Install.exe" <-- Old Link!!!
SP_FUSION360_INSTALLER_URL="https://dl.appstreaming.autodesk.com/production/installers/Fusion%20Admin%20Install.exe"
# URL to download Microsoft Edge WebView2.Exec
SP_WEBVIEW2_INSTALLER_URL="https://github.com/aedancullen/webview2-evergreen-standalone-installer-archive/releases/download/109.0.1518.78/MicrosoftEdgeWebView2RuntimeInstallerX64.exe"
###############################################################################################################################################################
function SP_CHECK_REQUIRED_COMMANDS {
for cmd in "${REQUIRED_COMMANDS[@]}"; do
echo "Testing presence of ${cmd} ..."
local path="$(command -v "${cmd}")"
if [ -n "${path}" ]; then
echo "Found: ${path}"
else
echo "No ${cmd} found in \$PATH!"
exit 1
fi
done
}
function SP_STRUCTURE {
mkdir -p "$SP_PATH/bin"
mkdir -p "$SP_PATH/logs"
mkdir -p "$SP_PATH/config"
mkdir -p "$SP_PATH/graphics"
mkdir -p "$SP_PATH/downloads"
mkdir -p "$SP_PATH/extensions"
mkdir -p "$SP_PATH/wineprefixes/default" # Fixes a bug in the standard installation routine!
mkdir -p "$SP_PATH/locale/cs-CZ"
mkdir -p "$SP_PATH/locale/de-DE"
mkdir -p "$SP_PATH/locale/en-US"
mkdir -p "$SP_PATH/locale/es-ES"
mkdir -p "$SP_PATH/locale/fr-FR"
mkdir -p "$SP_PATH/locale/it-IT"
mkdir -p "$SP_PATH/locale/ja-JP"
mkdir -p "$SP_PATH/locale/ko-KR"
mkdir -p "$SP_PATH/locale/zh-CN"
# Create a temporary folder with some information for the next step:
mkdir -p /tmp/fusion360
echo "English" > /tmp/fusion360/settings.txt
echo "DXVK" >> /tmp/fusion360/settings.txt
echo "English" > "$SP_PATH/config/settings.txt"
echo "DXVK" >> "$SP_PATH/config/settings.txt"
}
###############################################################################################################################################################
# ALL LOG-FUNCTIONS ARE ARRANGED HERE: #
###############################################################################################################################################################
# Provides information about setup actions during installation.
function SP_LOGFILE_INSTALL {
exec 5> "$SP_PATH/logs/setupact.log"
BASH_XTRACEFD="5"
set -x
}
###############################################################################################################################################################
# Check if already exists a Autodesk Fusion 360 installation on your system.
function SP_LOGFILE_WINEPREFIX_CHECK {
SP_FUSION360_WINEPREFIX_CHECK="$SP_PATH/logs/wineprefixes.log" # Search for wineprefixes.log
if [ -f "$SP_FUSION360_WINEPREFIX_CHECK" ]; then
cp "$SP_FUSION360_WINEPREFIX_CHECK" "/tmp/fusion360/logs"
SP_LOGFILE_WINEPREFIX_INFO # Add/Modify or Delete a exists Wineprefix of Autodesk Fusion 360.
else
SP_INSTALLDIR # Add a new Wineprefix of Autodesk Fusion 360.
fi
}
###############################################################################################################################################################
# Create a WP-TYPE for the .desktop-files:
function SP_GET_WINEPREFIX_TYPE {
if [[ $WP_DIRECTORY = "$SP_PATH/wineprefixes/default" ]]; then
WP_TYPE="default"
else
# Create the directory (custom, custom-1, custom-2, ...)
SP_ADD_CUSTOM_WINEPREFIX_TYPE
fi
}
function SP_ADD_CUSTOM_WINEPREFIX_TYPE {
WP_TYPE="custom"
if [[ -e $WP_TYPE || -L $WP_TYPE ]] ; then
i=0
while [[ -e $WP_TYPE-$i || -L $WP_TYPE-$i ]] ; do
(( i++ ))
done
WP_TYPE=$WP_TYPE-$i
fi
}
###############################################################################################################################################################
function SP_LOGFILE_WINEPREFIX {
if [ $SP_FUSION360_CHANGE -eq 1 ]; then
echo "FALSE" >> "$SP_PATH/logs/wineprefixes.log"
echo "$WP_TYPE" >> "$SP_PATH/logs/wineprefixes.log"
echo "$WP_DRIVER" >> "$SP_PATH/logs/wineprefixes.log"
echo "$WP_DIRECTORY" >> "$SP_PATH/logs/wineprefixes.log"
fi
}
###############################################################################################################################################################
function SP_INSTALLDIR_CHECK {
# Check if this wineprefix already exist or not!
WP_PATH_CHECK="$WP_DIRECTORY/box-run.sh"
if [[ -f "$WP_PATH_CHECK" ]]; then
echo "FALSE"
SP_INSTALLDIR_INFO
else
echo "TRUE"
SP_FUSION360_CHANGE=1
SP_WINE_SETTINGS
fi
}
###############################################################################################################################################################
function SP_CHECK_WINE_VERSION {
#Wine version checking, warn user if their wine install is out of date
WINE_VERSION="$(wine --version | cut -d ' ' -f1 | sed -e 's/wine-//' -e 's/-rc.*//')"
WINE_VERSION_MINIMUM=8.14
if (( $(echo "$WINE_VERSION < $WINE_VERSION_MINIMUM" | bc -l) )); then
echo "Your version of wine ${WINE_VERSION} is too old and will not work with Autodesk Fusion. You should upgrade to at least ${WINE_VERSION_MINIMUM}"
SP_OS_SETTINGS
else
SP_FUSION360_INSTALL
fi
}
###############################################################################################################################################################
# ALL LOCALE-FUNCTIONS ARE ARRANGED HERE: #
###############################################################################################################################################################
# Load the index of locale files:
function SP_LOCALE_INDEX {
wget -NP "$SP_PATH/locale" https://github.com/cryinkfly/Autodesk-Fusion-360-for-Linux/raw/main/files/builds/stable-branch/locale/locale.sh
chmod +x "$SP_PATH/locale/locale.sh"
# shellcheck source=../locale/locale.sh
source "$SP_PATH/locale/locale.sh"
SP_LOCALE_EN
}
# Czech:
function SP_LOCALE_CS {
# shellcheck source=../locale/cs-CZ/locale-cs.sh
source "$SP_PATH/locale/cs-CZ/locale-cs.sh"
}
# German:
function SP_LOCALE_DE {
# shellcheck source=../locale/de-DE/locale-de.sh
source "$SP_PATH/locale/de-DE/locale-de.sh"
}
# English:
function SP_LOCALE_EN {
# shellcheck source=../locale/en-US/locale-en.sh
source "$SP_PATH/locale/en-US/locale-en.sh"
}
# Spanish:
function SP_LOCALE_ES {
# shellcheck source=../locale/es-ES/locale-es.sh
source "$SP_PATH/locale/es-ES/locale-es.sh"
}
# French:
function SP_LOCALE_FR {
# shellcheck source=../locale/fr-FR/locale-fr.sh
source "$SP_PATH/locale/fr-FR/locale-fr.sh"
}
# Italian:
function SP_LOCALE_IT {
# shellcheck source=../locale/it-IT/locale-it.sh
source "$SP_PATH/locale/it-IT/locale-it.sh"
}
# Japanese:
function SP_LOCALE_JA {
# shellcheck source=../locale/ja-JP/locale-ja.sh
source "$SP_PATH/locale/ja-JP/locale-ja.sh"
}
# Korean:
function SP_LOCALE_KO {
# shellcheck source=../locale/ko-KR/locale-ko.sh
source "$SP_PATH/locale/ko-KR/locale-ko.sh"
}
# Chinese:
function SP_LOCALE_ZH {
# shellcheck source=../locale/zh-CN/locale-zh.sh
source "$SP_PATH/locale/zh-CN/locale-zh.sh"
}
###############################################################################################################################################################
function SP_LOCALE_SETTINGS {
SP_LOCALE=$(awk 'NR == 1' /tmp/fusion360/settings.txt)
case "$SP_LOCALE" in
"Czech")
echo "CS"
SP_LOCALE_CS
;;
"English")
echo "EN"
SP_LOCALE_EN
;;
"German")
echo "DE"
SP_LOCALE_DE
;;
"Spanish")
echo "ES"
SP_LOCALE_ES
;;
"French")
echo "FR"
SP_LOCALE_FR
;;
"Italian")
echo "IT"
SP_LOCALE_IT
;;
"Japanese")
echo "JP"
SP_LOCALE_JP
;;
"Korean")
echo "KO"
SP_LOCALE_KO
;;
"Chinese")
echo "ZH"
SP_LOCALE_ZH
;;
*)
echo "EN"
SP_LOCALE_EN
;;
esac
}
###############################################################################################################################################################
# DONWLOAD WINETRICKS, AUTODESK FUSION 360 AND WEBVIEW2: #
###############################################################################################################################################################
# Load the newest winetricks version:
function SP_WINETRICKS_LOAD {
wget -Nc -P "$SP_PATH/bin" https://raw.githubusercontent.com/Winetricks/winetricks/master/src/winetricks
chmod +x "$SP_PATH/bin/winetricks"
}
###############################################################################################################################################################
# Load newest Autodesk Fusion 360 installer version for the Setup Wizard!
function SP_FUSION360_INSTALLER_LOAD {
# Search for a existing installer of Autodesk Fusion 360
FUSION360_INSTALLER="$SP_PATH/downloads/Fusion360installer.exe"
if [ -f "$FUSION360_INSTALLER" ]; then
echo "The Autodesk Fusion 360 installer exist!"
else
echo "The Autodesk Fusion 360 installer doesn't exist and will be downloaded for you!"
wget "$SP_FUSION360_INSTALLER_URL" -cO Fusion360installer.exe
mv "Fusion360installer.exe" "$SP_PATH/downloads/Fusion360installer.exe"
fi
}
###############################################################################################################################################################
# Load newest WebView2 installer version for the Setup Wizard!
function SP_WEBVIEW2_INSTALLER_LOAD {
# Search for a existing installer of WEBVIEW2
WEBVIEW2_INSTALLER="$SP_PATH/downloads/WebView2installer.exe"
if [ -f "WEBVIEW2_INSTALLER" ]; then
echo "The WebView2installer installer exist!"
else
echo "The WebView2installer installer doesn't exist and will be downloaded for you!"
wget "$SP_WEBVIEW2_INSTALLER_URL" -cO WebView2installer.exe
mv "WebView2installer.exe" "$SP_PATH/downloads/WebView2installer.exe"
fi
}
###############################################################################################################################################################
# ALL FUNCTIONS FOR DESKTOP-FILES START HERE: #
###############################################################################################################################################################
# Load the icons and .desktop-files:
function SP_FUSION360_SHORTCUTS_LOAD {
# Create a .desktop file (launcher.sh) for Autodesk Fusion 360!
wget -Nc -P "$SP_PATH/graphics" https://raw.githubusercontent.com/cryinkfly/Autodesk-Fusion-360-for-Linux/main/files/builds/stable-branch/bin/fusion360.svg
rm "$HOME/.local/share/applications/wine/Programs/Autodesk/Autodesk Fusion 360.desktop"
mkdir -p "$HOME/.local/share/applications/wine/Programs/Autodesk/Fusion360/$WP_TYPE"
cat >> "$HOME/.local/share/applications/wine/Programs/Autodesk/Fusion360/$WP_TYPE/fusion360.desktop" << EOF
[Desktop Entry]
Name=Autodesk Fusion 360 - $WP_TYPE
GenericName=CAD Application
GenericName[cs]=Aplikace CAD
GenericName[de]=CAD-Anwendung
GenericName[es]=Aplicación CAD
GenericName[fr]=Application CAO
GenericName[it]=Applicazione CAD
GenericName[ja]=CADアプリケーション
GenericName[ko]=CAD 응용
GenericName[zh_CN]=计算机辅助设计应用
Comment=Autodesk Fusion 360 is a cloud-based 3D modeling, CAD, CAM, and PCB software platform for product design and manufacturing.
Comment[cs]=Autodesk Fusion 360 je cloudová platforma pro 3D modelování, CAD, CAM a PCB určená k navrhování a výrobě produktů.
Comment[de]=Autodesk Fusion 360 ist eine cloudbasierte Softwareplattform für Modellierung, CAD, CAM, CAE und Leiterplatten in 3D für Produktdesign und Fertigung.
Comment[es]=Autodesk Fusion 360 es una plataforma de software de modelado 3D, CAD, CAM y PCB basada en la nube destinada al diseño y la fabricación de productos.
Comment[fr]=Autodesk Fusion 360 est une plate-forme logicielle 3D cloud de modélisation, de CAO, de FAO, dIAO et de conception de circuits imprimés destinée à la conception et à la fabrication de produits.
Comment[it]=Autodesk Fusion 360 è una piattaforma software di modellazione 3D, CAD, CAM, CAE e PCB basata sul cloud per la progettazione e la realizzazione di prodotti.
Comment[ja]=Autodesk Fusion 360は、製品の設計と製造のためのクラウドベースの3Dモデリング、CAD、CAM、およびPCBソフトウェアプラットフォームです。
Comment[ko]=Autodesk Fusion 360은 제품 설계 및 제조를 위한 클라우드 기반 3D 모델링, CAD, CAM 및 PCB 소프트웨어 플랫폼입니다.
Comment[zh_CN]=Autodesk Fusion 360 是一个基于云的 3D 建模、CAD、CAM 和 PCB 软件平台,用于产品设计和制造。
Exec=$WP_DIRECTORY/box-run.sh
Type=Application
Categories=Education;Engineering;
StartupNotify=true
Icon=$SP_PATH/graphics/fusion360.svg
Terminal=false
Path=$WP_DIRECTORY
EOF
# Create a .desktop file (uninstall.sh) for Autodesk Fusion 360!
wget -Nc -P "$SP_PATH/graphics" https://raw.githubusercontent.com/cryinkfly/Autodesk-Fusion-360-for-Linux/main/files/builds/stable-branch/bin/fusion360.svg
cat >> "$HOME/.local/share/applications/wine/Programs/Autodesk/Fusion360/$WP_TYPE/fusion360uninstall.desktop" << EOF
[Desktop Entry]
Name=Autodesk Fusion 360 (Uninstall) - $WP_TYPE
Name[cs]=Autodesk Fusion 360 (Odinstalovat) - $WP_TYPE
Name[de]=Autodesk Fusion 360 (Deinstallieren) - $WP_TYPE
Name[es]=Autodesk Fusion 360 (Desinstalar) - $WP_TYPE
Name[fr]=Autodesk Fusion 360 (Désinstaller) - $WP_TYPE
Name[it]=Autodesk Fusion 360 (Disinstalla) - $WP_TYPE
Name[ja]=Autodesk Fusion 360 (アンインストール) - $WP_TYPE
Name[ko]=Autodesk Fusion 360 (제거) - $WP_TYPE
Name[zh_CN]=Autodesk Fusion 360 (卸载) - $WP_TYPE
Comment=With this program you can delete Autodesk Fusion 360 on your system!
Comment[cs]=Pomocí tohoto programu můžete odstranit Autodesk Fusion 360 ze svého systému!
Comment[de]=Mit diesem Programm können Sie Autodesk Fusion 360 auf Ihrem System löschen!
Comment[es]=¡Con este programa puede eliminar Autodesk Fusion 360 en su sistema!
Comment[fr]=Avec ce programme, vous pouvez supprimer Autodesk Fusion 360 sur votre système !
Comment[it]=Con questo programma puoi eliminare Autodesk Fusion 360 sul tuo sistema!
Comment[ja]=このプログラムを使用すると、システム上のAutodeskFusion360を削除できます。
Comment[ko]=이 프로그램을 사용하면 시스템에서 Autodesk Fusion 360을 삭제할 수 있습니다!
Comment[zh_CN]=使用此程序,您可以删除系统上的 Autodesk Fusion 360
Exec=bash ./uninstall.sh
Type=Application
Categories=Education;Engineering;
StartupNotify=true
Icon=$SP_PATH/graphics/fusion360.svg
Terminal=false
Path=$SP_PATH/bin
EOF
#Create mimetype link to handle web login call backs to the Identity Manager
cat > $HOME/.local/share/applications/adskidmgr-opener.desktop << EOL
[Desktop Entry]
Type=Application
Name=adskidmgr Scheme Handler
Exec=env WINEPREFIX="$WP_DIRECTORY" wine "C:\Program Files\Autodesk\webdeploy\production\99249ee497b13684a43f5bacd5f1f09974049c6b\Autodesk Identity Manager\AdskIdentityManager.exe" %u
StartupNotify=false
MimeType=x-scheme-handler/adskidmgr;
EOL
xdg-mime default adskidmgr-opener.desktop x-scheme-handler/adskidmgr
#Disable Debug messages on regular runs, we dont have a terminal, so speed up the system by not wasting time prining them into the Void
sed -i 's/=env WINEPREFIX=/=env WINEDEBUG=-all env WINEPREFIX=/g' "$HOME/.local/share/applications/wine/Programs/Autodesk/Fusion360/$WP_TYPE/fusion360.desktop"
# Create a link to the Wineprefixes Box:
cat >> "$WP_DIRECTORY/box-run.sh" << EOF
#!/usr/bin/env bash
WP_BOX='$WP_DIRECTORY' source $SP_PATH/bin/launcher.sh
EOF
chmod +x "$WP_DIRECTORY/box-run.sh"
# Download some script files for Autodesk Fusion 360!
wget -NP "$SP_PATH/bin" https://raw.githubusercontent.com/cryinkfly/Autodesk-Fusion-360-for-Linux/main/files/builds/stable-branch/bin/uninstall.sh
chmod +x "$SP_PATH/bin/uninstall.sh"
wget -NP "$SP_PATH/bin" https://raw.githubusercontent.com/cryinkfly/Autodesk-Fusion-360-for-Linux/main/files/builds/stable-branch/bin/launcher.sh
chmod +x "$SP_PATH/bin/launcher.sh"
wget -NP "$SP_PATH/bin" https://raw.githubusercontent.com/cryinkfly/Autodesk-Fusion-360-for-Linux/main/files/builds/stable-branch/bin/update.sh
chmod +x "$SP_PATH/bin/update.sh"
}
###############################################################################################################################################################
# ALL FUNCTIONS FOR DXVK AND OPENGL START HERE: #
###############################################################################################################################################################
function SP_DXVK_OPENGL_1 {
if [[ $WP_DRIVER = "DXVK" ]]; then
WINEPREFIX=$WP_DIRECTORY sh "$SP_PATH/bin/winetricks" -q dxvk
wget -Nc -P "$WP_DIRECTORY/drive_c/users/$USER/Downloads" https://github.com/cryinkfly/Autodesk-Fusion-360-for-Linux/raw/main/files/builds/stable-branch/driver/video/dxvk/DXVK.reg
# Add the "return"-option. Here you can read more about it -> https://github.com/koalaman/shellcheck/issues/592
cd "$WP_DIRECTORY/drive_c/users/$USER/Downloads" || return
WINEPREFIX=$WP_DIRECTORY wine regedit.exe DXVK.reg
fi
}
function SP_DXVK_OPENGL_2 {
if [[ $WP_DRIVER = "DXVK" ]]; then
wget -N https://github.com/cryinkfly/Autodesk-Fusion-360-for-Linux/raw/main/files/builds/stable-branch/driver/video/dxvk/NMachineSpecificOptions.xml
else
wget -N https://github.com/cryinkfly/Autodesk-Fusion-360-for-Linux/raw/main/files/builds/stable-branch/driver/video/opengl/NMachineSpecificOptions.xml
fi
}
###############################################################################################################################################################
function SP_DRIVER_SETTINGS {
WP_DRIVER=$(awk 'NR == 2' /tmp/fusion360/settings.txt)
}
###############################################################################################################################################################
# ALL FUNCTIONS FOR WINE AND WINETRICKS START HERE: #
###############################################################################################################################################################
# Start Fusion360installer.exe - Part 1
function SP_FUSION360_INSTALL_DEFAULT_1 {
WINEPREFIX="$WP_DIRECTORY" timeout -k 10m 9m wine "$WP_DIRECTORY/drive_c/users/$USER/Downloads/Fusion360installer.exe" --quiet
}
# Start Fusion360installer.exe - Part 2
function SP_FUSION360_INSTALL_DEFAULT_2 {
WINEPREFIX="$WP_DIRECTORY" timeout -k 5m 4m wine "$WP_DIRECTORY/drive_c/users/$USER/Downloads/Fusion360installer.exe" --quiet
}
###############################################################################################################################################################
# Start Fusion360installer.exe - Part 1 (Refresh)
function SP_FUSION360_INSTALL_REFRESH_1 {
WINEPREFIX="$WP_WINEPREFIXES_REFRESH" timeout -k 10m 9m wine "$WP_WINEPREFIXES_REFRESH/drive_c/users/$USER/Downloads/Fusion360installer.exe" --quiet
}
# Start Fusion360installer.exe - Part 2 (Refresh)
function SP_FUSION360_INSTALL_REFRESH_2 {
WINEPREFIX="$WP_WINEPREFIXES_REFRESH" timeout -k 5m 4m wine "$WP_WINEPREFIXES_REFRESH/drive_c/users/$USER/Downloads/Fusion360installer.exe" --quiet
}
###############################################################################################################################################################
# Autodesk Fusion 360 will now be installed using Wine and Winetricks.
function SP_FUSION360_INSTALL {
SP_WINETRICKS_LOAD
SP_FUSION360_INSTALLER_LOAD
SP_WEBVIEW2_INSTALLER_LOAD
# Note that the winetricks sandbox verb merely removes the desktop integration and Z: drive symlinks and is not a "true" sandbox.
# It protects against errors rather than malice. It's useful for, e.g., keeping games from saving their settings in random subdirectories of your home directory.
# But it still ensures that wine, for example, no longer has access permissions to Home!
# For this reason, the EXE files must be located directly in the Wineprefix folder!
mkdir -p "$WP_DIRECTORY"
cd "$WP_DIRECTORY" || return
WINEPREFIX="$WP_DIRECTORY" sh "$SP_PATH/bin/winetricks" -q sandbox
sleep 5s
WINEPREFIX="$WP_DIRECTORY" sh "$SP_PATH/bin/winetricks" -q sandbox
sleep 5s
# We must install some packages!
WINEPREFIX="$WP_DIRECTORY" sh "$SP_PATH/bin/winetricks" -q atmlib gdiplus arial corefonts cjkfonts dotnet452 msxml4 msxml6 vcrun2017 fontsmooth=rgb winhttp win10
sleep 5s
# We must install cjkfonts again then sometimes it doesn't work in the first time!
WINEPREFIX="$WP_DIRECTORY" sh "$SP_PATH/bin/winetricks" -q cjkfonts
sleep 5s
SP_DXVK_OPENGL_1
# We must set to Windows 10 again because some other winetricks sometimes set it back to Windows XP!
WINEPREFIX="$WP_DIRECTORY" sh "$SP_PATH/bin/winetricks" -q win10
sleep 5s
#Remove tracking metrics/calling home
WINEPREFIX="$WP_DIRECTORY" wine REG ADD "HKCU\Software\Wine\DllOverrides" /v "adpclientservice.exe" /t REG_SZ /d "" /f
#Navigation bar does not work well with anything other than the wine builtin DX9
WINEPREFIX="$WP_DIRECTORY" wine REG ADD "HKCU\Software\Wine\DllOverrides" /v "AdCefWebBrowser.exe" /t REG_SZ /d builtin /f
#Use Visual Studio Redist that is bundled with the application
WINEPREFIX="$WP_DIRECTORY" wine REG ADD "HKCU\Software\Wine\DllOverrides" /v "msvcp140" /t REG_SZ /d native /f
WINEPREFIX="$WP_DIRECTORY" wine REG ADD "HKCU\Software\Wine\DllOverrides" /v "mfc140u" /t REG_SZ /d native /f
sleep 5s
#Download and install WebView2 to handle Login attempts, required even though we redirect to your default browser
cp "$SP_PATH/downloads/WebView2installer.exe" "$WP_DIRECTORY/drive_c/users/$USER/Downloads"
WINEPREFIX="$WP_DIRECTORY" wine "$WP_DIRECTORY/drive_c/users/$USER/Downloads/WebView2installer.exe" /install #/silent
sleep 5s
# We must copy the EXE-file directly in the Wineprefix folder (Sandbox-Mode)!
cp "$SP_PATH/downloads/Fusion360installer.exe" "$WP_DIRECTORY/drive_c/users/$USER/Downloads"
# This start and stop the installer automatically after a time!
# For more information check this link: https://github.com/cryinkfly/Autodesk-Fusion-360-for-Linux/issues/232
SP_FUSION360_INSTALL_PROGRESS
mkdir -p "$WP_DIRECTORY/drive_c/users/$USER/AppData/Roaming/Autodesk/Neutron Platform/Options"
cd "$WP_DIRECTORY/drive_c/users/$USER/AppData/Roaming/Autodesk/Neutron Platform/Options" || return
SP_DXVK_OPENGL_2
mkdir -p "$WP_DIRECTORY/drive_c/users/$USER/AppData/Local/Autodesk/Neutron Platform/Options"
cd "$WP_DIRECTORY/drive_c/users/$USER/AppData/Local/Autodesk/Neutron Platform/Options" || return
SP_DXVK_OPENGL_2
mkdir -p "$WP_DIRECTORY/drive_c/users/$USER/Application Data/Autodesk/Neutron Platform/Options"
cd "$WP_DIRECTORY/drive_c/users/$USER/Application Data/Autodesk/Neutron Platform/Options" || return
SP_DXVK_OPENGL_2
cd "$SP_PATH/bin" || return
SP_GET_WINEPREFIX_TYPE
SP_FUSION360_SHORTCUTS_LOAD
SP_FUSION360_EXTENSIONS
SP_LOGFILE_WINEPREFIX
SP_COMPLETED
}
function SP_FUSION360_REFRESH {
wget "$SP_FUSION360_INSTALLER_URL" -cO Fusion360installer.exe
mv "Fusion360installer.exe" "$SP_PATH/downloads/Fusion360installer.exe"
rmdir "$WP_WINEPREFIXES_REFRESH/drive_c/users/$USER/Downloads/Fusion360installer.exe"
cp "$SP_PATH/downloads/Fusion360installer.exe" "$WP_WINEPREFIXES_REFRESH/drive_c/users/$USER/Downloads"
SP_FUSION360_INSTALL_PROGRESS_REFRESH
}
###############################################################################################################################################################
# ALL FUNCTIONS FOR SUPPORTED LINUX DISTRIBUTIONS START HERE: #
###############################################################################################################################################################
function OS_ARCHLINUX {
echo "Checking for multilib..."
if ARCHLINUX_VERIFY_MULTILIB ; then
echo "multilib found. Continuing..."
pkexec sudo pacman -Syu --needed wine wine-mono wine_gecko winetricks p7zip curl cabextract samba ppp
SP_FUSION360_INSTALL
else
echo "Enabling multilib..."
echo "[multilib]" | sudo tee -a /etc/pacman.conf
echo "Include = /etc/pacman.d/mirrorlist" | sudo tee -a /etc/pacman.conf
pkexec sudo pacman -Syu --needed wine wine-mono wine_gecko winetricks p7zip curl cabextract samba ppp
SP_FUSION360_INSTALL
fi
}
function ARCHLINUX_VERIFY_MULTILIB {
if grep -q '^\[multilib\]$' /etc/pacman.conf ; then
true
else
false
fi
}
###############################################################################################################################################################
function DEBIAN_BASED_1 {
# Some systems require this command for all repositories to work properly and for the packages to be downloaded for installation!
pkexec sudo apt-get --allow-releaseinfo-change update
# Added i386 support for wine!
sudo dpkg --add-architecture i386
}
function DEBIAN_BASED_2 {
sudo apt-get update
sudo apt-get install -y p7zip p7zip-full p7zip-rar curl winbind cabextract wget
sudo apt-get install -y --install-recommends winehq-staging
SP_FUSION360_INSTALL
}
function OS_DEBIAN_11 {
sudo apt-add-repository -r 'deb https://dl.winehq.org/wine-builds/debian/ bullseye main'
wget -q https://download.opensuse.org/repositories/Emulators:/Wine:/Debian/Debian_11/Release.key -O Release.key -O- | sudo apt-key add -
sudo apt-add-repository 'deb https://download.opensuse.org/repositories/Emulators:/Wine:/Debian/Debian_11/ ./'
}
function OS_DEBIAN_12 {
sudo apt-add-repository -r 'deb https://dl.winehq.org/wine-builds/debian/ bookworm main'
wget -q https://download.opensuse.org/repositories/Emulators:/Wine:/Debian/Debian_12/Release.key -O Release.key -O- | sudo apt-key add -
sudo apt-add-repository 'deb https://download.opensuse.org/repositories/Emulators:/Wine:/Debian/Debian_12/ ./'
}
function OS_DEBIAN_TESTING {
sudo apt-add-repository -r 'deb https://dl.winehq.org/wine-builds/debian/ testing main'
wget -q https://download.opensuse.org/repositories/Emulators:/Wine:/Debian/Debian_Testing_standard//Release.key -O Release.key -O- | sudo apt-key add -
sudo apt-add-repository 'deb https://download.opensuse.org/repositories/Emulators:/Wine:/Debian/Debian_Testing_standard/ ./'
}
function OS_UBUNTU_20 {
sudo add-apt-repository -r 'deb https://dl.winehq.org/wine-builds/ubuntu/ focal main'
wget -q https://download.opensuse.org/repositories/Emulators:/Wine:/Debian/xUbuntu_20.04/Release.key -O Release.key -O- | sudo apt-key add -
sudo apt-add-repository 'deb https://download.opensuse.org/repositories/Emulators:/Wine:/Debian/xUbuntu_20.04/ ./'
}
function OS_UBUNTU_22 {
sudo add-apt-repository -r 'deb https://dl.winehq.org/wine-builds/ubuntu/ jammy main'
wget -q https://download.opensuse.org/repositories/Emulators:/Wine:/Debian/xUbuntu_22.04/Release.key -O Release.key -O- | sudo apt-key add -
sudo apt-add-repository 'deb https://download.opensuse.org/repositories/Emulators:/Wine:/Debian/xUbuntu_22.04/ ./'
}
function OS_UBUNTU_23 {
sudo add-apt-repository -r 'deb https://dl.winehq.org/wine-builds/ubuntu/ lunar main'
wget -q https://download.opensuse.org/repositories/Emulators:/Wine:/Debian/xUbuntu_23.10/Release.key -O Release.key -O- | sudo apt-key add -
sudo apt-add-repository 'deb https://download.opensuse.org/repositories/Emulators:/Wine:/Debian/xUbuntu_23.10/ ./'
}
###############################################################################################################################################################
function FEDORA_BASED_1 {
pkexec sudo dnf update
sudo dnf upgrade
sudo dnf 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"
}
function FEDORA_BASED_2 {
sudo dnf install p7zip p7zip-plugins curl wget wine cabextract
SP_FUSION360_INSTALL
}
function OS_FEDORA_38 {
sudo dnf config-manager --add-repo https://download.opensuse.org/repositories/Emulators:/Wine:/Fedora/Fedora_38/Emulators:Wine:Fedora.repo
}
function OS_FEDORA_39 {
sudo dnf config-manager --add-repo https://download.opensuse.org/repositories/Emulators:/Wine:/Fedora/Fedora_39/Emulators:Wine:Fedora.repo
}
function OS_FEDORA_RAWHIDE {
sudo dnf config-manager --add-repo https://download.opensuse.org/repositories/Emulators:/Wine:/Fedora/Fedora_Rawhide/Emulators:Wine:Fedora.repo
}
###############################################################################################################################################################
function OS_OPENSUSE_154 {
pkexec su -c 'zypper up && zypper rr https://download.opensuse.org/repositories/Emulators:/Wine/15.4/ wine && zypper ar -cfp 95 https://download.opensuse.org/repositories/Emulators:/Wine/15.4/ wine && zypper install p7zip-full curl wget wine cabextract'
SP_FUSION360_INSTALL
}
# Has not been published yet!
function OS_OPENSUSE_155 {
pkexec su -c 'zypper up && zypper rr https://download.opensuse.org/repositories/Emulators:/Wine/15.5/ wine && zypper ar -cfp 95 https://download.opensuse.org/repositories/Emulators:/Wine/15.5/ wine && zypper install p7zip-full curl wget wine cabextract'
SP_FUSION360_INSTALL
}
function OS_OPENSUSE_TW {
pkexec su -c 'zypper up && zypper rr https://download.opensuse.org/repositories/Emulators:/Wine/openSUSE_Tumbleweed/ wine && zypper ar -cfp 95 https://download.opensuse.org/repositories/Emulators:/Wine/openSUSE_Tumbleweed/ wine && zypper install p7zip-full curl wget wine cabextract'
SP_FUSION360_INSTALL
}
###############################################################################################################################################################
function OS_REDHAT_LINUX_8 {
pkexec sudo subscription-manager repos --enable codeready-builder-for-rhel-8-x86_64-rpms
sudo rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
sudo dnf upgrade
sudo dnf install wine
SP_FUSION360_INSTALL
}
function OS_REDHAT_LINUX_9 {
pkexec sudo subscription-manager repos --enable codeready-builder-for-rhel-9-x86_64-rpms
sudo rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm
sudo dnf upgrade
sudo dnf install wine
SP_FUSION360_INSTALL
}
###############################################################################################################################################################
function OS_SOLUS_LINUX {
pkexec sudo eopkg install -y wine winetricks p7zip curl cabextract samba ppp
SP_FUSION360_INSTALL
}
###############################################################################################################################################################
function OS_VOID_LINUX {
pkexec sudo xbps-install -Sy wine wine-mono wine-gecko winetricks p7zip curl cabextract samba ppp
SP_FUSION360_INSTALL
}
###############################################################################################################################################################
function OS_GENTOO_LINUX {
pkexec sudo emerge -nav virtual/wine app-emulation/winetricks app-emulation/wine-mono app-emulation/wine-gecko app-arch/p7zip app-arch/cabextract net-misc/curl net-fs/samba net-dialup/ppp
SP_FUSION360_INSTALL
}
###############################################################################################################################################################
# ALL FUNCTIONS FOR THE EXTENSIONS START HERE: #
###############################################################################################################################################################
# Install a extension: Airfoil Tools
function EXTENSION_AIRFOIL_TOOLS {
cd "$SP_PATH/extensions" || return
wget -Nc https://github.com/cryinkfly/Fusion-360---Linux-Wine-Version-/raw/main/files/extensions/AirfoilTools_win64.msi &&
cp AirfoilTools_win64.msi "$WP_DIRECTORY/drive_c/users/$USER/Downloads"
cd "$WP_DIRECTORY/drive_c/users/$USER/Downloads" || return
WINEPREFIX=$WP_DIRECTORY wine msiexec /i AirfoilTools_win64.msi
}
###############################################################################################################################################################
# Install a extension: Additive Assistant (FFF)
function EXTENSION_ADDITIVE_ASSISTANT {
cd "$SP_PATH/extensions" || return
wget -Nc https://github.com/cryinkfly/Autodesk-Fusion-360-for-Linux/raw/main/files/extensions/AdditiveAssistant.bundle-win64.msi &&
cp AdditiveAssistant.bundle-win64.msi "$WP_DIRECTORY/drive_c/users/$USER/Downloads"
cd "$WP_DIRECTORY/drive_c/users/$USER/Downloads" || return
WINEPREFIX=$WP_DIRECTORY wine msiexec /i AdditiveAssistant.bundle-win64.msi
}
###############################################################################################################################################################
# Install a extension: Czech localization for F360
function EXTENSION_CZECH_LOCALE {
cd "$SP_PATH/extensions" || return
wget -Nc https://github.com/cryinkfly/Autodesk-Fusion-360-for-Linux/raw/main/files/extensions/Ceska_lokalizace_pro_Autodesk_Fusion_360_v7.exe &&
cp "Ceska_lokalizace_pro_Autodesk_Fusion_360_v7.exe" "$WP_DIRECTORY/drive_c/users/$USER/Downloads"
cd "$WP_DIRECTORY/drive_c/users/$USER/Downloads" || return
WINEPREFIX="$WP_DIRECTORY" wine Ceska_lokalizace_pro_Autodesk_Fusion_360_v7.exe
}
###############################################################################################################################################################
# Install a extension: HP 3D Printers for Autodesk® Fusion 360™
function EXTENSION_HP_3DPRINTER_CONNECTOR {
cd "$SP_PATH/extensions" || return
wget -Nc https://github.com/cryinkfly/Autodesk-Fusion-360-for-Linux/raw/main/files/extensions/HP_3DPrinters_for_Fusion360-win64.msi &&
cp HP_3DPrinters_for_Fusion360-win64.msi "$WP_DIRECTORY/drive_c/users/$USER/Downloads"
cd "$WP_DIRECTORY/drive_c/users/$USER/Downloads" || return
WINEPREFIX="$WP_DIRECTORY" wine msiexec /i HP_3DPrinters_for_Fusion360-win64.msi
}
###############################################################################################################################################################
# Install a extension: Helical Gear Generator
function EXTENSION_HELICAL_GEAR_GENERATOR {
cd "$SP_PATH/extensions" || return
wget -Nc https://github.com/cryinkfly/Autodesk-Fusion-360-for-Linux/raw/main/files/extensions/HelicalGear_win64.msi &&
cp HelicalGear_win64.msi "$WP_DIRECTORY/drive_c/users/$USER/Downloads"
cd "$WP_DIRECTORY/drive_c/users/$USER/Downloads" || return
WINEPREFIX="$WP_DIRECTORY" wine msiexec /i HelicalGear_win64.msi
}
###############################################################################################################################################################
# Install a extension: OctoPrint for Autodesk® Fusion 360™
function EXTENSION_OCTOPRINT {
cd "$SP_PATH/extensions" || return
wget -Nc https://github.com/cryinkfly/Autodesk-Fusion-360-for-Linux/raw/main/files/extensions/OctoPrint_for_Fusion360-win64.msi &&
cp OctoPrint_for_Fusion360-win64.msi "$WP_DIRECTORY/drive_c/users/$USER/Downloads"
cd "$WP_DIRECTORY/drive_c/users/$USER/Downloads" || return
WINEPREFIX="$WP_DIRECTORY" wine msiexec /i OctoPrint_for_Fusion360-win64.msi
}
###############################################################################################################################################################
# Install a extension: Parameter I/O
function EXTENSION_PARAMETER_IO {
cd "$SP_PATH/extensions" || return
wget -Nc https://github.com/cryinkfly/Autodesk-Fusion-360-for-Linux/raw/main/files/extensions/ParameterIO_win64.msi &&
cp ParameterIO_win64.msi "$WP_DIRECTORY/drive_c/users/$USER/Downloads"
cd "$WP_DIRECTORY/drive_c/users/$USER/Downloads" || return
WINEPREFIX="$WP_DIRECTORY" wine msiexec /i ParameterIO_win64.msi
}
###############################################################################################################################################################
# Install a extension: RoboDK
function EXTENSION_ROBODK {
cd "$SP_PATH/extensions" || return
wget -Nc https://github.com/cryinkfly/Autodesk-Fusion-360-for-Linux/raw/main/files/extensions/RoboDK.bundle-win64.msi &&
cp RoboDK.bundle-win64.msi "$WP_DIRECTORY/drive_c/users/$USER/Downloads"
cd "$WP_DIRECTORY/drive_c/users/$USER/Downloads" || return
WINEPREFIX="$WP_DIRECTORY" wine msiexec /i RoboDK.bundle-win64.msi
}
###############################################################################################################################################################
# Install a extension: Ultimaker Digital Factory for Autodesk Fusion 360™
function EXTENSION_ULTIMAKER_DIGITAL_FACTORY {
cd "$SP_PATH/extensions" || return
wget -Nc https://github.com/cryinkfly/Autodesk-Fusion-360-for-Linux/raw/main/files/extensions/Ultimaker_Digital_Factory-win64.msi &&
cp Ultimaker_Digital_Factory-win64.msi "$WP_DIRECTORY/drive_c/users/$USER/Downloads"
cd "$WP_DIRECTORY/drive_c/users/$USER/Downloads" || return
WINEPREFIX="$WP_DIRECTORY" wine msiexec /i Ultimaker_Digital_Factory-win64.msi
}
###############################################################################################################################################################
# ALL DIALOGS ARE ARRANGED HERE: #
###############################################################################################################################################################
function SP_WELCOME {
yad \
--form \
--separator="" \
--center \
--height=125 \
--width=750 \
--buttons-layout=center \
--title="$SP_TITLE" \
--field="<big>$SP_SUBTITLE</big>:LBL" \
--field="$SP_WELCOME_LABEL_1:LBL" \
--field="$SP_WELCOME_LABEL_2:LBL" \
--align=center \
--button=gtk-about!!"$SP_WELCOME_TOOLTIP_1":1 \
--button=gtk-preferences!!"$SP_WELCOME_TOOLTIP_2":2 \
--button=gtk-cancel:99 \
--button=gtk-ok:3
ret=$?
# Responses to above button presses are below:
case $ret in
1)
xdg-open https://github.com/cryinkfly/Autodesk-Fusion-360-for-Linux
SP_WELCOME
;;
2)
SP_SETTINGS
SP_LOCALE_SETTINGS
SP_DRIVER_SETTINGS
SP_WELCOME
;;
3)
SP_LICENSE
;;
esac
}
###############################################################################################################################################################
function SP_SETTINGS {
yad --title="$SP_TITLE" \
--form --separator="," --item-separator="," \
--borders=15 \
--width=550 \
--buttons-layout=center \
--align=center \
--field="<big><b>$SP_SETTINGS_TITLE</b></big>:LBL" \
--field=":LBL" \
--field="$SP_SETTINGS_LABEL_1:LBL" \
--field="$SP_LOCALE_LABEL:CB" \
--field="$WP_DRIVER_LABEL:CB" \
--field="$SP_SETTINGS_LABEL_2:LBL" \
"" "" "" "$SP_LOCALE_SELECT" "$WP_DRIVER_SELECT" "" | while read line; do
echo "$line" | awk -F',' '{print $4}' > /tmp/fusion360/settings.txt
echo "$line" | awk -F',' '{print $5}' >> /tmp/fusion360/settings.txt
cp "/tmp/fusion360/settings.txt" "$SP_PATH/config"
done
}
###############################################################################################################################################################
function SP_LICENSE {
SP_LICENSE_TEXT=$(cat "$SP_LICENSE")
SP_LICENSE_CHECK=$(yad \
--title="$SP_TITLE" \
--form \
--borders=15 \
--width=550 \
--height=450 \
--buttons-layout=center \
--align=center \
--field=":TXT" "$SP_LICENSE_TEXT" \
--field="$SP_LICENSE_CHECK_LABEL:CHK" )
if [[ $SP_LICENSE_CHECK = *"TRUE"* ]]; then
echo "TRUE"
SP_LOGFILE_WINEPREFIX_CHECK
else
echo "FALSE"
SP_WELCOME
fi
}
###############################################################################################################################################################
function SP_LOGFILE_WINEPREFIX_INFO {
yad \
--form \
--separator="" \
--center \
--height=125 \
--width=750 \
--buttons-layout=center \
--title="$SP_TITLE" \
--field="<big>$SP_LOGFILE_WINEPREFIX_INFO_TITLE</big>:LBL" \
--field="$SP_LOGFILE_WINEPREFIX_INFO_LABEL_1:LBL" \
--field="$SP_LOGFILE_WINEPREFIX_INFO_LABEL_2:LBL" \
--align=center \
--button=gtk-new!!"$SP_LOGFILE_WINEPREFIX_INFO_TOOLTIP_1":1 \
--button=gtk-refresh!!"$SP_LOGFILE_WINEPREFIX_INFO_TOOLTIP_2":2 \
--button=gtk-delete!!"$SP_LOGFILE_WINEPREFIX_INFO_TOOLTIP_3":3 \
--button=gtk-cancel:99
ret=$?
# Responses to above button presses are below:
case $ret in
1)
SP_INSTALLDIR
;;
2)
# Get informations about the current wineprefix - Repair
WP_WINEPREFIXES_STRING=$(yad --height=300 --separator="|" --list --radiolist --column="$SELECT" --column="$WINEPREFIXES_TYPE" --column="$WINEPREFIXES_DRIVER" --column="$WINEPREFIXES_DIRECTORY" < /tmp/fusion360/logs/wineprefixes.log)
WP_WINEPREFIXES_REFRESH=$(echo "$WP_WINEPREFIXES_STRING" | awk -F'|' '{print $4}')
SP_FUSION360_REFRESH
;;
3)
# Get informations about the current wineprefix - Delete
# shellcheck source=./uninstall.sh
source "$SP_PATH/bin/uninstall.sh"
;;
esac
}
###############################################################################################################################################################
function SP_INSTALLDIR {
WP_DIRECTORY=$(yad --title="$SP_TITLE" \
--form --separator="" \
--borders=15 \
--width=550 \
--buttons-layout=center \
--align=center \
--field="<big><b>$SP_INSTALLDIR_TITLE</b></big>:LBL" \
--field=":LBL" \
--field="<b>$SP_INSTALLDIR_LABEL_1</b>:LBL" \
--field="$SP_INSTALLDIR_LABEL_2:DIR" \
--field="<b>$SP_INSTALLDIR_LABEL_3</b>:LBL" \
"" "" "" "$SP_PATH/wineprefixes/default" "" )
# Continue with the installation ...
SP_INSTALLDIR_CHECK
}
###############################################################################################################################################################
function SP_INSTALLDIR_INFO {
yad \
--form \
--separator="" \
--center \
--height=125 \
--width=750 \
--buttons-layout=center \
--title="$SP_TITLE" \
--field="<big>$SP_INSTALLDIR_INFO_TITLE</big>:LBL" \
--field="$SP_INSTALLDIR_INFO_LABEL_1:LBL" \
--field="$SP_INSTALLDIR_INFO_LABEL_2:LBL" \
--align=center \
--button=gtk-cancel:99 \
--button=gtk-ok:1
ret=$?
# Responses to above button presses are below:
if [[ $ret -eq 1 ]]; then
SP_INSTALLDIR
fi
}
###############################################################################################################################################################
function SP_WINE_SETTINGS {
WINE_VERSION=$(yad --title="$SP_TITLE" \
--form --separator="" --item-separator="," \
--borders=15 \
--width=550 \
--buttons-layout=center \
--align=center \
--field="<big><b>$SP_WINE_SETTINGS_TITLE</b></big>:LBL" \
--field=":LBL" \
--field="<b>$SP_WINE_SETTINGS_LABEL_1</b>:LBL" \
--field="$SP_WINE_SETTINGS_LABEL_2:CB" \
--field="<b>$SP_WINE_SETTINGS_LABEL_3</b>:LBL" \
"" "" "" "$SP_WINE_VERSION_SELECT" "" )
case "$WINE_VERSION" in
# Czech:
"Verze vína (Staging)")
echo "Install Wine on your system!"
SP_OS_SETTINGS
;;
# German:
"Wine Version (Entwicklungsversion)")
echo "Install Wine on your system!"
SP_OS_SETTINGS
;;
# English:
"Wine Version (Staging)")
echo "Install Wine on your system!"
SP_OS_SETTINGS
;;
# Spanish:
"Versión Vino (Puesta en Escena)")
echo "Install Wine on your system!"
SP_OS_SETTINGS
;;
# French:
"Version Vin (Mise en scène)")
echo "Install Wine on your system!"
SP_OS_SETTINGS
;;
# Italian
"Versione vino (messa in scena)")
echo "Install Wine on your system!"
SP_OS_SETTINGS
;;
# Japanese:
"ワインバージョン(ステージング)")
echo "Install Wine on your system!"
SP_OS_SETTINGS
;;
# Korean:
"와인 버전(스테이징)")
echo "Install Wine on your system!"
SP_OS_SETTINGS
;;
# Chinese:
"葡萄酒版(分期)")
echo "Install Wine on your system!"
SP_OS_SETTINGS
;;
*)
echo "Wine version (8.14 or higher) is already installed on the system!"
# Check the correct Wine Version before continuing!
SP_CHECK_WINE_VERSION
;;
esac
}
###############################################################################################################################################################
function SP_OS_SETTINGS {
SP_OS=$(yad --title="$SP_TITLE" \
--form --separator="" --item-separator="," \
--borders=15 \
--width=550 \
--buttons-layout=center \
--align=center \
--field="<big><b>$SP_OS_TITLE</b></big>:LBL" \
--field=":LBL" \
--field="$SP_OS_LABEL_1:LBL" \
--field="$SP_OS_LABEL_2:CB" \
"" "" "" "$SP_OS_SELECT" )
case "$SP_OS" in
"Arch Linux")
echo "Arch Linux"
OS_ARCHLINUX
;;
"Debian 11")
echo "Debian 11"
DEBIAN_BASED_1
OS_DEBIAN_11
DEBIAN_BASED_2
;;
"Debian 12")
echo "Debian 12"
DEBIAN_BASED_1
OS_DEBIAN_12
DEBIAN_BASED_2
;;
"Debian Testing")
echo "Debian Testing"
DEBIAN_BASED_1
OS_DEBIAN_TESTING
DEBIAN_BASED_2
;;
"EndeavourOS")
echo "EndeavourOS"
OS_ARCHLINUX
;;
"Fedora 38")
echo "Fedora 38"
FEDORA_BASED_1
OS_FEDORA_37
FEDORA_BASED_2
;;
"Fedora 39")
echo "Fedora 39"
FEDORA_BASED_1
OS_FEDORA_38
FEDORA_BASED_2
;;
"Fedora Rawhide")
echo "Fedora Rawhide"
FEDORA_BASED_1
OS_FEDORA_RAWHIDE
FEDORA_BASED_2
;;
"Linux Mint 20.x")
echo "Linux Mint 20.x"
DEBIAN_BASED_1
OS_UBUNTU_20
DEBIAN_BASED_2
;;
"Linux Mint 21.x")
echo "Linux Mint 21.x"
DEBIAN_BASED_1
OS_UBUNTU_23
DEBIAN_BASED_2
;;
"Linux Mint 5.x - LMDE Version")
echo "Linux Mint 5.x - LMDE Version"
DEBIAN_BASED_1
OS_DEBIAN_11
DEBIAN_BASED_2
;;
"Manjaro Linux")
echo "Manjaro Linux"
OS_ARCHLINUX
;;
"openSUSE Leap 15.4")
echo "openSUSE Leap 15.4"
OS_OPENSUSE_154
;;
"openSUSE Leap 15.5")
echo "openSUSE Leap 15.5"
OS_OPENSUSE_155
;;
"openSUSE Tumbleweed")
echo "openSUSE Tumbleweed"
OS_OPENSUSE_TW
;;
"Red Hat Enterprise Linux 8.x")
echo "Red Hat Enterprise Linux 8.x"
OS_REDHAT_LINUX_8
;;
"Red Hat Enterprise Linux 9.x")
echo "Red Hat Enterprise Linux 9.x"
OS_REDHAT_LINUX_9
;;
"Solus")
echo "Solus"
OS_SOLUS_LINUX
;;
"Ubuntu 18.04")
echo "Ubuntu 18.04"
DEBIAN_BASED_1
OS_UBUNTU_18
DEBIAN_BASED_2
;;
"Ubuntu 20.04")
echo "Ubuntu 20.04"
DEBIAN_BASED_1
OS_UBUNTU_20
DEBIAN_BASED_2
;;
"Ubuntu 22.04")
echo "Ubuntu 22.04"
DEBIAN_BASED_1
OS_UBUNTU_22
DEBIAN_BASED_2
;;
"Ubuntu 23.10")
echo "Ubuntu 23.10"
DEBIAN_BASED_1
OS_UBUNTU_23
DEBIAN_BASED_2
;;
"Void Linux")
echo "Void Linux"
OS_VOID_LINUX
;;
"Gentoo Linux")
echo "Gentoo Linux"
OS_GENTOO_LINUX
;;
esac
}
###############################################################################################################################################################
function SP_FUSION360_INSTALL_PROGRESS {
SP_FUSION360_INSTALL_PROGRESS_MAIN () {
cd "$WP_DIRECTORY" || return
echo "20"
SP_FUSION360_INSTALL_DEFAULT_1
echo "70"
SP_FUSION360_INSTALL_DEFAULT_2
sleep 5
echo "100"
}
SP_FUSION360_INSTALL_PROGRESS_MAIN | yad --progress --progress-text "$SP_INSTALL_PROGRESS_LABEL" --percentage=0 --auto-close
}
###############################################################################################################################################################
function SP_FUSION360_INSTALL_PROGRESS_REFRESH {
SP_FUSION360_INSTALL_PROGRESS_MAIN_REFRESH () {
cd "$WP_DIRECTORY" || return
echo "20"
SP_FUSION360_INSTALL_REFRESH_1
echo "70"
SP_FUSION360_INSTALL_REFRESH_2
sleep 5
echo "100"
}
SP_FUSION360_INSTALL_PROGRESS_MAIN_REFRESH | yad --title="$SP_TITLE" --borders=15 --progress --progress-text "$SP_INSTALL_PROGRESS_REFRESH_LABEL" --percentage=0 --auto-close
}
###############################################################################################################################################################
function SP_FUSION360_EXTENSIONS {
EXTENSIONS=$(yad --title="$SP_TITLE" --borders=15 --button=gtk-cancel:99 --button=gtk-ok:0 --height=300 --list --multiple --checklist --column="$SP_EXTENSION_SELECT" --column="$SP_EXTENSION_NAME" --column="$SP_EXTENSION_DESCRIPTION" < "$SP_EXTENSION_LIST")
if [[ $EXTENSIONS = *"Airfoil Tools"* ]]; then
echo "Airfoil Tools"
EXTENSION_AIRFOIL_TOOLS
fi
if [[ $EXTENSIONS = *"Additive Assistant (FFF)"* ]]; then
echo "Additive Assistant (FFF)"
EXTENSION_ADDITIVE_ASSISTANT
fi
if [[ $EXTENSIONS = *"Czech localization for F360"* ]]; then
echo "Czech localization for F360"
EXTENSION_CZECH_LOCALE
fi
if [[ $EXTENSIONS = *"HP 3D Printers for Autodesk® Fusion 360™"* ]]; then
echo "HP 3D Printers for Autodesk® Fusion 360™"
EXTENSION_HP_3DPRINTER_CONNECTOR
fi
if [[ $EXTENSIONS = *"Helical Gear Generator"* ]]; then
echo "Helical Gear Generator"
EXTENSION_HELICAL_GEAR_GENERATOR
fi
if [[ $EXTENSIONS = *"OctoPrint for Autodesk® Fusion 360™"* ]]; then
echo "OctoPrint for Autodesk® Fusion 360™"
EXTENSION_OCTOPRINT
fi
if [[ $EXTENSIONS = *"Parameter I/O"* ]]; then
echo "Parameter I/O"
EXTENSION_PARAMETER_IO
fi
if [[ $EXTENSIONS = *"RoboDK"* ]]; then
echo "RoboDK"
EXTENSION_ROBODK
fi
if [[ $EXTENSIONS = *"Ultimaker Digital Factory for Autodesk Fusion 360™"* ]]; then
echo "Ultimaker Digital Factory for Autodesk Fusion 360™"
EXTENSION_ULTIMAKER_DIGITAL_FACTORY
fi
}
###############################################################################################################################################################
# The installation is complete and will be terminated.
function SP_COMPLETED {
echo "The installation is completed!"
SP_COMPLETED_CHECK=$(yad \
--title="$SP_TITLE" \
--form \
--borders=15 \
--width=550 \
--height=450 \
--buttons-layout=center \
--align=center \
--field=":TXT" "$SP_COMPLETED_TEXT" \
--field="$SP_COMPLETED_CHECK_LABEL:CHK" )
if [[ $SP_COMPLETED_CHECK = *"TRUE"* ]]; then
echo "TRUE"
# shellcheck source=/dev/null
source "$WP_DIRECTORY/box-run.sh"
else
echo "FALSE"
fi
}
###############################################################################################################################################################
# THE INSTALLATION PROGRAM IS STARTED HERE: #
###############################################################################################################################################################
SP_CHECK_REQUIRED_COMMANDS
SP_STRUCTURE
SP_LOGFILE_INSTALL
SP_LOCALE_INDEX
SP_WELCOME