# HG changeset patch # User Paul Boddie # Date 1460222969 -7200 # Node ID 7fb0056ff66de532d625ef0ac84a8a6643c30341 # Parent b32d7b080ed75aefe4e776a8f5ed4d2a8cfed2a9 Added tools to prepare and sign releases, including them in the page package and referencing them from the downloads page. diff -r b32d7b080ed7 -r 7fb0056ff66d docs/tools/make_pages.sh --- a/docs/tools/make_pages.sh Fri Apr 08 21:24:17 2016 +0200 +++ b/docs/tools/make_pages.sh Sat Apr 09 19:29:29 2016 +0200 @@ -3,11 +3,10 @@ DIRNAME=`dirname $0` PROGNAME=`basename $0` OUTDIR=$1 -PREFIX=$2 if [ ! "$OUTDIR" ]; then cat 1>&2 < [ ] +Usage: $PROGNAME [ ] [ --releases [ --sign ] ] EOF exit 1 fi @@ -17,6 +16,29 @@ exit 1 fi +if [ "$2" = '--releases' ]; then + PREFIX= + RELEASES=$2 + SIGN=$3 +else + PREFIX=$2 + RELEASES=$3 + SIGN=$4 +fi + +# Generate release archives. These are held in a separate, semi-permanent +# place so that archives and signatures are not regenerated unnecessarily. + +if [ "$RELEASES" ]; then + "$DIRNAME/make_releases.sh" releases +fi + +if [ "$SIGN" ]; then + "$DIRNAME/sign_releases.sh" releases +fi + +# Generate a manifest for the page package. + MANIFEST="$OUTDIR/MOIN_PACKAGE" mkdir "$OUTDIR" @@ -24,8 +46,12 @@ MoinMoinPackage|1 EOF +# Add the pages to the manifest. + DOCS="$DIRNAME/../wiki" +cp "$DOCS/"* "$OUTDIR" + for FILENAME in "$DOCS/"* ; do BASENAME=`basename "$FILENAME"` PAGENAME=`echo "$BASENAME" | sed 's/--/\//g'` @@ -39,5 +65,24 @@ echo "AddRevision|$BASENAME|$PAGENAME" >> "$MANIFEST" done -cp "$DOCS/"* "$OUTDIR" +# Combine the releases with the pages. + +ATTACHMENT="attachment_" + +for FILENAME in releases/* ; do + BASENAME=`basename "$FILENAME"` + cp "$FILENAME" "$OUTDIR/$ATTACHMENT$BASENAME" +done + +# Add the releases to the manifest. + +for FILENAME in releases/* ; do + BASENAME=`basename "$FILENAME"` + PAGENAME="Downloads" + if [ "$PREFIX" ]; then + PAGENAME="$PREFIX/$PAGENAME" + fi + echo "AddAttachment|$ATTACHMENT$BASENAME|$BASENAME|$PAGENAME" >> "$MANIFEST" +done + zip -j "$OUTDIR" "$OUTDIR/"* diff -r b32d7b080ed7 -r 7fb0056ff66d docs/tools/make_releases.sh --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/docs/tools/make_releases.sh Sat Apr 09 19:29:29 2016 +0200 @@ -0,0 +1,30 @@ +#!/bin/sh + +DIRNAME=`dirname $0` +PROGNAME=`basename $0` +OUTDIR=$1 +FORCE=$2 + +if [ ! "$OUTDIR" ]; then + cat 1>&2 < [ -f ] +EOF + exit 1 +fi + +if [ "$FORCE" != '-f' ]; then + FORCE= +fi + +if [ ! -e "$OUTDIR" ]; then + mkdir -p "$OUTDIR" +fi + +for TAG in `hg tags | grep ^rel- | cut -f 1 -d ' '` ; do + NUM=`echo "$TAG" | sed 's/rel-//;s/-/./g'` + OUTFILE="$OUTDIR/imip-agent-$NUM.tar.bz2" + if [ ! -e "$OUTFILE" ] || [ "$FORCE" ]; then + hg archive -t tbz2 -r "$TAG" "$OUTFILE" + fi + echo "$OUTFILE" +done diff -r b32d7b080ed7 -r 7fb0056ff66d docs/tools/sign_releases.sh --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/docs/tools/sign_releases.sh Sat Apr 09 19:29:29 2016 +0200 @@ -0,0 +1,32 @@ +#!/bin/sh + +DIRNAME=`dirname $0` +PROGNAME=`basename $0` +OUTDIR=$1 +FORCE=$2 + +if [ ! "$OUTDIR" ]; then + cat 1>&2 < +EOF + exit 1 +fi + +if [ "$FORCE" != '-f' ]; then + FORCE= +fi + +if [ ! -e "$OUTDIR" ]; then + cat 1>&2 <> + +=== Signatures === + +Downloadable archive signatures are provided below. Choose "get" to download +the appropriate file. + +<> + +To verify an archive, download the archive and accompanying signature file to +the same location and then run a command of the following form: + +{{{ +gpg --verify +}}} + +For example: + +{{{ +gpg --verify imip-agent-0.1.tar.bz2.asc imip-agent-0.1.tar.bz2 +}}}