199a0c4cf9d0def45624a8edcd36297acd89d06cdmikesamuel#!/bin/bash 299a0c4cf9d0def45624a8edcd36297acd89d06cdmikesamuel 399a0c4cf9d0def45624a8edcd36297acd89d06cdmikesamuelfunction help_and_exit() { 499a0c4cf9d0def45624a8edcd36297acd89d06cdmikesamuel echo "Usage: $0 [-go] [-verbose] [-force]" 599a0c4cf9d0def45624a8edcd36297acd89d06cdmikesamuel echo 699a0c4cf9d0def45624a8edcd36297acd89d06cdmikesamuel echo "Moves minified CSS and JS to distribution directories and" 799a0c4cf9d0def45624a8edcd36297acd89d06cdmikesamuel echo "creates a branch in SVN." 899a0c4cf9d0def45624a8edcd36297acd89d06cdmikesamuel echo 999a0c4cf9d0def45624a8edcd36297acd89d06cdmikesamuel echo " -go: Run commands instead of just echoing them." 1099a0c4cf9d0def45624a8edcd36297acd89d06cdmikesamuel echo " -verbose: More verbose logging." 1199a0c4cf9d0def45624a8edcd36297acd89d06cdmikesamuel echo " -force: Ignore sanity checks for testing." 1299a0c4cf9d0def45624a8edcd36297acd89d06cdmikesamuel echo " Incompatible with -go." 1399a0c4cf9d0def45624a8edcd36297acd89d06cdmikesamuel echo " -nobranch: Don't create a new release branch." 1499a0c4cf9d0def45624a8edcd36297acd89d06cdmikesamuel exit "$1" 1599a0c4cf9d0def45624a8edcd36297acd89d06cdmikesamuel} 1699a0c4cf9d0def45624a8edcd36297acd89d06cdmikesamuel 1799a0c4cf9d0def45624a8edcd36297acd89d06cdmikesamuel# 1 for verbose logging 1899a0c4cf9d0def45624a8edcd36297acd89d06cdmikesamuelexport VERBOSE="0" 1999a0c4cf9d0def45624a8edcd36297acd89d06cdmikesamuel# 1 if commands that have side-effects should actually be run instead of logged 2099a0c4cf9d0def45624a8edcd36297acd89d06cdmikesamuelexport EFFECT="0" 2199a0c4cf9d0def45624a8edcd36297acd89d06cdmikesamuel 2299a0c4cf9d0def45624a8edcd36297acd89d06cdmikesamuelfor var in "$@"; do 2399a0c4cf9d0def45624a8edcd36297acd89d06cdmikesamuel case "$var" in 2499a0c4cf9d0def45624a8edcd36297acd89d06cdmikesamuel -verbose) 2599a0c4cf9d0def45624a8edcd36297acd89d06cdmikesamuel VERBOSE="1" 2699a0c4cf9d0def45624a8edcd36297acd89d06cdmikesamuel ;; 2799a0c4cf9d0def45624a8edcd36297acd89d06cdmikesamuel -go) 2899a0c4cf9d0def45624a8edcd36297acd89d06cdmikesamuel EFFECT="1" 2999a0c4cf9d0def45624a8edcd36297acd89d06cdmikesamuel ;; 3099a0c4cf9d0def45624a8edcd36297acd89d06cdmikesamuel -h) 3199a0c4cf9d0def45624a8edcd36297acd89d06cdmikesamuel help_and_exit 0 3299a0c4cf9d0def45624a8edcd36297acd89d06cdmikesamuel ;; 3399a0c4cf9d0def45624a8edcd36297acd89d06cdmikesamuel *) 3499a0c4cf9d0def45624a8edcd36297acd89d06cdmikesamuel echo "Unrecognized argument $var" 3599a0c4cf9d0def45624a8edcd36297acd89d06cdmikesamuel help_and_exit -1 3699a0c4cf9d0def45624a8edcd36297acd89d06cdmikesamuel ;; 3799a0c4cf9d0def45624a8edcd36297acd89d06cdmikesamuel esac 3899a0c4cf9d0def45624a8edcd36297acd89d06cdmikesamueldone 3999a0c4cf9d0def45624a8edcd36297acd89d06cdmikesamuel 4099a0c4cf9d0def45624a8edcd36297acd89d06cdmikesamuel 4199a0c4cf9d0def45624a8edcd36297acd89d06cdmikesamuelfunction panic() { 4299a0c4cf9d0def45624a8edcd36297acd89d06cdmikesamuel echo "PANIC: $*" 4399a0c4cf9d0def45624a8edcd36297acd89d06cdmikesamuel 4499a0c4cf9d0def45624a8edcd36297acd89d06cdmikesamuel if ! (( $NO_PANIC )); then 4599a0c4cf9d0def45624a8edcd36297acd89d06cdmikesamuel exit -1 4699a0c4cf9d0def45624a8edcd36297acd89d06cdmikesamuel fi 4799a0c4cf9d0def45624a8edcd36297acd89d06cdmikesamuel} 4899a0c4cf9d0def45624a8edcd36297acd89d06cdmikesamuel 4999a0c4cf9d0def45624a8edcd36297acd89d06cdmikesamuelfunction command() { 5099a0c4cf9d0def45624a8edcd36297acd89d06cdmikesamuel if (( $VERBOSE )) || ! (( $EFFECT )); then 5199a0c4cf9d0def45624a8edcd36297acd89d06cdmikesamuel echo '$' "$*" 5299a0c4cf9d0def45624a8edcd36297acd89d06cdmikesamuel fi 5399a0c4cf9d0def45624a8edcd36297acd89d06cdmikesamuel if (( $EFFECT )); then 5499a0c4cf9d0def45624a8edcd36297acd89d06cdmikesamuel "$@" || panic "command failed: $@" 5599a0c4cf9d0def45624a8edcd36297acd89d06cdmikesamuel fi 5699a0c4cf9d0def45624a8edcd36297acd89d06cdmikesamuel} 5799a0c4cf9d0def45624a8edcd36297acd89d06cdmikesamuel 5899a0c4cf9d0def45624a8edcd36297acd89d06cdmikesamuelexport VERSION_BASE="$( 5999a0c4cf9d0def45624a8edcd36297acd89d06cdmikesamuel pushd "$(dirname "$0")/../.." > /dev/null; pwd; popd > /dev/null)" 6099a0c4cf9d0def45624a8edcd36297acd89d06cdmikesamuel 6199a0c4cf9d0def45624a8edcd36297acd89d06cdmikesamuelif ! [ -d "$VERSION_BASE/trunk/tools" ]; then 6299a0c4cf9d0def45624a8edcd36297acd89d06cdmikesamuel panic "missing trunk/tools in $VERSION_BASE" 6399a0c4cf9d0def45624a8edcd36297acd89d06cdmikesamuelfi 6499a0c4cf9d0def45624a8edcd36297acd89d06cdmikesamuel 6599a0c4cf9d0def45624a8edcd36297acd89d06cdmikesamuelVERSION="$(svn info | perl -ne 'print $1 if m/^Revision: (\d+)$/')" 6699a0c4cf9d0def45624a8edcd36297acd89d06cdmikesamuel 6799a0c4cf9d0def45624a8edcd36297acd89d06cdmikesamuelDOWNLOADS_ZIP="$VERSION_BASE/trunk/out/owasp-java-html-sanitizer.zip" 6899a0c4cf9d0def45624a8edcd36297acd89d06cdmikesamuelVERSIONED_ZIP="$VERSION_BASE/trunk/out/owasp-java-html-sanitizer-r$VERSION.zip" 6999a0c4cf9d0def45624a8edcd36297acd89d06cdmikesamuel 7099a0c4cf9d0def45624a8edcd36297acd89d06cdmikesamuelpushd "$VERSION_BASE/trunk" > /dev/null 7199a0c4cf9d0def45624a8edcd36297acd89d06cdmikesamuelcommand make download 7299a0c4cf9d0def45624a8edcd36297acd89d06cdmikesamuelpopd > /dev/null 7399a0c4cf9d0def45624a8edcd36297acd89d06cdmikesamuel 7499a0c4cf9d0def45624a8edcd36297acd89d06cdmikesamuelif ! [ -f "$DOWNLOADS_ZIP" ]; then 7599a0c4cf9d0def45624a8edcd36297acd89d06cdmikesamuel panic "$DOWNLOADS_ZIP is not up-to-date" 7699a0c4cf9d0def45624a8edcd36297acd89d06cdmikesamuelfi 7799a0c4cf9d0def45624a8edcd36297acd89d06cdmikesamuel 7899a0c4cf9d0def45624a8edcd36297acd89d06cdmikesamuelcommand cp "$DOWNLOADS_ZIP" "$VERSIONED_ZIP" 7999a0c4cf9d0def45624a8edcd36297acd89d06cdmikesamuel 8099a0c4cf9d0def45624a8edcd36297acd89d06cdmikesamuelcommand "$VERSION_BASE/trunk/tools/googlecode_upload.py" \ 8199a0c4cf9d0def45624a8edcd36297acd89d06cdmikesamuel --summary="JARs, source JAR, and documentation for version $VERSION." \ 8299a0c4cf9d0def45624a8edcd36297acd89d06cdmikesamuel -p owasp-java-html-sanitizer -u mikesamuel \ 8399a0c4cf9d0def45624a8edcd36297acd89d06cdmikesamuel --labels='Type-Archive,OpSys-All,Featured' \ 8499a0c4cf9d0def45624a8edcd36297acd89d06cdmikesamuel "$VERSIONED_ZIP" 8599a0c4cf9d0def45624a8edcd36297acd89d06cdmikesamuel 8699a0c4cf9d0def45624a8edcd36297acd89d06cdmikesamuelif (( $EFFECT )); then 8799a0c4cf9d0def45624a8edcd36297acd89d06cdmikesamuel echo "Don't forget to mark any old ones deprecated at" 8899a0c4cf9d0def45624a8edcd36297acd89d06cdmikesamuel echo "https://code.google.com/p/owasp-java-html-sanitizer/downloads/list" 8999a0c4cf9d0def45624a8edcd36297acd89d06cdmikesamuelelse 9099a0c4cf9d0def45624a8edcd36297acd89d06cdmikesamuel echo 9199a0c4cf9d0def45624a8edcd36297acd89d06cdmikesamuel echo "Rerun with -go to actually run these commands." 9299a0c4cf9d0def45624a8edcd36297acd89d06cdmikesamuelfi 93