#!/bin/zsh setopt -o glob setopt -o extended_glob if [ -z "$1" ]; then printf "Usage:\n prepare_release \n" exit 1 fi RELEASE_CANDIDATES_DIR=/srv/CGAL/www/Members/release-candidates MANUAL_TESTS_DIR=/srv/CGAL/www/Members/Manual_doxygen_test PUBLIC_RELEASE_DIR="$1" INTERNAL_RELEASE=`basename ${PUBLIC_RELEASE_DIR/-public/}` PUBLIC_RELEASE_NAME=`basename ${~${ZIP_TARBALL::="$PUBLIC_RELEASE_DIR"/*.zip}}` PUBLIC_RELEASE_NAME=${PUBLIC_RELEASE_NAME/.zip/} DEST_DIR="${RELEASE_CANDIDATES_DIR}/$PUBLIC_RELEASE_NAME" if [ -z "$PUBLIC_RELEASE_NAME" ]; then echo The first argument must be a public release directory, like CGAL-3.7-I-167-public. exit 1 fi printf "Preparing %s in %s...\n" "$PUBLIC_RELEASE_NAME" "$DEST_DIR" sleep 2 printf "Copy documentation to doc_html/ and doc_html_online/...\n" [ -d "$DEST_DIR" ] || mkdir "$DEST_DIR" [ -d "$DEST_DIR/doc_html" ] || mkdir "$DEST_DIR/doc_html" [ -d "/srv/CGAL/www/${PUBLIC_RELEASE_NAME#CGAL-}/Manual" ] || mkdir -p "/srv/CGAL/www/${PUBLIC_RELEASE_NAME#CGAL-}/Manual" cp "$PUBLIC_RELEASE_DIR"/*(.) "${RELEASE_CANDIDATES_DIR}/$PUBLIC_RELEASE_NAME" cp -a "$MANUAL_TESTS_DIR/$INTERNAL_RELEASE"/output/* "$DEST_DIR/doc_html" cp -a "$DEST_DIR/doc_html" "$DEST_DIR/doc_html_online" printf "Modify \"../../MathJax\" to MathJax CDN in doc_html...\n" pushd "$DEST_DIR/doc_html" find -name '*.html' -exec sed -i -e 's|../../MathJax|http://cdn.mathjax.org/mathjax/latest|g' {} + popd printf "Create doc_html tarball...\n" tar cf "$DEST_DIR/${PUBLIC_RELEASE_NAME}-doc_html.tar" -C "$DEST_DIR" doc_html printf "Create doc_html zip...\n" pushd "$DEST_DIR" zip -q -r "$DEST_DIR/${PUBLIC_RELEASE_NAME}-doc_html.zip" doc_html popd printf "bzip2 doc_html tarball...\n" bzip2 --best < "$DEST_DIR/${PUBLIC_RELEASE_NAME}-doc_html.tar" > "$DEST_DIR/${PUBLIC_RELEASE_NAME}-doc_html.tar.bz2" printf "bzip2 source tarball...\n" zcat "$DEST_DIR/${PUBLIC_RELEASE_NAME}.tar.gz" | bzip2 --best > "$DEST_DIR/${PUBLIC_RELEASE_NAME}.tar.bz2" printf "xz doc_html tarball...\n" xz --best < "$DEST_DIR/${PUBLIC_RELEASE_NAME}-doc_html.tar" > "$DEST_DIR/${PUBLIC_RELEASE_NAME}-doc_html.tar.xz" printf "gzip doc_html tarball...\n" gzip -f --best "$DEST_DIR/${PUBLIC_RELEASE_NAME}-doc_html.tar" printf "Create the internal_release file\n" printf "%s\n" "${INTERNAL_RELEASE}" > "$DEST_DIR/internal_release" printf "Create cgal_manual.zip for the Windows installer..." pushd "$DEST_DIR/doc_html" zip -q -r ../cgal_manual.zip * popd pushd "$DEST_DIR" printf "Compute md5sum.txt..." md5sum *.^txt > md5sum.txt sha256sum *.^txt > sha256sum.txt popd printf "Now use:\n" printf " cd ${DEST_DIR}\n" printf " mv cgal_manual.zip /srv/CGAL/www/%s/Manual/\n" "${PUBLIC_RELEASE_NAME#CGAL-}" printf " rsync --compress -av doc_html_online/ %s:doc.cgal.org/Manual/%s\n" \ cgalorgmnx@ftp.cgal.org \ "${PUBLIC_RELEASE_NAME#CGAL-}" printf "DONE!\n" pushd "$DEST_DIR" ls -l popd