From c4295812f4d4b6e9f9392365e60fc104f2445f53 Mon Sep 17 00:00:00 2001 From: Kevin Ollivier Date: Wed, 7 Sep 2005 05:08:55 +0000 Subject: [PATCH] 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 --- distrib/tar-o-matic.sh | 220 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 220 insertions(+) create mode 100755 distrib/tar-o-matic.sh diff --git a/distrib/tar-o-matic.sh b/distrib/tar-o-matic.sh new file mode 100755 index 0000000000..bf068becef --- /dev/null +++ b/distrib/tar-o-matic.sh @@ -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 -- 2.45.2