6 set -e  # abort on errors
 
     7 shopt -s nullglob  # file globs that don't match expand
 
    11 # Check if $EDITOR is set, otherwise set to "vi".
 
    16 # Check for -f option ()
 
    18 if [ "$1" = -f ]; then
 
    24 # Detect the name of the file to edit
 
    35 	    FILE=$(package_name $1).changelog
 
    40 if [ -z "$FILE" ]; then
 
    41     for f in *.changelog; do
 
    42 	if [ -n "$FILE" ]; then
 
    50 if [ -z "$FILE" ]; then
 
    52 	if [ -n "$FILE" ]; then
 
    58     if [ -n "$FILE" ]; then
 
    59 	FILE=$(package_name $FILE).changelog
 
    63 if [ -z "$FILE" ]; then
 
    64     echo "usage: ${0##*/} [filename[.changelog]|path [file_with_comment]]"
 
    65     echo "If no <filename> is given, exactly one *.changelog or"
 
    66     echo "*.spec file has to be in the cwd or in <path>."
 
    72 # Add domain to username (if it's me ;-)
 
    75 #if [ $user = "uwedr" ]; then
 
    76 #	user="$user@suse.de"
 
    82 # Create the lockfile and temporary file.
 
    84 lockfile=.${FILE##*/}.lock
 
    85 if [ "${FILE/\//}" != "$FILE" ]; then
 
    86     lockfile=${FILE%/*}/.$lockfile
 
    89 if [ ! -w "$(dirname "$FILE")" ]; then
 
    90     echo "Write access to directory $(dirname "$FILE") required" >&2
 
    94 if [ -e "$FILE" -a ! -w "$FILE" ]; then
 
    95     echo "Write access to file $FILE required" >&2
 
   100 while ! echo $$@$(hostname -f) 2> /dev/null > $lockfile; do
 
   101     if [ -z "$retry_lock" ]; then
 
   102 	echo "$lockfile: Lock by process $(cat $lockfile)" >&2
 
   103 	echo "Please remove stale lockfiles manually" >&2
 
   106     echo "$lockfile: Waiting for process $(cat $lockfile) to release lock" >&2
 
   111 tmpfile=$(mktemp /tmp/${0##*/}.XXXXXX)
 
   112 trap "rm -f $lockfile $tmpfile" EXIT
 
   115 # Prepare the working copy and start the editor
 
   118 {   timestamp=$(LC_ALL=POSIX TZ=Europe/Berlin date)
 
   119     echo "-------------------------------------------------------------------"
 
   120     echo "$timestamp - $user"
 
   122     if [ -z "$COMMENT_FILE" ]; then
 
   128     if [ -f "$FILE" ]; then
 
   134 if [ -z "$COMMENT_FILE" ]; then
 
   136     CHKSUM_BEFORE=$(md5sum $tmpfile | awk '{print $1}')
 
   138     lines=$(wc -l $COMMENT_FILE | awk '{print $1}')
 
   139     CHKSUM_BEFORE=has_changed
 
   142 $EDITOR +$((3+lines)) $tmpfile
 
   144 if [ "$CHKSUM_BEFORE" = "$(md5sum $tmpfile | awk '{print $1}')" ]; then