2022-04-30 14:24:47 +02:00
#!/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-2022 #
2022-05-05 18:40:11 +02:00
# Time/Date: 18:45/05.05.2022 #
2022-04-30 14:24:47 +02:00
# Version: 1.7.9 -> 1.8.0 #
####################################################################################################
# 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! #
###############################################################################################################################################################
###############################################################################################################################################################
# ALL BASIC VALUES ARE CONFIGURED HERE: #
###############################################################################################################################################################
# Default-Path:
SP_PATH = " $HOME /.fusion360 "
# Reset the locale value:
SP_LOCALE = "en-US"
2022-05-05 18:29:10 +02:00
SP_LICENSE = " $SP_PATH /locale/en-US/license-en.txt "
2022-04-30 14:24:47 +02:00
# Reset the graphics driver value:
SP_DRIVER = "DXVK"
###############################################################################################################################################################
# THE INITIALIZATION OF DEPENDENCIES STARTS HERE: #
###############################################################################################################################################################
function SP_STRUCTURE {
mkdir -p $SP_PATH /bin
mkdir -p $SP_PATH /logs
mkdir -p $SP_PATH /config
mkdir -p $SP_PATH /servers
mkdir -p $SP_PATH /graphics
2022-05-05 18:33:31 +02:00
mkdir -p $SP_PATH /downloads
2022-04-30 14:24:47 +02:00
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
}
###############################################################################################################################################################
# Get all server connections (links):
2022-05-05 18:29:10 +02:00
function SP_SERVER_LIST {
2022-04-30 14:24:47 +02:00
# LIST
wget -N -P $SP_PATH /servers https://github.com/cryinkfly/Autodesk-Fusion-360-for-Linux/raw/main/files/builds/stable-branch/servers/server-list.txt
# LANGUAGE FILES
SP_SERVER_1 = ` cat $SP_PATH /servers/server-list.txt | awk 'NR == 8' `
SP_SERVER_2 = ` cat $SP_PATH /servers/server-list.txt | awk 'NR == 10' `
SP_SERVER_3 = ` cat $SP_PATH /servers/server-list.txt | awk 'NR == 11' `
SP_SERVER_4 = ` cat $SP_PATH /servers/server-list.txt | awk 'NR == 13' `
SP_SERVER_5 = ` cat $SP_PATH /servers/server-list.txt | awk 'NR == 14' `
SP_SERVER_6 = ` cat $SP_PATH /servers/server-list.txt | awk 'NR == 16' `
SP_SERVER_7 = ` cat $SP_PATH /servers/server-list.txt | awk 'NR == 17' `
SP_SERVER_8 = ` cat $SP_PATH /servers/server-list.txt | awk 'NR == 19' `
SP_SERVER_9 = ` cat $SP_PATH /servers/server-list.txt | awk 'NR == 20' `
SP_SERVER_10 = ` cat $SP_PATH /servers/server-list.txt | awk 'NR == 22' `
SP_SERVER_11 = ` cat $SP_PATH /servers/server-list.txt | awk 'NR == 23' `
SP_SERVER_12 = ` cat $SP_PATH /servers/server-list.txt | awk 'NR == 25' `
SP_SERVER_13 = ` cat $SP_PATH /servers/server-list.txt | awk 'NR == 26' `
SP_SERVER_14 = ` cat $SP_PATH /servers/server-list.txt | awk 'NR == 28' `
SP_SERVER_15 = ` cat $SP_PATH /servers/server-list.txt | awk 'NR == 29' `
SP_SERVER_16 = ` cat $SP_PATH /servers/server-list.txt | awk 'NR == 31' `
SP_SERVER_17 = ` cat $SP_PATH /servers/server-list.txt | awk 'NR == 32' `
SP_SERVER_18 = ` cat $SP_PATH /servers/server-list.txt | awk 'NR == 34' `
SP_SERVER_19 = ` cat $SP_PATH /servers/server-list.txt | awk 'NR == 35' `
# WINETRICKS
SP_SERVER_20 = ` cat $SP_PATH /servers/server-list.txt | awk 'NR == 42' `
2022-05-05 18:29:10 +02:00
# AUTODESK FUSION 360 INSTALLER
SP_SERVER_21 = ` cat $SP_PATH /servers/server-list.txt | awk 'NR == 49' `
# DXVK AND OPENGL:
SP_SERVER_22 = ` cat $SP_PATH /servers/server-list.txt | awk 'NR == 56' `
SP_SERVER_23 = ` cat $SP_PATH /servers/server-list.txt | awk 'NR == 57' `
SP_SERVER_24 = ` cat $SP_PATH /servers/server-list.txt | awk 'NR == 58' `
# ICONS:
SP_SERVER_25 = ` cat $SP_PATH /servers/server-list.txt | awk 'NR == 65' `
SP_SERVER_26 = ` cat $SP_PATH /servers/server-list.txt | awk 'NR == 66' `
# EXTRA SCRIPTS:
SP_SERVER_27 = ` cat $SP_PATH /servers/server-list.txt | awk 'NR == 73' `
SP_SERVER_28 = ` cat $SP_PATH /servers/server-list.txt | awk 'NR == 74' `
SP_SERVER_29 = ` cat $SP_PATH /servers/server-list.txt | awk 'NR == 75' `
SP_SERVER_30 = ` cat $SP_PATH /servers/server-list.txt | awk 'NR == 76' `
# EXTENSIONS:
SP_SERVER_30 = ` cat $SP_PATH /servers/server-list.txt | awk 'NR == 83' `
SP_SERVER_30 = ` cat $SP_PATH /servers/server-list.txt | awk 'NR == 84' `
SP_SERVER_30 = ` cat $SP_PATH /servers/server-list.txt | awk 'NR == 85' `
SP_SERVER_30 = ` cat $SP_PATH /servers/server-list.txt | awk 'NR == 86' `
SP_SERVER_30 = ` cat $SP_PATH /servers/server-list.txt | awk 'NR == 87' `
SP_SERVER_30 = ` cat $SP_PATH /servers/server-list.txt | awk 'NR == 88' `
SP_SERVER_30 = ` cat $SP_PATH /servers/server-list.txt | awk 'NR == 89' `
SP_SERVER_30 = ` cat $SP_PATH /servers/server-list.txt | awk 'NR == 90' `
2022-04-30 14:24:47 +02:00
}
###############################################################################################################################################################
# Load the index of locale files:
function SP_LOCALE_INDEX {
wget -N -P $SP_PATH /locale $SP_SERVER_1
chmod +x $SP_PATH /locale/locale.sh
. $SP_PATH /locale/locale.sh
SP_LOCALE_EN
}
# Czech:
function SP_LOCALE_CS {
SP_LOCALE = "cs-CZ"
. $SP_PATH /locale/cs-CZ/locale-cs.sh
SP_LICENSE = " $SP_PATH /locale/cs-CZ/license-cs.txt "
}
# German:
function SP_LOCALE_DE {
SP_LOCALE = "de-DE"
. $SP_PATH /locale/de-DE/locale-de.sh
SP_LICENSE = " $SP_PATH /locale/de-DE/license-de.txt "
}
# English:
function SP_LOCALE_EN {
SP_LOCALE = "en-US"
. $SP_PATH /locale/en-US/locale-en.sh
SP_LICENSE = " $SP_PATH /locale/en-US/license-en.txt "
}
# Spanish:
function SP_LOCALE_ES {
SP_LOCALE = "es-ES"
. $SP_PATH0 /locale/es-ES/locale-es.sh
SP_LICENSE = " $SP_PATH /locale/es-ES/license-es.txt "
}
# French:
function SP_LOCALE_FR {
SP_LOCALE = "fr-FR"
. $SP_PATH /locale/fr-FR/locale-fr.sh
SP_LICENSE = " $SP_PATH /locale/fr-FR/license-fr.txt "
}
# Italian:
function SP_LOCALE_IT {
SP_LOCALE = "it-IT"
. $SP_PATH /locale/it-IT/locale-it.sh
SP_LICENSE = " $SP_PATH /locale/it-IT/license-it.txt "
}
# Japanese:
function SP_LOCALE_JA {
SP_LOCALE = "ja-JP"
. $SP_PATH /locale/ja-JP/locale-ja.sh
SP_LICENSE = " $SP_PATH /locale/ja-JP/license-ja.txt "
}
# Korean:
function SP_LOCALE_KO {
SP_LOCALE = "ko-KR"
. $SP_PATH /locale/ko-KR/locale-ko.sh
SP_LICENSE = " $SP_PATH /locale/ko-KR/license-ko.txt "
}
# Chinese:
function SP_LOCALE_ZH {
SP_LOCALE = "zh-CN"
. $SP_PATH /locale/zh-CN/locale-zh.sh
SP_LICENSE = " $SP_PATH /locale/zh-CN/license-zh.txt "
}
2022-05-05 18:33:31 +02:00
###############################################################################################################################################################
# Load the newest winetricks version:
function SP_WINETRICKS_LOAD {
wget -N -P $SP_PATH /bin $SP_SERVER_20
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_SERVER_21 -O Fusion360installer.exe
mv "Fusion360installer.exe" " $SP_PATH /downloads/Fusion360installer.exe "
fi
}
2022-05-05 18:40:11 +02:00
###############################################################################################################################################################
# Load the icons and .desktop-files:
function SP_FUSION360_SHORTCUTS_LOAD {
# Create a .desktop file (launcher.sh) for Autodesk Fusion 360!
wget -N -P $SP_PATH /bin $SP_SERVER_25
mkdir -p $HOME /.local/share/applications/wine/Programs/Autodesk
echo "[Desktop Entry]" >> $HOME /.local/share/applications/wine/Programs/Autodesk/Autodesk\ Fusion\ 360.desktop
echo "Name=Autodesk Fusion 360" >> $HOME /.local/share/applications/wine/Programs/Autodesk/Autodesk\ Fusion\ 360.desktop
echo "Comment=Autodesk Fusion 360 is a cloud-based 3D modeling, CAD, CAM, and PCB software platform for product design and manufacturing." >> $HOME /.local/share/applications/wine/Programs/Autodesk/Autodesk\ Fusion\ 360.desktop
echo "Exec=bash ./launcher.sh" >> $HOME /.local/share/applications/wine/Programs/Autodesk/Autodesk\ Fusion\ 360.desktop
echo "Type=Application" >> $HOME /.local/share/applications/wine/Programs/Autodesk/Autodesk\ Fusion\ 360.desktop
echo "Categories=Development;Graphics;Science" >> $HOME /.local/share/applications/wine/Programs/Autodesk/Autodesk\ Fusion\ 360.desktop
echo "StartupNotify=true" >> $HOME /.local/share/applications/wine/Programs/Autodesk/Autodesk\ Fusion\ 360.desktop
echo " Icon= $SP_PATH /bin/fusion360.svg " >> $HOME /.local/share/applications/wine/Programs/Autodesk/Autodesk\ Fusion\ 360.desktop
echo "Terminal=true" >> $HOME /.local/share/applications/wine/Programs/Autodesk/Autodesk\ Fusion\ 360.desktop
echo " Path= $SP_PATH /bin " >> $HOME /.local/share/applications/wine/Programs/Autodesk/Autodesk\ Fusion\ 360.desktop
# Create a .desktop file (uninstall.sh) for Autodesk Fusion 360!
wget -N -P $SP_PATH /bin $SP_SERVER_26
echo "[Desktop Entry]" >> $HOME /.local/share/applications/wine/Programs/Autodesk/Autodesk\ Fusion\ 360\ Uninstall.desktop
echo "Name=Autodesk Fusion 360 - Uninstall" >> $HOME /.local/share/applications/wine/Programs/Autodesk/Autodesk\ Fusion\ 360\ Uninstall.desktop
echo "Comment=With this program you can delete Autodesk Fusion 360 on your system!" >> $HOME /.local/share/applications/wine/Programs/Autodesk/Autodesk\ Fusion\ 360\ Uninstall.desktop
echo "Exec=bash ./uninstall.sh" >> $HOME /.local/share/applications/wine/Programs/Autodesk/Autodesk\ Fusion\ 360\ Uninstall.desktop
echo "Type=Application" >> $HOME /.local/share/applications/wine/Programs/Autodesk/Autodesk\ Fusion\ 360\ Uninstall.desktop
echo "Categories=Development;Graphics;Science" >> $HOME /.local/share/applications/wine/Programs/Autodesk/Autodesk\ Fusion\ 360\ Uninstall.desktop
echo "StartupNotify=true" >> $HOME /.local/share/applications/wine/Programs/Autodesk/Autodesk\ Fusion\ 360\ Uninstall.desktop
echo " Icon= $SP_PATH /bin/fusion360-uninstall.svg " >> $HOME /.local/share/applications/wine/Programs/Autodesk/Autodesk\ Fusion\ 360\ Uninstall.desktop
echo "Terminal=true" >> $HOME /.local/share/applications/wine/Programs/Autodesk/Autodesk\ Fusion\ 360\ Uninstall.desktop
echo " Path= $SP_PATH /bin " >> $HOME /.local/share/applications/wine/Programs/Autodesk/Autodesk\ Fusion\ 360\ Uninstall.desktop
wget -N -P $SP_PATH /bin $SP_SERVER_27
chmod +x $SP_PATH /bin/uninstall.sh
wget -N -P $SP_PATH /bin $SP_SERVER_28
chmod +x $SP_PATH /bin/launcher.sh
wget -N -P $SP_PATH /bin $SP_SERVER_29
chmod +x $SP_PATH /bin/update.sh
wget -N -P $SP_PATH /bin $SP_SERVER_30
chmod +x $SP_PATH /bin/read-text.sh
}
###############################################################################################################################################################
# ALL LOG-FUNCTIONS ARE ARRANGED HERE: #
###############################################################################################################################################################
# Provides information about setup actions during installation.
function SP_LOGFILE {
exec 5> $SP_PATH /logs/setupact.log
BASH_XTRACEFD = "5"
set -x
}
###############################################################################################################################################################
# ALL FUNCTIONS FOR DXVK AND OPENGL START HERE: #
###############################################################################################################################################################
function SP_DXVK_OPENGL_1 {
if [ [ $SP_DRIVER = "DXVK" ] ] ; then
WINEPREFIX = $WP_PATH sh $SP_PATH /bin/winetricks -q dxvk
wget -N -P $WP_PATH /drive_c/users/$USER /Downloads $SP_SERVER_22
cd " $WP_PATH /drive_c/users/ $USER /Downloads "
WINEPREFIX = $WP_PATH wine regedit.exe DXVK.reg
fi
}
function SP_DXVK_OPENGL_2 {
if [ [ $SP_DRIVER = "DXVK" ] ] ; then
wget -N $SP_SERVER_23
mv "DXVK.xml" "NMachineSpecificOptions.xml"
else
wget -N $SP_SERVER_24
mv "OpenGL.xml" "NMachineSpecificOptions.xml"
fi
}