sgpemv2/config/svn2cl.sh

131 lines
4.1 KiB
Bash
Executable File

#!/bin/sh
# svn2cl.sh - front end shell script for svn2cl.xsl, calls xsltproc
# with the correct parameters
#
# Copyright (C) 2005 Arthur de Jong.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions
# are met:
# 1. Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
# 2. Redistributions in binary form must reproduce the above copyright
# notice, this list of conditions and the following disclaimer in
# the documentation and/or other materials provided with the
# distribution.
# 3. The name of the author may not be used to endorse or promote
# products derived from this software without specific prior
# written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
# ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
# GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
# IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
# exit on any failures
set -e
# svn2cl version
VERSION="0.3"
# set default parameters
STRIPPREFIX=`basename $(pwd)`
LINELEN=75
GROUPBYDAY="no"
INCLUDEREV="no"
CHANGELOG="ChangeLog"
# do command line checking
prog=`basename $0`
while [ -n "$1" ]
do
case "$1" in
--strip-prefix)
STRIPPREFIX="$2"
shift 2
;;
--linelen)
LINELEN="$2";
shift 2
;;
--group-by-day)
GROUPBYDAY="yes";
shift
;;
-r|--include-rev)
INCLUDEREV="yes";
shift
;;
-o|--output)
CHANGELOG="$2"
shift 2
;;
--stdout)
CHANGELOG="-"
shift
;;
-V|--version)
echo "$prog $VERSION";
echo "Written by Arthur de Jong."
echo ""
echo "Copyright (C) 2005 Arthur de Jong."
echo "This is free software; see the source for copying conditions. There is NO"
echo "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
exit 0
;;
-h|--help)
echo "Usage: $prog [OPTION]..."
echo "Generate a ChangeLog from a checked out subversion repository."
echo ""
echo " --strip-prefix NAME prefix to strip from all entries, defaults"
echo " to the name of the current directory"
echo " --linelen NUM maximum length of an output line"
echo " --group-by-day group changelog entries by day"
echo " -r, --include-rev include revision numbers"
echo " -o, --output FILE output to FILE instead of ChangeLog"
echo " -f, --file FILE alias for -o, --output"
echo " --stdout output to stdout instead of ChangeLog"
echo " -h, --help display this help and exit"
echo " -V, --version output version information and exit"
exit 0
;;
*)
echo "$prog: invalid option -- $1"
echo "Try \`$prog --help' for more information."
exit 1
;;
esac
done
# find the directory that this script resides in
prog="$0"
while [ -h "$prog" ]
do
prog=`ls -ld "$prog" | sed "s/^.*-> \(.*\)/\1/;/^[^/]/s,^,$(dirname "$prog")/,"`
done
dir=`dirname $prog`
dir=`cd $dir && pwd`
XSL="$dir/svn2cl.xsl"
# redirect stdout to the changelog file if needed
if [ "x$CHANGELOG" != "x-" ]
then
exec > "$CHANGELOG"
fi
# actually run the command we need
svn --verbose --xml log | \
xsltproc --stringparam strip-prefix "$STRIPPREFIX" \
--stringparam linelen $LINELEN \
--stringparam groupbyday $GROUPBYDAY \
--stringparam include-rev $INCLUDEREV \
"$XSL" -