mirror of
https://github.com/cryinkfly/Autodesk-Fusion-360-for-Linux.git
synced 2025-10-27 00:16:08 +01:00
This was making the test failing and the script was downloading the installer each time, even if the installer file already exist.
1329 lines
55 KiB
Bash
1329 lines
55 KiB
Bash
#!/bin/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: 09:40/18.03.2024 #
|
||
# Version: 1.9.6 #
|
||
####################################################################################################
|
||
|
||
# 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, d’IAO 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
|
||
#!/bin/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
|