Wrapper script for pulling a CVS revision and making tarballs from it. This is afirst attempt; eventually it will re-bake automatically and handle docs completely (once I look at Chris Elliott's script.)

The eventual idea is that you should be able to run this script on all three platforms and it will generate all the tarballs and post them to a deliver directory, which a script would then upload.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@35437 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Kevin Ollivier 2005-09-07 05:08:55 +00:00
parent 3f39c25469
commit c4295812f4

220
distrib/tar-o-matic.sh Executable file
View File

@ -0,0 +1,220 @@
#!/bin/sh
# create wx tarballs automatically given a tag, or from CVS HEAD
PROGNAME=$0
VERSION=$1
TAG=""
STARTDIR=$PWD
SPINWXX11=0
SPINWXGTK=0
SPINWXMOTIF=0
SPINWXMAC=0
SPINWXBASE=0
SPINWXMGL=0
SPINDOCS=0
SPINEVERYTHING=0
REBAKE=0
SILENTFLAG=""
about()
{
# sorry folks, I couldn't resist. :-)
echo "It's the tar-o-matic 2000! It slices! It dices! It..."
echo "Grabs CVS revisions and generates complete tarballs from them!!"
echo ""
echo "WARNING:"
echo "- Do not use tar-o-matic while intoxicated."
echo "- Do not use tar-o-matic while driving."
echo "- Do not use tar-o-matic while driving intoxicated."
echo "- Keep tar-o-matic away from small children. Large ones too."
echo "- Tar-o-matic is not for use as a life-saving device."
echo "- Do not call tar-o-matic nasty names. It really hates that."
echo "- Avoid developing strong emotional attachment to tar-o-matic."
echo "- Keep tar-o-matic away from unmonitored internet connections."
echo "- Don't say we didn't warn you."
echo ""
echo "In case of malfunction, let tar-o-matic know that it is special."
}
usage()
{
echo Usage: $PROGNAME " version-number cvs-revision [ options ]"
echo Options:
echo " --help Display this help message"
echo " --wxgtk Spin wxGTK"
echo " --wxbase Spin wxBase"
echo " --wxx11 Spin wxX11"
echo " --wxmotif Spin wxMotif"
echo " --wxmac Spin wxMac"
echo " --wxmgl Spin wxMGL"
echo " --docs Spin docs"
echo " --all Spin EVERYTHING"
echo " --updatecvs Update from CVS"
echo " --silent Don't prompt whenever possible"
echo " only for use with revisions > 2.6.1"
echo " --about about $PROGNAME"
echo ""
echo "NOTES:"
echo "- Set EXTRASDIR environment variable to have any zip files"
echo " in that directory copied into deliver/extra for inclusion."
echo "- Set WXDISTDIR environment variable to have completed "
echo " tarballs put in that directory. This allows for things like"
echo " setting a network path for all machines to send files to."
echo "- EXTRASDIR defaults to ./extra and WXDISTDIR defaults to ./deliver"
exit 1
}
if [ "$1" = "" ] || [ "$1" = "--help" ]; then
usage
exit
fi
if [ "$1" = "--about" ]; then
about
exit
fi
shift 1
FINDTAG=`echo "$1" | sed /\-\-/p`
if [ FINDTAG != "" ]; then
TAG=$1
shift 1
fi
for i in "$@"; do
case "$i" in
--wxx11) SPINWXX11=1 ;;
--wxgtk) SPINWXGTK=1 ;;
--wxmac) SPINWXMAC=1 ;;
--wxbase) SPINWXBASE=1 ;;
--wxmgl) SPINWXMGL=1 ;;
--wxmotif) SPINWXMOTIF=1 ;;
--docs) SPINDOCS=1 ;;
--all) SPINEVERYTHING=1 ;;
--rebake) REBAKE=1 ;;
--silent) SILENTFLAG="--silent" ;;
--clean-build) CLEANBUILD=1 ;;
*)
usage
exit
;;
esac
done
# checkout wx sources to this tree
if [ -d ./temp-wx ]; then
rm -rf ./temp-wx
fi
mkdir $STARTDIR/temp-wx
WXDIR="$STARTDIR/temp-wx/wxWidgets"
TAGNAME=""
if [ "$TAG" != "" ]; then
echo "Checking out wxWidgets revision: $TAG"
TAGNAME="-r $TAG"
else
echo "Checking out wxWidgets HEAD sources..."
fi
echo "" # add a blank line for readability
# TODO: look into whether or not we need to keep anonymous password, and if so
# add support for something like expect to at least offer the possibility
# of automatically entering the password if such a tool is installed
# on the user's computer. For now people have to type the password manually...
echo "Grabbing source tree, please use 'anoncvs' for the password when prompted..."
cd $STARTDIR/temp-wx
cvs -d:pserver:anoncvs@cvs.wxwidgets.org:/pack/cvsroots/wxwidgets login
cvs -d :pserver:anoncvs@cvs.wxwidgets.org:/pack/cvsroots/wxwidgets checkout $TAGNAME wxWidgets
#if [ "$REBAKE" = "1" ]; then
#
#fi
# Copy extra .zips over to deliver/extra so they'll get picked up...
if [ ! -d $WXDIR/deliver ]; then
mkdir $WXDIR/deliver
fi
if [ ! -d $WXDIR/deliver/extra ]; then
mkdir $WXDIR/deliver/extra
fi
# allow the user to specify extras dir in an environment variable
EXTRA_DIR=$STARTDIR/extra
if [ "$EXTRASDIR" != "" ]; then
EXTRA_DIR="$EXTRASDIR"
fi
for filename in $EXTRA_DIR/*.zip
do
cp $filename $WXDIR/deliver/extra
done
if [ "$SPINWXMAC" = "1" ] || [ "$SPINEVERYTHING" = "1" ]; then
cd $WXDIR
sh $WXDIR/distrib/msw/tardist $WXDIR $WXDIR/deliver $VERSION --wxmac
fi
if [ "$SPINEVERYTHING" = "1" ]; then
cd $WXDIR
sh $WXDIR/distrib/msw/tardist $WXDIR $WXDIR/deliver $VERSION --wxall
fi
if [ "$SPINWXMSW" = "1" ] || [ "$SPINEVERYTHING" = "1" ]; then
cd $WXDIR
sh $WXDIR/distrib/msw/makesetup.sh --wxmsw
fi
if [ "$SPINWXBASE" = "1" ] || [ "$SPINEVERYTHING" = "1" ]; then
cd $WXDIR
sh $WXDIR/distrib/msw/maketarballs $WXDIR $WXDIR/deliver $VERSION --wxbase $SILENTFLAG
fi
if [ "$SPINWXOS2" = "1" ] || [ "$SPINEVERYTHING" = "1" ]; then
cd $WXDIR
sh $WXDIR/distrib/msw/makesetup.sh --wxos2
fi
if [ "$SPINWXGTK" = "1" ] || [ "$SPINEVERYTHING" = "1" ]; then
cd $WXDIR
sh $WXDIR/distrib/msw/maketarballs $WXDIR $WXDIR/deliver $VERSION --wxgtk $SILENTFLAG
fi
if [ "$SPINWXMOTIF" = "1" ] || [ "$SPINEVERYTHING" = "1" ]; then
cd $WXDIR
sh $WXDIR/distrib/msw/maketarballs $WXDIR $WXDIR/deliver $VERSION --wxmotif $SILENTFLAG
fi
if [ "$SPINWXMGL" = "1" ] || [ "$SPINEVERYTHING" = "1" ]; then
cd $WXDIR
sh $WXDIR/distrib/msw/maketarballs $WXDIR $WXDIR/deliver $VERSION --wxmgl $SILENTFLAG
fi
if [ "$SPINWXX11" = "1" ] || [ "$SPINEVERYTHING" = "1" ]; then
cd $WXDIR
sh $WXDIR/distrib/msw/maketarballs $WXDIR $WXDIR/deliver $VERSION --wxx11 $SILENTFLAG
fi
DISTDIR="$STARTDIR/deliver"
if [ "$WXDISTDIR" != "" ] && [ -d $WXDISTDIR ]; then
DISTDIR="$WXDISTDIR"
fi
# delete any old tarballs
if [ -d $DISTDIR ]; then
rm -rf $DISTDIR
fi
mkdir $DISTDIR
# copy over the created tarballs
cp $WXDIR/deliver/*.gz $DISTDIR
cp $WXDIR/deliver/*.bz2 $DISTDIR
cp $WXDIR/deliver/*.zip $DISTDIR