#!/bin/bash declare DEBUG=0 declare HELP=0 declare EDITOR=0 declare WORKDIR="$(dirname $(readlink -f $0))" declare GODOT_SRC="https://downloads.tuxfamily.org/godotengine/4.0/alpha1/Godot_v4.0-alpha1_linux.64.zip" declare OUTZIP="$WORKDIR/Godot.zip" declare OPTION="" function msg_debug() { if [ $DEBUG -ne 0 ] then echo "### DEBUG : $*" >&2 fi } function msg_info() { echo "--- INFO : $*" >&2 } function msg_error() { echo "*** ERROR : $*" >&2 } function download() { local package="$1" local out="$2" if [ -f $2 ] then return 0 fi which curl 1>/dev/null 2>/dev/null if [ $? -eq 0 ] then curl -o $out $package if [ $? -eq 0 ] then msg_info "Package GODOT downloaded" return 0 fi fi which wget 1>/dev/null 2>/dev/null if [ $? -eq 0 ] then wget $package -O $out if [ $? -eq 0 ] then msg_info "Package GODOT downloaded" return 0 fi fi msg_error "Impossible to download" exit 2 } function extract() { local compressed_file="$1" which unzip 1>/dev/null 2>/dev/null if [ $? -eq 0 ] then unzip -u $compressed_file -d $WORKDIR 1>&2 if [ $? -eq 0 ] then msg_info "Uncompressed GODOT" unzip -Z1 $compressed_file return 0 fi fi msg_error "Impossible to extract" exit 2 } while getopts hdeo:s: flag do case "${flag}" in h) HELP=1;; d) DEBUG=1;; e) EDITOR=1;; o) OUTZIP=${OPTARG};; s) GODOT_SRC=${OPTARG};; *) HELP=1;; esac done if [[ $HELP -ne 0 ]] then cat << EOF $(basename $0) [Option] : Donwload Launch Godot Option: -h : Show help -d : Show debug message -e : Start Godot in editor mode -o : target godot file (downloaded) -s : Url to download a specific godot version EOF exit 1 fi msg_info "Start" msg_debug "WORKDIR:$WORKDIR OUTZIP:$OUTZIP GODOT_SRC:$GODOT_SRC" download "$GODOT_SRC" "$OUTZIP" EXE=$(extract "$OUTZIP") msg_info "Prg:$EXE" if [ $EDITOR -ne 0 ] then OPTION="$OPTION -e" fi $WORKDIR/$EXE $OPTION msg_info "End"