91d29ddcfb
This allows to generate the `VERSION_HASH` constant with the Git commit hash
even when building from a source tarball which is not a Git repository (and
without dependency on Git itself).
(cherry picked from commit 9a71038e34
)
66 lines
1.3 KiB
Bash
Executable file
66 lines
1.3 KiB
Bash
Executable file
#!/bin/sh
|
|
|
|
if [ ! -e "version.py" ]; then
|
|
echo "This script should be ran from the root folder of the Godot repository."
|
|
exit 1
|
|
fi
|
|
|
|
while getopts "h?sv:g:" opt; do
|
|
case "$opt" in
|
|
h|\?)
|
|
echo "Usage: $0 [OPTIONS...]"
|
|
echo
|
|
echo " -s script friendly file name (godot.tar.gz)"
|
|
echo " -v godot version for file name (e.g. 4.0-stable)"
|
|
echo " -g git treeish to archive (e.g. master)"
|
|
echo
|
|
exit 1
|
|
;;
|
|
s)
|
|
script_friendly_name=1
|
|
;;
|
|
v)
|
|
godot_version=$OPTARG
|
|
;;
|
|
g)
|
|
git_treeish=$OPTARG
|
|
;;
|
|
esac
|
|
done
|
|
|
|
if [ ! -z "$git_treeish" ]; then
|
|
HEAD=$(git rev-parse $git_treeish)
|
|
else
|
|
HEAD=$(git rev-parse HEAD)
|
|
fi
|
|
|
|
if [ ! -z "$script_friendly_name" ]; then
|
|
NAME=godot
|
|
else
|
|
if [ ! -z "$godot_version" ]; then
|
|
NAME=godot-$godot_version
|
|
else
|
|
NAME=godot-$HEAD
|
|
fi
|
|
fi
|
|
|
|
CURDIR=$(pwd)
|
|
TMPDIR=$(mktemp -d -t godot-XXXXXX)
|
|
|
|
echo "Generating tarball for revision $HEAD with folder name '$NAME'."
|
|
echo
|
|
echo "The tarball will be written to the parent folder:"
|
|
echo " $(dirname $CURDIR)/$NAME.tar.gz"
|
|
|
|
git archive $HEAD --prefix=$NAME/ -o $TMPDIR/$NAME.tar
|
|
|
|
# Adding custom .git/HEAD to tarball so that we can generate VERSION_HASH.
|
|
cd $TMPDIR
|
|
mkdir -p $NAME/.git
|
|
echo $HEAD > $NAME/.git/HEAD
|
|
tar -uf $NAME.tar $NAME
|
|
|
|
cd $CURDIR
|
|
gzip -c $TMPDIR/$NAME.tar > ../$NAME.tar.gz
|
|
|
|
rm -rf $TMPDIR
|