72 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
			
		
		
	
	
			72 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
| #!/bin/bash
 | |
| # Export sources from a git tree and prepare it for a public release.
 | |
| # Jose Luis Blanco Claraco, 2019 (for GTSAM)
 | |
| # Jose Luis Blanco Claraco, 2008-2018 (for MRPT)
 | |
| 
 | |
| set -e  # exit on error
 | |
| #set -x  # for debugging
 | |
| 
 | |
| # Checks
 | |
| # --------------------------------
 | |
| if [ -f version_prefix.txt ];
 | |
| then
 | |
| 	if [ -z ${GTSAM_VERSION_STR+x} ];
 | |
| 	then
 | |
| 		source package_scripts/prepare_debian_gen_snapshot_version.sh
 | |
| 	fi
 | |
| 	echo "ERROR: Run this script from the GTSAM source tree root directory."
 | |
| 	exit 1
 | |
| fi
 | |
| 
 | |
| GTSAM_SRC=`pwd`
 | |
| OUT_RELEASES_DIR="$HOME/gtsam_release"
 | |
| 
 | |
| OUT_DIR=$OUT_RELEASES_DIR/gtsam-${GTSAM_VERSION_STR}
 | |
| 
 | |
| echo "=========== Generating GTSAM release ${GTSAM_VER_MMP} =================="
 | |
| echo "GTSAM_VERSION_STR   : ${GTSAM_VERSION_STR}"
 | |
| echo "OUT_DIR            : ${OUT_DIR}"
 | |
| echo "============================================================"
 | |
| echo
 | |
| 
 | |
| # Prepare output directory:
 | |
| rm -fR $OUT_RELEASES_DIR  || true
 | |
| mkdir -p ${OUT_DIR}
 | |
| 
 | |
| # Export / copy sources to target dir:
 | |
| if [ -d "$GTSAM_SRC/.git" ];
 | |
| then
 | |
| 	echo "# Exporting git source tree to ${OUT_DIR}"
 | |
| 	git archive --format=tar HEAD | tar -x -C ${OUT_DIR}
 | |
| 
 | |
| 	# Remove VCS control files:
 | |
| 	find ${OUT_DIR} -name '.gitignore' | xargs rm
 | |
| 
 | |
| 	# Generate ./SOURCE_DATE_EPOCH with UNIX time_t
 | |
| 	SOURCE_DATE_EPOCH=$(git log -1 --pretty=%ct)
 | |
| else
 | |
| 	echo "# Copying sources to ${OUT_DIR}"
 | |
| 	cp -R . ${OUT_DIR}
 | |
| 
 | |
| 	# Generate ./SOURCE_DATE_EPOCH with UNIX time_t
 | |
| 	SOURCE_DATE_EPOCH=$(date +%s)
 | |
| fi
 | |
| 
 | |
| # See https://reproducible-builds.org/specs/source-date-epoch/
 | |
| echo $SOURCE_DATE_EPOCH > ${OUT_DIR}/SOURCE_DATE_EPOCH
 | |
| 
 | |
| cd ${OUT_DIR}
 | |
| 
 | |
| # Dont include Debian files in releases:
 | |
| rm -fR package_scripts
 | |
| 
 | |
| # Orig tarball:
 | |
| cd ..
 | |
| echo "# Creating orig tarball: gtsam-${GTSAM_VERSION_STR}.tar.gz"
 | |
| tar czf gtsam-${GTSAM_VERSION_STR}.tar.gz gtsam-${GTSAM_VERSION_STR}
 | |
| 
 | |
| rm -fr gtsam-${GTSAM_VERSION_STR}
 | |
| 
 | |
| # GPG signature:
 | |
| gpg --armor --detach-sign gtsam-${GTSAM_VERSION_STR}.tar.gz
 |