diff options
Diffstat (limited to 'modules/subversion')
-rw-r--r-- | modules/subversion/manifests/init.pp | 2 | ||||
-rwxr-xr-x | modules/subversion/templates/ciabot_svn.sh | 115 |
2 files changed, 116 insertions, 1 deletions
diff --git a/modules/subversion/manifests/init.pp b/modules/subversion/manifests/init.pp index f6b5db1c..20b5bfc5 100644 --- a/modules/subversion/manifests/init.pp +++ b/modules/subversion/manifests/init.pp @@ -184,7 +184,7 @@ class subversion { owner => root, group => root, mode => 755, - content => template("subversion/ciabot_svn.py"), + content => template("subversion/ciabot_svn.sh"), } } diff --git a/modules/subversion/templates/ciabot_svn.sh b/modules/subversion/templates/ciabot_svn.sh new file mode 100755 index 00000000..e62b7a6f --- /dev/null +++ b/modules/subversion/templates/ciabot_svn.sh @@ -0,0 +1,115 @@ +#!/bin/sh +# +# This is a CIA bot client script for Subversion repositories, +# delivering via email. See below for usage and customization information. +# +# -------------------------------------------------------------------------- +# +# Copyright (c) 2004-2005, Micah Dowty +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, +# this list of conditions and the following disclaimer. +# * 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. +# * 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 COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT OWNER OR CONTRIBUTORS 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. +# +# -------------------------------------------------------------------------- +# +# See http://cia.navi.cx for more information on what the CIA bot +# is and how it works, and links to other client scripts. +# +# To use the CIA bot in your Subversion repository... +# +# 1. Customize the parameters below, specifically the ones under +# the "Project information" section +# +# 2. This script should be called from your repository's post-commit +# hook with the repository and revision as arguments. For example, +# you could copy this script into your repository's "hooks" directory +# and add something like the following to the "post-commit" script, +# also in the repository's "hooks" directory: +# +# REPOS="$1" +# REV="$2" +# $REPOS/hooks/ciabot_svn.sh "$REPOS" "$REV"& +# +# ------ There are some parameters for this script that you can customize: + +# Project information +# +# NOTE: This shouldn't be a long description of your project. Ideally +# it is a short identifier with no spaces, punctuation, or +# unnecessary capitalization. This will be used in URLs related +# to your project, as an internal identifier, and in IRC messages. +# If you want a longer name shown for your project on the web +# interface, please use the "title" metadata key rather than +# putting that here. +# +project_name="Mageia" +return_address="root@mageia.org" + +# System +sendmail_command="/usr/sbin/sendmail -t" + +############# Below this line you shouldn't have to change anything + +# Script arguments +REPOS="$1" +REV="$2" + +# The email address CIA lives at +cia_address="cia@cia.navi.cx" + +author=`svnlook author -r "$REV" "$REPOS" | sed 's/\&/\&/g;s/</\</g;s/>/\>/g'` +log=`svnlook log -r "$REV" "$REPOS" | sed 's/\&/\&/g;s/</\</g;s/>/\>/g'` +diff_lines=`svnlook diff -r "$REV" "$REPOS" | wc -l` +for file in `svnlook changed -r "$REV" "$REPOS" | cut -c 3- | sed 's/\&/\&/g;s/</\</g;s/>/\>/g'`; do + files="$files<file>$file</file>" +done + +# Send an email with the final XML message +(cat <<EOF +From: $return_address +To: $cia_address +Subject: DeliverXML + +<message> + <generator> + <name>Subversion CIA Bot client shell script</name> + <version>1.1</version> + </generator> + <source> + <project>$project_name</project> + </source> + <body> + <commit> + <revision>$REV</revision> + <author>$author</author> + <files>$files</files> + <log>$log</log> + <diffLines>$diff_lines</diffLines> + </commit> + </body> +</message> +EOF +) | $sendmail_command + +### The End ### |