]> git.saurik.com Git - wxWidgets.git/commitdiff
Wrapper script for pulling a CVS revision and making tarballs from it. This is afirst...
authorKevin Ollivier <kevino@theolliviers.com>
Wed, 7 Sep 2005 05:08:55 +0000 (05:08 +0000)
committerKevin Ollivier <kevino@theolliviers.com>
Wed, 7 Sep 2005 05:08:55 +0000 (05:08 +0000)
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 [new file with mode: 0755]

diff --git a/distrib/tar-o-matic.sh b/distrib/tar-o-matic.sh
new file mode 100755 (executable)
index 0000000..bf068be
--- /dev/null
@@ -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