3114ead9a60b65191e92dea6c76c038c03a8f1dcbryce#!/bin/bash
3114ead9a60b65191e92dea6c76c038c03a8f1dcbryce
3114ead9a60b65191e92dea6c76c038c03a8f1dcbryceSIGNER="bryce@bryceharrington.org"
3114ead9a60b65191e92dea6c76c038c03a8f1dcbryceVERSION="0.92"
3114ead9a60b65191e92dea6c76c038c03a8f1dcbrycePKG_NAME="inkscape"
72ba327677b00dc4013e4ca19dd5ac4b87da63cebryceLIST_TO="inkscape-announce@lists.sf.net"
72ba327677b00dc4013e4ca19dd5ac4b87da63cebryceLIST_CC="inkscape-devel@lists.sf.net"
7923e87a291880ac8293fb5d1a1e1b759b23a091bryceVCS_SYSTEM="bzr"
3114ead9a60b65191e92dea6c76c038c03a8f1dcbryce
3114ead9a60b65191e92dea6c76c038c03a8f1dcbryce# Locate Dependencies
3114ead9a60b65191e92dea6c76c038c03a8f1dcbryce#------------------------------------------------------------------------------
3114ead9a60b65191e92dea6c76c038c03a8f1dcbryce
3114ead9a60b65191e92dea6c76c038c03a8f1dcbryceMD5SUM=`which md5sum || which gmd5sum`
3114ead9a60b65191e92dea6c76c038c03a8f1dcbryceSHA1SUM=`which sha1sum || which gsha1sum`
3114ead9a60b65191e92dea6c76c038c03a8f1dcbryceSHA256SUM=`which sha256sum || which gsha256sum`
3114ead9a60b65191e92dea6c76c038c03a8f1dcbryce
3114ead9a60b65191e92dea6c76c038c03a8f1dcbryce# Choose which make program to use (could be gmake)
3114ead9a60b65191e92dea6c76c038c03a8f1dcbryceMAKE=${MAKE:="make"}
3114ead9a60b65191e92dea6c76c038c03a8f1dcbryce
3114ead9a60b65191e92dea6c76c038c03a8f1dcbryce# Set the default make tarball creation command
3114ead9a60b65191e92dea6c76c038c03a8f1dcbryceMAKE_DIST_CMD=distcheck
3114ead9a60b65191e92dea6c76c038c03a8f1dcbryce
3114ead9a60b65191e92dea6c76c038c03a8f1dcbryce# Choose which grep program to use (on Solaris, must be gnu grep)
3114ead9a60b65191e92dea6c76c038c03a8f1dcbryceif [ "x$GREP" = "x" ] ; then
3114ead9a60b65191e92dea6c76c038c03a8f1dcbryce if [ -x /usr/gnu/bin/grep ] ; then
3114ead9a60b65191e92dea6c76c038c03a8f1dcbryce GREP=/usr/gnu/bin/grep
3114ead9a60b65191e92dea6c76c038c03a8f1dcbryce else
3114ead9a60b65191e92dea6c76c038c03a8f1dcbryce GREP=grep
3114ead9a60b65191e92dea6c76c038c03a8f1dcbryce fi
3114ead9a60b65191e92dea6c76c038c03a8f1dcbrycefi
3114ead9a60b65191e92dea6c76c038c03a8f1dcbryce
3114ead9a60b65191e92dea6c76c038c03a8f1dcbryce# Find path for GnuPG v2
3114ead9a60b65191e92dea6c76c038c03a8f1dcbryceif [ "x$GPG" = "x" ] ; then
3114ead9a60b65191e92dea6c76c038c03a8f1dcbryce if [ -x /usr/bin/gpg2 ] ; then
3114ead9a60b65191e92dea6c76c038c03a8f1dcbryce GPG=/usr/bin/gpg2
3114ead9a60b65191e92dea6c76c038c03a8f1dcbryce else
3114ead9a60b65191e92dea6c76c038c03a8f1dcbryce GPG=gpg
3114ead9a60b65191e92dea6c76c038c03a8f1dcbryce fi
3114ead9a60b65191e92dea6c76c038c03a8f1dcbrycefi
3114ead9a60b65191e92dea6c76c038c03a8f1dcbryce
cac133768c18c89d4fccd4fc65d1a95232b51406bryce#------------------------------------------------------------------------------
cac133768c18c89d4fccd4fc65d1a95232b51406bryce
7923e87a291880ac8293fb5d1a1e1b759b23a091bryceusage() {
7923e87a291880ac8293fb5d1a1e1b759b23a091bryce basename="`expr "//$0" : '.*/\([^/]*\)'`"
7923e87a291880ac8293fb5d1a1e1b759b23a091bryce cat <<HELP
7923e87a291880ac8293fb5d1a1e1b759b23a091bryce
7923e87a291880ac8293fb5d1a1e1b759b23a091bryceUsage: $basename [options] path...
7923e87a291880ac8293fb5d1a1e1b759b23a091bryce
7923e87a291880ac8293fb5d1a1e1b759b23a091bryceWhere "path" is a relative path to a ${VCS_SYSTEM} module, including '.'.
7923e87a291880ac8293fb5d1a1e1b759b23a091bryce
7923e87a291880ac8293fb5d1a1e1b759b23a091bryceOptions:
7923e87a291880ac8293fb5d1a1e1b759b23a091bryce (none)
7923e87a291880ac8293fb5d1a1e1b759b23a091bryce
7923e87a291880ac8293fb5d1a1e1b759b23a091bryceEnvironment variables:
7923e87a291880ac8293fb5d1a1e1b759b23a091bryce MAKE: The name of the make command [make]
7923e87a291880ac8293fb5d1a1e1b759b23a091bryce MAKEFLAGS: Options to pass to all \$(MAKE) invocations []
7923e87a291880ac8293fb5d1a1e1b759b23a091bryce
7923e87a291880ac8293fb5d1a1e1b759b23a091bryceHELP
7923e87a291880ac8293fb5d1a1e1b759b23a091bryce}
7923e87a291880ac8293fb5d1a1e1b759b23a091bryce
7923e87a291880ac8293fb5d1a1e1b759b23a091bryce#------------------------------------------------------------------------------
7923e87a291880ac8293fb5d1a1e1b759b23a091bryce
cac133768c18c89d4fccd4fc65d1a95232b51406brycecheck_local_changes() {
92444d7cf332a6606cfd67b14c209fcb5e0ed363bryce lines=$(bzr diff | wc -l)
92444d7cf332a6606cfd67b14c209fcb5e0ed363bryce if [ $lines -gt 0 ]; then
92444d7cf332a6606cfd67b14c209fcb5e0ed363bryce echo ""
92444d7cf332a6606cfd67b14c209fcb5e0ed363bryce echo "Uncommitted changes found. Did you forget to commit? Aborting."
92444d7cf332a6606cfd67b14c209fcb5e0ed363bryce echo ""
92444d7cf332a6606cfd67b14c209fcb5e0ed363bryce echo "You can clone the module in another directory"
92444d7cf332a6606cfd67b14c209fcb5e0ed363bryce echo "and run ./configure. No need to build if testing was finished."
92444d7cf332a6606cfd67b14c209fcb5e0ed363bryce echo ""
92444d7cf332a6606cfd67b14c209fcb5e0ed363bryce return 1
92444d7cf332a6606cfd67b14c209fcb5e0ed363bryce fi
92444d7cf332a6606cfd67b14c209fcb5e0ed363bryce
92444d7cf332a6606cfd67b14c209fcb5e0ed363bryce return 0
cac133768c18c89d4fccd4fc65d1a95232b51406bryce}
cac133768c18c89d4fccd4fc65d1a95232b51406bryce
cac133768c18c89d4fccd4fc65d1a95232b51406bryce#------------------------------------------------------------------------------
cac133768c18c89d4fccd4fc65d1a95232b51406bryce# Function: make_dist
cac133768c18c89d4fccd4fc65d1a95232b51406bryce#
cac133768c18c89d4fccd4fc65d1a95232b51406bryce# Create the package distribution
cac133768c18c89d4fccd4fc65d1a95232b51406bryce# Return 0 on success, 1 on fail
cac133768c18c89d4fccd4fc65d1a95232b51406brycemake_dist() {
7923e87a291880ac8293fb5d1a1e1b759b23a091bryce if [ $VCS_SYSTEM = "bzr" ] && [ ! -d .bzr ]; then
cac133768c18c89d4fccd4fc65d1a95232b51406bryce echo "Error: There is no bzr repository here: $(pwd)"
cac133768c18c89d4fccd4fc65d1a95232b51406bryce return 1
7923e87a291880ac8293fb5d1a1e1b759b23a091bryce else
7923e87a291880ac8293fb5d1a1e1b759b23a091bryce echo "Error: Unrecognized version control '$VCS_SYSTEM'."
7923e87a291880ac8293fb5d1a1e1b759b23a091bryce return 1
cac133768c18c89d4fccd4fc65d1a95232b51406bryce fi
cac133768c18c89d4fccd4fc65d1a95232b51406bryce
cac133768c18c89d4fccd4fc65d1a95232b51406bryce # Change to an out-of-source build directory
cac133768c18c89d4fccd4fc65d1a95232b51406bryce config_indicator=CMakeCache.txt
cac133768c18c89d4fccd4fc65d1a95232b51406bryce status_file=$(find . -name ${config_indicator} -type f)
cac133768c18c89d4fccd4fc65d1a95232b51406bryce if [ $? -ne 0 ]; then
cac133768c18c89d4fccd4fc65d1a95232b51406bryce echo "Error: Failed to locate ${config_indicator}."
cac133768c18c89d4fccd4fc65d1a95232b51406bryce echo "Has the module been configured?"
cac133768c18c89d4fccd4fc65d1a95232b51406bryce return 1
cac133768c18c89d4fccd4fc65d1a95232b51406bryce fi
cac133768c18c89d4fccd4fc65d1a95232b51406bryce configNum=$(echo "$status_file" | wc -l | sed 's:^ *::')
cac133768c18c89d4fccd4fc65d1a95232b51406bryce if [ x"$configNum" = x0 ]; then
cac133768c18c89d4fccd4fc65d1a95232b51406bryce echo "Error: Failed to locate ${config_indicator}, has the module been configured?"
cac133768c18c89d4fccd4fc65d1a95232b51406bryce return 1
cac133768c18c89d4fccd4fc65d1a95232b51406bryce elif [ x"$configNum" != x1 ]; then
cac133768c18c89d4fccd4fc65d1a95232b51406bryce echo "Error: More than one ${config_indicator} file was found."
cac133768c18c89d4fccd4fc65d1a95232b51406bryce echo "Please cleanup previously failed attempts at distcheck."
cac133768c18c89d4fccd4fc65d1a95232b51406bryce fi
cac133768c18c89d4fccd4fc65d1a95232b51406bryce
cac133768c18c89d4fccd4fc65d1a95232b51406bryce build_dir=$(dirname ${status_file})
cac133768c18c89d4fccd4fc65d1a95232b51406bryce cd ${build_dir}
cac133768c18c89d4fccd4fc65d1a95232b51406bryce if [ $? -ne 0 ]; then
cac133768c18c89d4fccd4fc65d1a95232b51406bryce echo "Error: Failed to cd to build directory ${build_dir}."
cac133768c18c89d4fccd4fc65d1a95232b51406bryce return 1
cac133768c18c89d4fccd4fc65d1a95232b51406bryce fi
cac133768c18c89d4fccd4fc65d1a95232b51406bryce
cac133768c18c89d4fccd4fc65d1a95232b51406bryce check_local_changes
cac133768c18c89d4fccd4fc65d1a95232b51406bryce if [ $? -ne 0 ]; then
cac133768c18c89d4fccd4fc65d1a95232b51406bryce cd ${top_src}
cac133768c18c89d4fccd4fc65d1a95232b51406bryce return 1
cac133768c18c89d4fccd4fc65d1a95232b51406bryce fi
cac133768c18c89d4fccd4fc65d1a95232b51406bryce
cac133768c18c89d4fccd4fc65d1a95232b51406bryce echo "Info: running 'make $MAKE_DIST_CMD' to create tarballs:"
7923e87a291880ac8293fb5d1a1e1b759b23a091bryce ${MAKE} ${MAKEFLAGS} ${MAKE_DIST_CMD} > /dev/null
cac133768c18c89d4fccd4fc65d1a95232b51406bryce if [ $? -ne 0 ]; then
cac133768c18c89d4fccd4fc65d1a95232b51406bryce echo "Error: '${MAKE} ${MAKEFLAGS} ${MAKE_DIST_CMD}' failed."
cac133768c18c89d4fccd4fc65d1a95232b51406bryce cd $top_src
cac133768c18c89d4fccd4fc65d1a95232b51406bryce return 1
cac133768c18c89d4fccd4fc65d1a95232b51406bryce fi
cac133768c18c89d4fccd4fc65d1a95232b51406bryce
cac133768c18c89d4fccd4fc65d1a95232b51406bryce return 0
cac133768c18c89d4fccd4fc65d1a95232b51406bryce}
cac133768c18c89d4fccd4fc65d1a95232b51406bryce
3114ead9a60b65191e92dea6c76c038c03a8f1dcbryce# Function: sign_or_fail
3114ead9a60b65191e92dea6c76c038c03a8f1dcbryce#------------------------------------------------------------------------------
3114ead9a60b65191e92dea6c76c038c03a8f1dcbryce#
3114ead9a60b65191e92dea6c76c038c03a8f1dcbryce# Sign the given file, if any
3114ead9a60b65191e92dea6c76c038c03a8f1dcbryce# Output the name of the signature generated to stdout (all other output to
3114ead9a60b65191e92dea6c76c038c03a8f1dcbryce# stderr)
3114ead9a60b65191e92dea6c76c038c03a8f1dcbryce# Return 0 on success, 1 on fail
3114ead9a60b65191e92dea6c76c038c03a8f1dcbryce#
3114ead9a60b65191e92dea6c76c038c03a8f1dcbrycesign_or_fail() {
3114ead9a60b65191e92dea6c76c038c03a8f1dcbryce if [ -n "$1" ]; then
3114ead9a60b65191e92dea6c76c038c03a8f1dcbryce sig=$1.sig
3114ead9a60b65191e92dea6c76c038c03a8f1dcbryce rm -f $sig
3114ead9a60b65191e92dea6c76c038c03a8f1dcbryce
3114ead9a60b65191e92dea6c76c038c03a8f1dcbryce [ -n ${SIGNER} ] && signer="-u $SIGNER"
3114ead9a60b65191e92dea6c76c038c03a8f1dcbryce
3114ead9a60b65191e92dea6c76c038c03a8f1dcbryce echo "$GPG $signer --detach-sign $1" 1>&2
3114ead9a60b65191e92dea6c76c038c03a8f1dcbryce $GPG $signer --detach-sign $1 1>&2
3114ead9a60b65191e92dea6c76c038c03a8f1dcbryce if [ $? -ne 0 ]; then
3114ead9a60b65191e92dea6c76c038c03a8f1dcbryce echo "Error: failed to sign $1." >&2
3114ead9a60b65191e92dea6c76c038c03a8f1dcbryce return 1
3114ead9a60b65191e92dea6c76c038c03a8f1dcbryce fi
3114ead9a60b65191e92dea6c76c038c03a8f1dcbryce echo $sig
3114ead9a60b65191e92dea6c76c038c03a8f1dcbryce fi
3114ead9a60b65191e92dea6c76c038c03a8f1dcbryce return 0
3114ead9a60b65191e92dea6c76c038c03a8f1dcbryce}
3114ead9a60b65191e92dea6c76c038c03a8f1dcbryce
3114ead9a60b65191e92dea6c76c038c03a8f1dcbryce
3114ead9a60b65191e92dea6c76c038c03a8f1dcbrycesign_packages() {
2e41c7a6f80c3c53b535b90df364f1c153dffe4fbryce tar_name="$1"
2e41c7a6f80c3c53b535b90df364f1c153dffe4fbryce targz="${tar_name}.tar.gz"
2e41c7a6f80c3c53b535b90df364f1c153dffe4fbryce tarbz2="${tar_name}.tar.bz2"
2e41c7a6f80c3c53b535b90df364f1c153dffe4fbryce tarxz="${tar_name}.tar.xz"
2e41c7a6f80c3c53b535b90df364f1c153dffe4fbryce zip="${tar_name}.zip"
72ba327677b00dc4013e4ca19dd5ac4b87da63cebryce
72ba327677b00dc4013e4ca19dd5ac4b87da63cebryce for tarball in $targz $tarxz $tarbz2 $zip; do
72ba327677b00dc4013e4ca19dd5ac4b87da63cebryce if [ -e "${tarball}" ]; then
72ba327677b00dc4013e4ca19dd5ac4b87da63cebryce sig="$(sign_or_fail ${tarball})"
72ba327677b00dc4013e4ca19dd5ac4b87da63cebryce gpgsignerr=$((${gpgsignerr} + $?))
72ba327677b00dc4013e4ca19dd5ac4b87da63cebryce sig_url="http://inkscape.org/.../$sig"
2e41c7a6f80c3c53b535b90df364f1c153dffe4fbryce cat <<EOF
72ba327677b00dc4013e4ca19dd5ac4b87da63cebrycehttps://inkscape.org/en/download/source/
72ba327677b00dc4013e4ca19dd5ac4b87da63cebryceMD5: `$MD5SUM $tarball`
72ba327677b00dc4013e4ca19dd5ac4b87da63cebryceSHA1: `$SHA1SUM $tarball`
72ba327677b00dc4013e4ca19dd5ac4b87da63cebryceSHA256: `$SHA256SUM $tarball`
72ba327677b00dc4013e4ca19dd5ac4b87da63cebryce$sig_url
72ba327677b00dc4013e4ca19dd5ac4b87da63cebryce
2e41c7a6f80c3c53b535b90df364f1c153dffe4fbryceEOF
72ba327677b00dc4013e4ca19dd5ac4b87da63cebryce fi
72ba327677b00dc4013e4ca19dd5ac4b87da63cebryce done
3114ead9a60b65191e92dea6c76c038c03a8f1dcbryce
3114ead9a60b65191e92dea6c76c038c03a8f1dcbryce if [ ${gpgsignerr} -ne 0 ]; then
3114ead9a60b65191e92dea6c76c038c03a8f1dcbryce echo "Error: unable to sign at least one of the tarballs."
3114ead9a60b65191e92dea6c76c038c03a8f1dcbryce return 1
72ba327677b00dc4013e4ca19dd5ac4b87da63cebryce elif [ -z "$siggz" ]; then
72ba327677b00dc4013e4ca19dd5ac4b87da63cebryce # The tar.gz is always required
72ba327677b00dc4013e4ca19dd5ac4b87da63cebryce echo "Error: Unable to sign the tar.gz file."
72ba327677b00dc4013e4ca19dd5ac4b87da63cebryce return 2
3114ead9a60b65191e92dea6c76c038c03a8f1dcbryce fi
3114ead9a60b65191e92dea6c76c038c03a8f1dcbryce
3114ead9a60b65191e92dea6c76c038c03a8f1dcbryce return 0;
3114ead9a60b65191e92dea6c76c038c03a8f1dcbryce}
3114ead9a60b65191e92dea6c76c038c03a8f1dcbryce
3114ead9a60b65191e92dea6c76c038c03a8f1dcbrycegenerate_announce() {
72ba327677b00dc4013e4ca19dd5ac4b87da63cebryce cat <<RELEASE
72ba327677b00dc4013e4ca19dd5ac4b87da63cebryceSubject: [ANNOUNCE] $PKG_NAME $VERSION
72ba327677b00dc4013e4ca19dd5ac4b87da63cebryceTo: $LIST_TO
72ba327677b00dc4013e4ca19dd5ac4b87da63cebryceCc: $LIST_CC
72ba327677b00dc4013e4ca19dd5ac4b87da63cebryce
72ba327677b00dc4013e4ca19dd5ac4b87da63cebryceThe Inkscape community proudly announces the release of Inkscape $VERSION.
72ba327677b00dc4013e4ca19dd5ac4b87da63cebryce
72ba327677b00dc4013e4ca19dd5ac4b87da63cebryce https://inkscape.org/en/download/
72ba327677b00dc4013e4ca19dd5ac4b87da63cebryce
72ba327677b00dc4013e4ca19dd5ac4b87da63cebryceInkscape is a drawing and painting tool similar to Illustrator,
72ba327677b00dc4013e4ca19dd5ac4b87da63cebryceCorelDraw, and Xara X, but with features, new tools, and interface style
72ba327677b00dc4013e4ca19dd5ac4b87da63cebryceof its own. It emphasizes the W3C standard Scalable Vector Graphics
72ba327677b00dc4013e4ca19dd5ac4b87da63cebryce(SVG) file format, but reads and writes a wealth of other formats
72ba327677b00dc4013e4ca19dd5ac4b87da63cebryceincluding PDF, so it is an easy complement to your other graphics and
72ba327677b00dc4013e4ca19dd5ac4b87da63cebrycedesktop tools. Best of all, Inkscape is created *by* the community *for*
72ba327677b00dc4013e4ca19dd5ac4b87da63cebrycethe community: Inkscape is 100% Open Source and freely available to
72ba327677b00dc4013e4ca19dd5ac4b87da63cebryceeveryone in the world.
72ba327677b00dc4013e4ca19dd5ac4b87da63cebryce
72ba327677b00dc4013e4ca19dd5ac4b87da63cebryce<INSERT DETAILS ABOUT THE RELEASE HERE>
72ba327677b00dc4013e4ca19dd5ac4b87da63cebryce
72ba327677b00dc4013e4ca19dd5ac4b87da63cebryceThe above barely scratches the surface of what's included in this
72ba327677b00dc4013e4ca19dd5ac4b87da63cebrycerelease. For the full scoop, please see our detailed Release Notes:
72ba327677b00dc4013e4ca19dd5ac4b87da63cebryce
72ba327677b00dc4013e4ca19dd5ac4b87da63cebryce http://wiki.inkscape.org/wiki/index.php/Release_notes/$VERSION
72ba327677b00dc4013e4ca19dd5ac4b87da63cebryce
72ba327677b00dc4013e4ca19dd5ac4b87da63cebryceRELEASE
3114ead9a60b65191e92dea6c76c038c03a8f1dcbryce}
3114ead9a60b65191e92dea6c76c038c03a8f1dcbryce
3114ead9a60b65191e92dea6c76c038c03a8f1dcbryceprocess() {
cac133768c18c89d4fccd4fc65d1a95232b51406bryce top_src=$(pwd)
cac133768c18c89d4fccd4fc65d1a95232b51406bryce
2e41c7a6f80c3c53b535b90df364f1c153dffe4fbryce tar_name=$(make_dist)
2e41c7a6f80c3c53b535b90df364f1c153dffe4fbryce generate_announce > "${tar_name}.announce"
2e41c7a6f80c3c53b535b90df364f1c153dffe4fbryce
2e41c7a6f80c3c53b535b90df364f1c153dffe4fbryce # TODO: Once converted to git, enable display of shortlog
2e41c7a6f80c3c53b535b90df364f1c153dffe4fbryce #tag_previous=`git describe --abbrev=0 HEAD^ 2>/dev/null`
2e41c7a6f80c3c53b535b90df364f1c153dffe4fbryce #tag_range="FIXME..FIXME"
2e41c7a6f80c3c53b535b90df364f1c153dffe4fbryce #`git log --no-merges "$tag_range" | git shortlog`
2e41c7a6f80c3c53b535b90df364f1c153dffe4fbryce echo "${VCS_SYSTEM} tag: $tar_name" >> ${tar_name}.announce
2e41c7a6f80c3c53b535b90df364f1c153dffe4fbryce
2e41c7a6f80c3c53b535b90df364f1c153dffe4fbryce sign_packages ${tar_name} >> "${tar_name}.announce"
2e41c7a6f80c3c53b535b90df364f1c153dffe4fbryce if [ $? -ne 0 ]; then
2e41c7a6f80c3c53b535b90df364f1c153dffe4fbryce rm "${tar_name}.announce"
2e41c7a6f80c3c53b535b90df364f1c153dffe4fbryce echo "Error: Failed signatures"
2e41c7a6f80c3c53b535b90df364f1c153dffe4fbryce return 1
2e41c7a6f80c3c53b535b90df364f1c153dffe4fbryce fi
2e41c7a6f80c3c53b535b90df364f1c153dffe4fbryce
2e41c7a6f80c3c53b535b90df364f1c153dffe4fbryce # TODO: Verify the top commit SHA has a version bump
2e41c7a6f80c3c53b535b90df364f1c153dffe4fbryce # local_top_commit_sha=`git rev-list --max-count=1 HEAD`
2e41c7a6f80c3c53b535b90df364f1c153dffe4fbryce # git diff --unified=0 HEAD^ | $GREP -F $pkg_version >/dev/null 2>&1
2e41c7a6f80c3c53b535b90df364f1c153dffe4fbryce # TODO: Check that the top commit is pushed to remote
2e41c7a6f80c3c53b535b90df364f1c153dffe4fbryce # git rev-list --max-count=1 $remote_name/$remote_branch
2e41c7a6f80c3c53b535b90df364f1c153dffe4fbryce
2e41c7a6f80c3c53b535b90df364f1c153dffe4fbryce echo "TODO: Tag the top commit as $tar_name"
2e41c7a6f80c3c53b535b90df364f1c153dffe4fbryce echo "TODO: Upload the tarballs to the remote"
2e41c7a6f80c3c53b535b90df364f1c153dffe4fbryce echo "TODO: Push all local changes and tags to remote"
2e41c7a6f80c3c53b535b90df364f1c153dffe4fbryce
3114ead9a60b65191e92dea6c76c038c03a8f1dcbryce echo "Info: [ANNOUNCE] template generated in \"$tar_name.announce\" file."
3114ead9a60b65191e92dea6c76c038c03a8f1dcbryce echo " Please pgp sign and send it."
3114ead9a60b65191e92dea6c76c038c03a8f1dcbryce
3114ead9a60b65191e92dea6c76c038c03a8f1dcbryce return 0
3114ead9a60b65191e92dea6c76c038c03a8f1dcbryce}
3114ead9a60b65191e92dea6c76c038c03a8f1dcbryce
3114ead9a60b65191e92dea6c76c038c03a8f1dcbryceprocess