carla/Update.sh

105 lines
3.1 KiB
Bash
Raw Permalink Normal View History

2017-11-27 20:15:49 +08:00
#! /bin/bash
################################################################################
2018-01-22 18:21:09 +08:00
# Updates CARLA content.
2017-11-27 20:15:49 +08:00
################################################################################
set -e
2018-01-22 18:21:09 +08:00
DOC_STRING="Update CARLA content to the latest version, to be run after 'git pull'."
USAGE_STRING="Usage: $0 [-h|--help] [-s|--skip-download]"
# ==============================================================================
# -- Parse arguments -----------------------------------------------------------
# ==============================================================================
SKIP_DOWNLOAD=false
OPTS=`getopt -o hs --long help,skip-download -n 'parse-options' -- "$@"`
if [ $? != 0 ] ; then echo "$USAGE_STRING" ; exit 2 ; fi
eval set -- "$OPTS"
while true; do
case "$1" in
-s | --skip-download )
SKIP_DOWNLOAD=true;
shift ;;
-h | --help )
2018-01-22 18:21:09 +08:00
echo "$DOC_STRING"
echo "$USAGE_STRING"
exit 1
;;
* )
break ;;
esac
done
# ==============================================================================
# -- Set up environment --------------------------------------------------------
# ==============================================================================
2024-02-01 08:34:09 +08:00
MAX_PARALLELL_DOWNLOADS=16
MAX_CONNECTIONS_PER_SERVER=16
2024-01-29 04:57:34 +08:00
2017-11-27 20:15:49 +08:00
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
pushd "$SCRIPT_DIR" >/dev/null
CONTENT_FOLDER="${SCRIPT_DIR}/Unreal/CarlaUE4/Content/Carla"
2017-11-27 20:15:49 +08:00
2019-03-18 23:21:07 +08:00
CONTENT_ID=$(tac $SCRIPT_DIR/Util/ContentVersions.txt | egrep -m 1 . | rev | cut -d' ' -f1 | rev)
2024-01-29 04:57:34 +08:00
CONTENT_LINK=https://carla-assets.s3.us-east-005.backblazeb2.com/${CONTENT_ID}.tar.gz
2017-11-27 20:15:49 +08:00
VERSION_FILE="${CONTENT_FOLDER}/.version"
2017-11-27 20:15:49 +08:00
function download_content {
if [[ -d "$CONTENT_FOLDER" ]]; then
echo "Backing up existing Content..."
mv -v "$CONTENT_FOLDER" "${CONTENT_FOLDER}_$(date +%Y%m%d%H%M%S)"
fi
mkdir -p "$CONTENT_FOLDER"
2017-11-27 20:15:49 +08:00
mkdir -p Content
if hash aria2c 2>/dev/null; then
echo -e "${CONTENT_LINK}\n\tout=Content.tar.gz" > .aria2c.input
2024-01-29 04:57:34 +08:00
aria2c -j${MAX_PARALLELL_DOWNLOADS} -x${MAX_CONNECTIONS_PER_SERVER} --input-file=.aria2c.input
rm -f .aria2c.input
else
wget -c ${CONTENT_LINK} -O Content.tar.gz
fi
2017-11-27 20:15:49 +08:00
tar -xvzf Content.tar.gz -C Content
rm Content.tar.gz
mv Content/* "$CONTENT_FOLDER"
2019-03-20 19:34:21 +08:00
rm -rf Content
2019-03-18 23:21:07 +08:00
echo "$CONTENT_ID" > "$VERSION_FILE"
2017-11-27 20:15:49 +08:00
echo "Content updated successfully."
}
# ==============================================================================
# -- Download Content if necessary ---------------------------------------------
# ==============================================================================
if $SKIP_DOWNLOAD ; then
echo "Skipping 'Content' update. Please manually download the package from"
echo
2019-03-18 23:21:07 +08:00
echo " ${CONTENT_LINK}"
echo
2018-07-19 22:15:34 +08:00
echo "and extract it under Unreal/CarlaUE4/Content/Carla."
exit 0
fi
2017-11-27 20:15:49 +08:00
if [[ -d "$CONTENT_FOLDER/.git" ]]; then
echo "Using git version of 'Content', skipping update."
elif [[ -f "$CONTENT_FOLDER/.version" ]]; then
2019-03-18 23:21:07 +08:00
if [ "$CONTENT_ID" == `cat $VERSION_FILE` ]; then
2017-11-27 20:15:49 +08:00
echo "Content is up-to-date."
else
download_content
fi
else
download_content
fi
popd >/dev/null