mirror of
				https://github.com/godotengine/godot.git
				synced 2025-11-04 07:31:16 +00:00 
			
		
		
		
	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
 |