1 #!/bin/sh 2 3 DIRNAME=`dirname $0` 4 PROGNAME=`basename $0` 5 OUTDIR=$1 6 7 if [ ! "$OUTDIR" ]; then 8 cat 1>&2 <<EOF 9 Usage: $PROGNAME <output directory> [ <page prefix> ] [ --releases [ --sign ] ] 10 EOF 11 exit 1 12 fi 13 14 if [ -e "$OUTDIR" ]; then 15 echo "Please remove $OUTDIR before generating a new package." 1>&2 16 exit 1 17 fi 18 19 if [ "$2" = '--releases' ]; then 20 PREFIX= 21 RELEASES=$2 22 SIGN=$3 23 else 24 PREFIX=$2 25 RELEASES=$3 26 SIGN=$4 27 fi 28 29 # Generate release archives. These are held in a separate, semi-permanent 30 # place so that archives and signatures are not regenerated unnecessarily. 31 32 if [ "$RELEASES" ]; then 33 "$DIRNAME/make_releases.sh" releases 34 fi 35 36 if [ "$SIGN" ]; then 37 "$DIRNAME/sign_releases.sh" releases 38 fi 39 40 # Generate a manifest for the page package. 41 42 MANIFEST="$OUTDIR/MOIN_PACKAGE" 43 44 mkdir "$OUTDIR" 45 cat > "$MANIFEST" <<EOF 46 MoinMoinPackage|1 47 EOF 48 49 # Add the pages to the manifest. 50 51 DOCS="$DIRNAME/../wiki" 52 53 cp "$DOCS/"* "$OUTDIR" 54 55 for FILENAME in "$DOCS/"* ; do 56 BASENAME=`basename "$FILENAME"` 57 PAGENAME=`echo "$BASENAME" | sed 's/--/\//g'` 58 if [ "$PREFIX" ]; then 59 if [ "$PAGENAME" = "FrontPage" ]; then 60 PAGENAME="$PREFIX" 61 else 62 PAGENAME="$PREFIX/$PAGENAME" 63 fi 64 fi 65 echo "AddRevision|$BASENAME|$PAGENAME" >> "$MANIFEST" 66 done 67 68 # Combine the releases with the pages. 69 70 ATTACHMENT="attachment_" 71 72 for FILENAME in releases/* ; do 73 BASENAME=`basename "$FILENAME"` 74 cp "$FILENAME" "$OUTDIR/$ATTACHMENT$BASENAME" 75 done 76 77 # Add the releases to the manifest. 78 79 for FILENAME in releases/* ; do 80 BASENAME=`basename "$FILENAME"` 81 PAGENAME="Downloads" 82 if [ "$PREFIX" ]; then 83 PAGENAME="$PREFIX/$PAGENAME" 84 fi 85 echo "AddAttachment|$ATTACHMENT$BASENAME|$BASENAME|$PAGENAME" >> "$MANIFEST" 86 done 87 88 zip -j "$OUTDIR" "$OUTDIR/"*