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

129 lines
2.3 KiB
Bash
Executable file

#!/bin/bash
declare DEBUG=0
declare HELP=0
declare EDITOR=0
declare FORCE=0
declare WORKDIR="$(dirname $(readlink -f $0))"
declare GODOT_SRC="https://downloads.tuxfamily.org/godotengine/4.0/alpha3/Godot_v4.0-alpha3_linux.64.zip"
declare OUTZIP="$WORKDIR/$(basename $GODOT_SRC)"
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 [[ $FORCE -eq 0 && -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
fileout=$(unzip -Z1 $compressed_file)
if [[ $FORCE -eq 0 && -f $fileout ]]
then
echo $fileout
return 0
fi
unzip -u $compressed_file -d $WORKDIR 1>&2
if [ $? -eq 0 ]
then
msg_info "Uncompressed GODOT"
echo $fileout
return 0
fi
fi
msg_error "Impossible to extract"
exit 2
}
while getopts hdeo:s:f flag
do
case "${flag}" in
h) HELP=1;;
d) DEBUG=1;;
e) EDITOR=1;;
o) OUTZIP=${OPTARG};;
s) GODOT_SRC=${OPTARG};;
f) FORCE=1;;
*) 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
-f : force download & uncompress
-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"