[Phphtmllib-devel] SF.net SVN: phphtmllib:[3558] branches/BRANCH_2_X/phphtmllib/release.sh
Status: Beta
Brought to you by:
hemna
|
From: <mpw...@us...> - 2012-03-11 12:10:16
|
Revision: 3558
http://phphtmllib.svn.sourceforge.net/phphtmllib/?rev=3558&view=rev
Author: mpwalsh8
Date: 2012-03-11 12:10:10 +0000 (Sun, 11 Mar 2012)
Log Message:
-----------
Added options to prune doc and examples paths.
Added Paths:
-----------
branches/BRANCH_2_X/phphtmllib/release.sh
Added: branches/BRANCH_2_X/phphtmllib/release.sh
===================================================================
--- branches/BRANCH_2_X/phphtmllib/release.sh (rev 0)
+++ branches/BRANCH_2_X/phphtmllib/release.sh 2012-03-11 12:10:10 UTC (rev 3558)
@@ -0,0 +1,291 @@
+#!/bin/sh
+# vim: set expandtab tabstop=4 shiftwidth=4:
+#
+# I like Vim (http://www.vim.org) as a text editor. The above line
+# tells Vim to set the indent to 4 spaces and the tab key to indent
+# 4 spaces.
+#
+# release.sh
+#
+# Cygwin Shell Script to buikd the phpHtmlLib release package.
+#
+# This script has only been run and tested under Cygwin's Bash shell.
+#
+# (c) February 2012 - Mike Walsh - mi...@wa...
+#
+# Change Log:
+#
+# 02/17/2012 - Initial version.
+#
+
+## Programs used by this script that may not be part of a standard install
+SEVENZIP="C:/Program Files/7-Zip/7z.exe"
+WCREV="C:/Program Files/TortoiseSVN/bin/subWcRev.exe"
+
+## Paths and defaults
+BASENAME=`basename $0`
+GBLREVNUM=""
+TARGET="phphtmllib"
+EXPORT="C:/users/mike/desktop/export"
+CYG_EXPORT="`cygpath --unix ${EXPORT}`"
+NODOCS=""
+NOEXAMPLES=""
+NOEXPORT=""
+REPOS="C:/inetpub/wwwroot/wordpress/wp-content/plugins/${TARGET}"
+CYG_REPOS="`cygpath --unix ${REPOS}`"
+PLUGIN="phphtmllib.php"
+VERSION="Version.txt"
+VERSIONINCLUDE="version.inc"
+ZIPTYPE="-tzip"
+ZIPSUFFIX=".zip"
+FORCE=""
+
+#
+# procedure show_help()
+#
+# This procedure displays the help page.
+#
+show_help()
+{
+ cat << EOF
+
+ Usage:: $BASENAME [-e | --export Path] [-r | --repos Path] [--major N] [--minor N] [--target Name]
+
+ "$BASENAME" will assemble a release package fromt the Subversion
+ repository. Several optional command line switches can be used to
+ control the version and naming of the assembled release package.
+
+ Description of command line switches. Defaults are noted with (D).
+
+ -e Path Specify the "Path" where the Subversion
+ content should be exported to.
+ (e.g. -e I:/export)
+
+ --export Path Specify the "Path" where the Subversion
+ content should be exported to.
+ (e.g. --export I:/export)
+
+ --major Rev Specify the Major Revision Number or text.
+
+ --minor Rev Specify the Minor Revision Number or text.
+
+ -r Path Specify the "Path" where the Subversion
+ working repository can be found.
+ (e.g. -r I:/phphtmllib)
+
+ --repos Path Specify the "Path" where the Subversion
+ working repository can be found.
+ (e.g. --repos I:/phphtmllib)
+
+ -w Prune the release tree to be used as a WordPress
+ plugin. This removes the docs and examples and
+ a couple other odds and ends.
+
+ --wordpress Prune the release tree to be used as a WordPress
+ plugin. This removes the docs and examples and
+ a couple other odds and ends.
+
+ -7 Generate a 7-Zip ".7z" archive.
+
+ --7z Generate a 7-Zip ".7z" archive.
+
+ -z Generate a classic ".zip" archive.
+
+ --zip Generate a classic ".zip" archive.
+
+ --help This help text.
+
+ Examples:
+
+ % $BASENAME --export I:/export --target phphtmllib_beta
+
+ % $BASENAME --export I:/export --major 4 --minor 3-beta
+
+ % $BASENAME --export I:/export --repos I:/phphtmllib --target phphtmllib
+
+ Warning:
+
+ Make sure the export path and repository path are separate trees
+ to prevent export content on top of the working repository!
+
+EOF
+}
+
+# Parse through command line
+
+while [ $# -gt 0 ]
+do
+ case $1 in
+ -*)
+ case $1 in
+ -r)
+ shift
+ REPOS="$1"
+ CYG_REPOS="`cygpath --unix ${REPOS}`" ;;
+ --repos)
+ shift
+ REPOS="$1"
+ CYG_REPOS="`cygpath --unix ${REPOS}`" ;;
+ -e)
+ shift
+ EXPORT="$1"
+ CYG_EXPORT="`cygpath --unix ${EXPORT}`" ;;
+ --export)
+ shift
+ EXPORT="$1"
+ CYG_EXPORT="`cygpath --unix ${EXPORT}`" ;;
+ -7)
+ ZIPTYPE="-t7z"
+ ZIPSUFFIX=".7z" ;;
+ --7z)
+ ZIPTYPE="-t7z"
+ ZIPSUFFIX=".7z" ;;
+ -z)
+ ZIPTYPE="-tzip"
+ ZIPSUFFIX=".zip" ;;
+ --zip)
+ ZIPTYPE="-tzip"
+ ZIPSUFFIX=".zip" ;;
+ --force)
+ FORCE="--force" ;;
+ -w)
+ NODOCS="wordpress"
+ NOEXAMPLES="wordpress" ;;
+ --wordpress)
+ NODOCS="wordpress"
+ NOEXAMPLES="wordpress" ;;
+ --nodocs)
+ NODOCS="no docs" ;;
+ --noexamples)
+ NOEXAMPLES="no examples" ;;
+ --noexport)
+ NOEXPORT="no SVN" ;;
+ --major)
+ shift
+ MAJOR_RELEASE="$1" ;;
+ --minor)
+ shift
+ MINOR_RELEASE="$1" ;;
+ --target)
+ shift
+ TARGET="$1" ;;
+ --help)
+ show_help
+ exit 0 ;;
+ -*)
+ echo "Error: unknown option $1 (from: $BASENAME)"
+ exit 1 ;;
+ esac ;;
+ *)
+ echo "Error: unknown option $1 (from: $BASENAME)"
+ exit 1 ;;
+ esac
+ shift
+done
+
+
+## Major and Minor release numbers are extracted from the
+## Version.txt file if not specified on the command line.
+
+if [ -z "${MAJOR_RELEASE}" ]
+then
+ MAJOR_RELEASE=`grep MAJOR_RELEASE ${REPOS}/${VERSION} | cut -f2 -d'='`
+fi
+
+if [ -z "${MINOR_RELEASE}" ]
+then
+ MINOR_RELEASE=`grep MINOR_RELEASE ${REPOS}/${VERSION} | cut -f2 -d'='`
+fi
+
+## Does Repository exist?
+
+if [ ! -d "${REPOS}" ]
+then
+ echo "Error: Repository \"${REPOS}\" does not exist, aborting."
+ exit 1
+fi
+
+## Does Export Path exist?
+
+if [ ! -d "${EXPORT}" ]
+then
+ echo "Error: Export Path \"${EXPORT}\" does not exist, aborting."
+ exit 1
+fi
+
+## Does Export Target exist?
+if [ -d "${EXPORT}/${TARGET}" ]
+then
+ if [ -z "${NOEXPORT}" -a -z "${FORCE}" ]
+ then
+ echo "Error: Export Target \"${EXPORT}/${TARGET}\" already exists, aborting."
+ exit 1
+ else
+ echo "Note: Export Target \"${EXPORT}/${TARGET}\" already exists, re-using it."
+ fi
+fi
+
+## Get the global revision number from the repository
+## Wierd behavoir - the number ends up with a \r appended to it ...
+GBLREVNUM=`"$WCREV" "$REPOS" | egrep 'Last committed at revision [0-9]?' | cut -d' ' -f5 | cat -v | cut -d'^' -f1`
+echo "phpHtmlLib repository at revision: $GBLREVNUM"
+echo "Building phpHtmlLib release: Build: ${MAJOR_RELEASE}.${MINOR_RELEASE}.${GBLREVNUM}"
+
+if [ -z "${NOEXPORT}" ]
+then
+ ## Export the latest version of phpHtmlLib from the repository for building
+ echo "Exporting phpHtmlLib at revision: ${GBLREVNUM}"
+ svn export ${FORCE} --revision ${GBLREVNUM} ${CYG_REPOS} ${CYG_EXPORT}/${TARGET}
+
+ if [ $? -ne 0 ]
+ then
+ echo "Unable to export phpHtmlLib, aborting release script."
+ exit 1
+ fi
+else
+ echo "Note: Skipping SVN Export step for \"${EXPORT}/${TARGET}\", re-using existing data."
+fi
+
+echo "Updating export tree with global revision number."
+"$WCREV" "$REPOS" "${EXPORT}/${TARGET}/${PLUGIN}" "${EXPORT}/${TARGET}/${PLUGIN}"
+"$WCREV" "$REPOS" "${EXPORT}/${TARGET}/${VERSIONINCLUDE}" "${EXPORT}/${TARGET}/${VERSIONINCLUDE}"
+
+echo "Updating export tree with major revision number."
+sed -i -e "s/MAJOR_RELEASE/${MAJOR_RELEASE}/" "${EXPORT}/${TARGET}/${PLUGIN}"
+sed -i -e "s/MAJOR_RELEASE/${MAJOR_RELEASE}/" "${EXPORT}/${TARGET}/${VERSIONINCLUDE}"
+
+echo "Updating export tree with minor revision number."
+sed -i -e "s/MINOR_RELEASE/${MINOR_RELEASE}/" "${EXPORT}/${TARGET}/${PLUGIN}"
+sed -i -e "s/MINOR_RELEASE/${MINOR_RELEASE}/" "${EXPORT}/${TARGET}/${VERSIONINCLUDE}"
+
+echo "Creating Zip file."
+ZIPFILE="${EXPORT}/${TARGET}/../${TARGET}_v${MAJOR_RELEASE}.${MINOR_RELEASE}.${GBLREVNUM}${ZIPSUFFIX}"
+
+## Remove docs?
+
+if [ ! -f "${NODOCS}" ]
+then
+ rm -r "${EXPORT}/${TARGET}/doc"
+fi
+
+## Remove examples?
+
+if [ ! -f "${NOEXAMPLES}" ]
+then
+ rm -r "${EXPORT}/${TARGET}/examples"
+fi
+
+## Clean up old zip file
+
+if [ -f "${ZIPFILE}" ]
+then
+ rm "{$ZIPFILE}"
+fi
+
+## Build a new zip file
+
+"$SEVENZIP" a "${ZIPTYPE}" "${ZIPFILE}" "${EXPORT}/${TARGET}"
+
+echo "phpHtmlLib release completed."
+
+exit 0
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|