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
|
#!/bin/bash
# Automate the release process.
# Author: Jan wielemaker
#
# Usage: first update VERSION, then run this script.
function confirm ()
{ while true; do
echo -n "$1 "
read answer
case "$answer" in
y*) return 0
;;
n*) return 1
;;
*)
echo "Please answer yes or no"
;;
esac
done
}
version=`cat VERSION`
versiondate=`date +"%B %Y"`
major=`echo $version | sed 's/\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)/\1/'`
minor=`echo $version | sed 's/\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)/\2/'`
patch=`echo $version | sed 's/\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)/\3/'`
numversion=$(($major * 10000 + $minor * 100 + $patch))
tmp=.tmp$$
f=src/pl-itf.h
sed "s/^#define PLVERSION.*/#define PLVERSION $numversion/" $f > $tmp
if cmp $f $tmp; then
rm -f $tmp
else
cat $tmp > $f
rm $tmp
cp -p $f include/SWI-Prolog.h
echo "Updated #define PLVERSION in $f and include/SWI-Prolog.h"
fi
rm -f $tmp
for f in pl.lsm pl.spec; do
sed -e "s/\(Version:[ ]*\).*/\1$version/" \
-e "s/pl-[0-9.]*\.tar\.gz/pl-$version.tar.gz/" $f > $tmp
if cmp $f $tmp; then
rm -f $tmp
else
cat $tmp > $f
rm $tmp
echo "Updated version in $f"
fi
done
gittag="V${major}.${minor}.${patch}"
if confirm "Tag the GIT repository with $gittag? "; then
git tag -f -m "Release tag for ${major}.${minor}.${patch}" $gittag
fi
if confirm "Upload new LSM entry to lsm@execpc.com? "; then
mail -s add lsm@execpc.com < pl.lsm
fi
|