#!/bin/sh die () { echo "$1" >/dev/stderr [ -n "$(which Snarl_CMD 2>/dev/null)" ] && Snarl_CMD snShowMessage 10 "Dive Into Python 3" "$1." "C:\Users\pilgrim\site-lisp\todochiku-icons\alert.png" exit 1 } echo "started build" revision=`hg tip | grep changeset|cut -d":" -f2|cut -d" " -f4` # make build directory and copy original files there for preflighting rm -rf build mkdir build cp robots.txt *.css build/ cp -R j build/ cp -R i build/ rm -f examples/*.pyc cp -R examples build/ cp .htaccess build/ echo "building HTML distribution" htmldir=build/diveintopython3-r"$revision" mkdir "$htmldir" cp *.html "$htmldir"/ cp dip3.css "$htmldir"/ mkdir "$htmldir"/i cp i/*.png "$htmldir"/i/ mkdir "$htmldir"/j cp j/dip3.js j/html5.js j/jquery.js j/prettify.js "$htmldir"/j/ mkdir "$htmldir"/examples cp examples/*.jpg examples/*.json examples/*.pickle examples/*.py examples/*.txt examples/*.xml "$htmldir"/examples/ cd build/ && \ zip -9rq diveintopython3-r"$revision".zip diveintopython3-r"$revision" && \ cd .. echo "linting JS" [ -n "$(which js 2>/dev/null)" ] || die "SpiderMonkey (js or js.exe) not found" js_lint_results=`js j/jslint.js < build/j/dip3.js 2>/dev/null` [ "$js_lint_results" = "jslint: No problems found." ] || die "$js_lint_results" echo "minimizing HTML" # minimize HTML (NB: this script is quite fragile and relies on knowledge of how I write HTML) for f in *.html; do python3 util/htmlminimizer.py "$f" build/"$f" || die "Failed to minimize $f" done # build sitemap ls build/*.html | sed -e "s|build/|http://diveintopython3.org/|g" -e "s|/index.html|/|g" > build/sitemap.txt || die "Failed to build sitemap" echo "adding evil tracking code" # add Google Analytics script for f in build/*.html; do cat "$f" j/ga.js > build/tmp && \ mv build/tmp "$f" || die "Could not add tracking code to $f" done # minimize JS and CSS echo "minimizing JS" revision=`hg log|grep changeset|cut -d":" -f3|head -1` java -jar util/yuicompressor-2.4.2.jar build/j/prettify.js > build/j/prettify.min.js && \ java -jar util/yuicompressor-2.4.2.jar build/j/dip3.js > build/j/dip3.min.js || die "Failed to minimize JS" # combine jQuery and our script echo "combining JS" cat build/j/jquery.min.js build/j/prettify.min.js build/j/dip3.min.js > build/j/$revision.js && \ sed -i -e "s|||g" build/*.html && \ sed -i -e "s|||g" build/*.html && \ sed -i -e "s|