viewvc-4intranet/tools/make-release

86 lines
2.2 KiB
Bash
Executable File

#!/bin/sh
#
# Copyright (C) 1999-2006 The ViewCVS Group. All Rights Reserved.
#
# By using this file, you agree to the terms and conditions set forth in
# the LICENSE.html file which can be found at the top level of the ViewVC
# distribution or at http://viewvc.org/license-1.html.
#
# For more information, visit http://viewvc.org/
#
# -----------------------------------------------------------------------
#
# make-release: internal tool for creating ViewVC releases
#
# -----------------------------------------------------------------------
#
### Validate input
if test $# != 2 && test $# != 1; then
echo "Usage: $0 TARGET-DIRECTORY [TAGNAME]"
echo ""
echo "If TAGNAME is not provided, the release will be rolled from trunk."
exit 1
fi
TARGET=${1}
if test $# == 1; then
ROOT=trunk
else
ROOT=tags/${2}
fi
if test -e ${TARGET}; then
echo "ERROR: must remove ${TARGET} first."
exit 1
fi
### Grab an export from the Subversion repository.
echo "Exporting into:" ${TARGET}
for PLATFORM in unix windows; do
if test ${PLATFORM} = windows; then
EOL="--native-eol CRLF"
else
EOL="--native-eol LF"
fi
svn export ${EOL} http://viewvc.tigris.org/svn/viewvc/${ROOT} ${TARGET}
### Various shifting, cleanup.
# Documentation is now also distributed together with the release, but
# we still copy the license file to its traditional place (it is small
# and many files still contain comments refering to this location):
# Remove some not useful directories
for JUNK in elemx \
notes \
tests \
tools \
tparse \
viewcvs.sourceforge.net \
viewvc.org \
www; do
if [ -e ${JUNK} ]; then
rm -f ${JUNK}
fi
done
# Make sure permissions are reasonable:
find ${TARGET} -print | xargs chmod uoa+r
find ${TARGET} -type d -print | xargs chmod uoa+x
if test ${PLATFORM} = windows; then
# Create also a ZIP file for those poor souls :-) still using Windows:
zip -qor9 ${TARGET}.zip ${TARGET}
else
# Cut the tarball:
tar cf - ${TARGET} | gzip -9 > ${TARGET}.tar.gz
fi
# remove target directory
rm -r ${TARGET}
done
echo 'Done.'