godot-third-person-basic-scene/start-khanat-client.sh

121 lines
2 KiB
Bash
Executable file

#!/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 <File> : target godot file (downloaded)
-s <Url> : 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"