1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72
|
#!/bin/bash -f
tmp=.chlog$$
updatechangelog ()
{ chlog="$1"
dir=`dirname "$1"`
since=`git log $chlog | head -1 | awk '{print $2}'`
./mkchangelog $since $dir > $tmp
if [ -s $tmp ]; then
cat $tmp $chlog > $tmp-2
cp $tmp-2 $chlog
rm $tmp-2
fi
rm $tmp
}
insert_at ()
{ insert=$1
pattern=$2
infile=$3
awk < $infile '
BEGIN { seen="false";
}
/'$pattern'/ { if ( seen == "false" )
{ system("cat '$insert'");
seen = true;
}
}
{ print $0;
}
'
}
mainchangelog ()
{ chlog="$1"
since=`git log $chlog | head -1 | awk '{print $2}'`
./mkchangelog --nodate $since src library boot > $tmp
if [ -s $tmp ]; then
v="VERSION `cat VERSION` `date +'%B %d, %Y'`"
sep=`echo $v | sed 's/./=/g'`
echo $sep >> $tmp-2
echo $v >> $tmp-2
echo $sep >> $tmp-2
echo "" >> $tmp-2
cat $tmp >> $tmp-2;
mv $tmp-2 $tmp
fi
insert_at $tmp '^===========' $chlog > $tmp-2
cp $tmp-2 $chlog
rm $tmp $tmp-2
}
for f in `find . -name ChangeLog`; do
echo -n "Updating $f ... "
if [ "$f" = ./ChangeLog ]; then
mainchangelog ChangeLog
else
updatechangelog $f
fi
echo done
done
|