Files
Autodesk-Fusion-360-for-Linux/files/scripts/development-branch/update.sh
2022-02-17 11:12:53 +01:00

171 lines
6.8 KiB
Bash

#!/bin/bash
####################################################################################################
# Name: Autodesk Fusion 360 - Cronjob for Update (Linux) #
# Description: This file checks whether there is a newer version of Autodesk Fusion 360. #
# Author: Steve Zabka #
# Author URI: https://cryinkfly.com #
# License: MIT #
# Copyright (c) 2020-2022 #
# Time/Date: 11:15/17.02.2022 #
# Version: 0.0.4 #
####################################################################################################
# Path: /$HOME/.config/fusion-360/bin/update.sh
###############################################################################################################################################################
# Window Title (Launcher)
program_name="Autodesk Fusion 360 for Linux - Launcher"
# I will change this value as soon as a new version of Autodesk Fusion 360 is available.
# A value of 0 means that there is no update and a value of 1 will notify the user that there is an update.
get_update=0
# Domain Name
domain="www.github.com"
###############################################################################################################################################################
# ALL FUNCTIONS ARE ARRANGED HERE: #
###############################################################################################################################################################
# Check the connection to the server of GitHub.
function setupact-check-connection {
ping -c 5 $domain 2>/dev/null 1>/dev/null
if [ "$?" = 0 ]; then
echo "Host found"
else
echo "Host not found"
setupact-no-connection-warning
# Skip the update proecess ... (Still in Progress!)
fi
}
# Checks if there is an update for Autodesk Fusion 360.
function setupact-check-update {
if [ $get_update -eq 1 ]; then
setupact-get-update
else
echo "Do nothing!"
setupact-no-update-info
fi
}
# Checks the current day of the week so that the update can be performed.
# %u day of week (1..7); 1 is Monday.
# The update runs on Monday, Wednesday and Friday.
function setupact-get-update {
pc_date=$(date +%u)
if [ $pc_date -eq 1 ]; then
echo "Monday"
setupact-update-question
elif [ $pc_date -eq 3 ]; then
echo "Wednesday"
setupact-update-question
elif [ $pc_date -eq 5 ]; then
echo "Friday"
setupact-update-question
else
setupact-no-update-info
fi
}
function setupact-get-f360exe {
wget https://dl.appstreaming.autodesk.com/production/installers/Fusion%20360%20Admin%20Install.exe -O Fusion360installer.exe
}
function setupact-update {
WINEPREFIX="$HOME/.wineprefixes/fusion360" wine Fusion360installer.exe -p deploy -g -f log.txt --quiet
WINEPREFIX="$HOME/.wineprefixes/fusion360" wine Fusion360installer.exe -p deploy -g -f log.txt --quiet
}
###############################################################################################################################################################
# ALL DIALOGS ARE ARRANGED HERE: #
###############################################################################################################################################################
# The user get a informationt that no newer version of Autodesk Fusion 360 was found!
function setupact-no-update-info {
zenity --info \
--text="No newer version was found, so your Autodesk fusion 360 is up to date!" \
--width=400 \
--height=100
}
###############################################################################################################################################################
# The user get a informationt that there is no connection to the server!
function setupact-no-connection-warning {
zenity --warning \
--text="The connection to the server could not be established! The search for new updates has been skipped! Please check your internet connection!" \
--width=400 \
--height=100
}
###############################################################################################################################################################
# The user will be asked if he wants to update or not.
function setupact-update-question {
zenity --question \
--title="$program_name" \
--text="A new version has been released! Would you like to update now?" \
--width=400 \
--height=100
answer=$?
if [ "$answer" -eq 0 ]; then
echo "Do nothing!"
elif [ "$answer" -eq 1 ]; then
setupact-get-f360exe
setupact-update
fi
}
###############################################################################################################################################################
# A progress bar is displayed here.
function setupact-progressbar {
(
echo "5" ; sleep 1
echo "# Connecting to the server ..." ; sleep 5
setupact-check-connection
echo "25" ; sleep 1
echo "# Check for updates ..." ; sleep 3
setupact-check-update
echo "75" ; sleep 1
) |
zenity --progress \
--title="$program_name" \
--text="Checking if there is a new version of Autodesk fusion 360 available ..." \
--width=400 \
--height=100 \
--percentage=0
if [ "$?" = 0 ] ; then
setupact-update-solved
elif [ "$?" = 1 ] ; then
zenity --question \
--title="$program_name" \
--text="Are you sure you want to skip checking for an Autodesk Fusion 360 update?" \
--width=400 \
--height=100
answer=$?
if [ "$answer" -eq 0 ]; then
echo "Do nothing!"
elif [ "$answer" -eq 1 ]; then
setupact-progressbar
fi
elif [ "$?" = -1 ] ; then
zenity --error \
--text="An unexpected error occurred!"
exit;
fi
}
###############################################################################################################################################################
# THE INSTALLATION PROGRAM IS STARTED HERE: #
###############################################################################################################################################################
setupact-progressbar