diff options
Diffstat (limited to 'src/core/scripts/svn2cl.sh')
-rw-r--r-- | src/core/scripts/svn2cl.sh | 130 |
1 files changed, 130 insertions, 0 deletions
diff --git a/src/core/scripts/svn2cl.sh b/src/core/scripts/svn2cl.sh new file mode 100644 index 0000000..bf89bb0 --- /dev/null +++ b/src/core/scripts/svn2cl.sh @@ -0,0 +1,130 @@ +#!/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" - |