#!/bin/bash
#############################################################################
# Copyright (c) 2008,2009 Novell, Inc.
# All Rights Reserved.
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of version 2 of the GNU General Public License as
# published by the Free Software Foundation.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, contact Novell, Inc.
#
# To contact Novell about this file by physical or electronic mail,
# you may find current contact information at www.novell.com
#############################################################################
unset FILE
export EDITOR=${EDITOR:=vim}
[ -z "$GIT_COMMITTER_EMAIL" ] && GIT_COMMITTER_EMAIL=$(git config --get user.email)
if [ -n "$1" ]; then
if [ -f "$1" ]; then
FILE=$1
else
if [ -d "$1" ]; then
cd $1
else
FILE=${1##*/}.changes
fi
fi
fi
if [ -z "$FILE" ]; then
echo "Usage: ${0##*/} [filename[.changes]|path [file_with_comment]]"
echo " If no <filename> is given, exactly one *.changes or"
echo " *.spec file has to be in the cwd or in <path>."
echo
exit 1
fi
COMMENT_FILE=$2
tmpfile=$(mktemp /tmp/${0##*/}.XXXXXX)
trap "rm -f $lockfile $tmpfile" EXIT
{
timestamp=$(LC_ALL=POSIX TZ=Europe/Berlin date)
committer=${SUSE_COMMITTER_EMAIL:-${GIT_COMMITTER_EMAIL:-$(id -un)@suse.de}}
echo "-------------------------------------------------------------------"
echo "$timestamp - $committer"
echo
if [ -n "$CHANGE_MESSAGE" ]; then
echo "- $CHANGE_MESSAGE"
elif [ -z "$COMMENT_FILE" ]; then
echo "- "
else
cat $COMMENT_FILE
fi
echo
if [ -f "$FILE" ]; then
cat $FILE
fi
} >> $tmpfile || exit 1
if [ -z "$COMMENT_FILE" ]; then
lines=1
CHKSUM_BEFORE=$(md5sum $tmpfile | awk '{print $1}')
else
lines=$(wc -l $COMMENT_FILE | awk '{print $1}')
CHKSUM_BEFORE=has_changed
fi
if test -z "$CHANGE_MESSAGE"; then
$EDITOR +$((3+lines)) $tmpfile
if [ "$CHKSUM_BEFORE" = "$(md5sum $tmpfile | awk '{print $1}')" ]; then
exit 1
fi
fi
cat $tmpfile > $FILE