Blob Blame History Raw
#!/bin/bash

# Note: you need python-setuptools and subversion installed to be able to use this script

# Source for trac-accountmanager-plugin comes from SVN repository at trac-hacks.org
site=https://trac-hacks.org/
repo=svn/accountmanagerplugin
tarname=TracAccountManager

# Specify the branch and revision we're after, plus the version upstream calls itself
branch=trunk
svnrel=16056
version=0.5

# Pull the desired version from svn
svn checkout -r ${svnrel} ${site}${repo}/${branch} ${tarname}-${version}

# Avoid exclusion of tests
cd ${tarname}-${version}
patch -p0 < TracAccountManager-0.5dev-r16056-tests.patch
cd -

# Make timestamps be that of last upstream change
find ${tarname}-${version} -name .svn -prune -o -print |
while read pathname
do
	timestamp=$(svn info ${pathname} | awk '/^Last Changed Date:/ { print $4 " " $5 " " $6 }')
	touch --date="${timestamp}" ${pathname}
done

# Make a tarball
cd ${tarname}-${version}
python setup.py sdist --formats bztar
# Work around svn tagging issues (http://trac.edgewall.org/ticket/10658)
if [ ! -f dist/${tarname}-${version}dev-r${svnrel}.tar.bz2 -a -f dist/${tarname}-${version}.dev0.tar.bz2 ]; then
	tar xfj dist/${tarname}-${version}.dev0.tar.bz2
	rm dist/${tarname}-${version}.dev0.tar.bz2
	grep -rl '[.]dev0' ${tarname}-${version}.dev0 | xargs sed -i -e "s/[.]dev0/dev-r${svnrel}/"
	mv ${tarname}-${version}.dev0 ${tarname}-${version}dev-r${svnrel}
	tar cfj dist/${tarname}-${version}dev-r${svnrel}.tar.bz2 ${tarname}-${version}dev-r${svnrel}
fi
cd -
if [ "${branch}" = "trunk" ]; then
	# dev snapshot
	tarball=${tarname}-${version}dev-r${svnrel}.tar.bz2
else
	# release
	tarball=${tarname}-${version}.tar.bz2
fi
mv ${tarname}-${version}/dist/${tarball} .

# Fix the timestamp of the tarball
timestamp=$(svn info ${tarname}-${version} | awk '/^Last Changed Date:/ { print $4 " " $5 " " $6 }')
touch --date="${timestamp}" ${tarball}

# Display checkout status
svn info ${tarname}-${version} | grep "Last Changed"

# Remove the svn checkout
rm -rf ${tarname}-${version}