#!/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 is given, exactly one *.changes or" echo " *.spec file has to be in the cwd or in ." 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