TODO: Optionally minify using Google Closure Compiler.
Options:
- -h Displays this help.
- -v Verbose logging.
- -n Dry-run.
+ -h Displays this help
+ -v Verbose logging
+ -n Dry-run
+ -C Clean before rebuilding
HALP
}
for opt in $*; do
echo $opt | egrep -xq -e '--?h(e(lp?)?)?' && { halp; exit 0; }
done
-while getopts "nv" opt; do
+while getopts "nvC" opt; do
case $opt in
n ) DRY_RUN="--dry-run"; incshift ;;
v ) VERBOSE="-v"; incshift ;;
+ C ) CLEAN="--clean"; incshift ;;
esac
done
shift $SHIFT
+
+SRC="src/Y src/ezl src/tanks"
EXCLUDE="--exclude=$(join ' --exclude=' 'tmp' 'src' 'bin' $*)"
+
cat <<-SWEET_ART
.__ __,
,/__\=: The Littlest Deployer of Battletanks :=/__\.
SWEET_ART
-printf "Building documentation...\t"
+printf "Building documentation...\t\t"
for md in doc/*.md; do
markdown $md -f $md.html || fail "Error building markdown docs!"
done
echo "hokay"
-printf "Building project...\t\t"
-commonjs src/{Y,ezl,tanks} --clean || fail "Error cleaning modules!"
-commonjs src/{Y,ezl,tanks} --script-tags > tags.html || fail "Error building modules!"
+if test "$CLEAN"; then
+ printf "Cleaning and rebuilding...\t\t"
+ commonjs $SRC $CLEAN || fail "Error cleaning project!"
+ echo "hokay"
+fi
+
+printf "Building and generating dep-graph...\t"
+commonjs $SRC --script-tags > www/deps.html || fail "Error building modules!"
echo "hokay"
-printf "Uploading files...\t\t"
+printf "Uploading files...\t\t\t"
test "$VERBOSE" && echo && echo "rsync -Caz $VERBOSE $DRY_RUN --delete $EXCLUDE ./* tanks@lttlst.com:www/"
rsync -Caz $VERBOSE $DRY_RUN --delete $EXCLUDE ./* tanks@lttlst.com:www/ \
|| fail "rsync failed!"
echo "hokay"
-printf "Updating permissions...\t\t"
+printf "Updating permissions...\t\t\t"
test "$VERBOSE" && echo && echo "ssh tanks@lttlst.com 'chown -R tanks:www /home/tanks/www && chmod -R 775 /home/tanks/www'"
ssh tanks@lttlst.com 'chown -R tanks:www /home/tanks/www && chmod -R 775 /home/tanks/www' \
|| fail "unable to update permissions on deployed files!"
+++ /dev/null
-<script src="build/require.js" type="text/javascript"></script>
-<script src="build/future.js" type="text/javascript"></script>
-<script src="build/functional/to-function.js" type="text/javascript"></script>
-<script src="build/Y/type.js" type="text/javascript"></script>
-<script src="build/Y/core.js" type="text/javascript"></script>
-<script src="build/Y/delegate.js" type="text/javascript"></script>
-<script src="build/Y/types/function.js" type="text/javascript"></script>
-<script src="build/Y/op.js" type="text/javascript"></script>
-<script src="build/Y/utils.js" type="text/javascript"></script>
-<script src="build/Y/class.js" type="text/javascript"></script>
-<script src="build/Y/y.js" type="text/javascript"></script>
-<script src="build/Y/types/collection.js" type="text/javascript"></script>
-<script src="build/Y/types/array.js" type="text/javascript"></script>
-<script src="build/Y/types/object.js" type="text/javascript"></script>
-<script src="build/Y/types/string.js" type="text/javascript"></script>
-<script src="build/Y/types/number.js" type="text/javascript"></script>
-<script src="build/Y.js" type="text/javascript"></script>
-<script src="build/jquery.js" type="text/javascript"></script>
-<script src="build/jquery.sparkline.min.js" type="text/javascript"></script>
-<script src="build/Y/modules/y.event.js" type="text/javascript"></script>
-<script src="build/ezl/util.js" type="text/javascript"></script>
-<script src="build/ezl/loop/fps.js" type="text/javascript"></script>
-<script src="build/ezl/math/vec.js" type="text/javascript"></script>
-<script src="build/ezl/loop/cooldown.js" type="text/javascript"></script>
-<script src="build/ezl/loop/eventloop.js" type="text/javascript"></script>
-<script src="build/ezl/loc/loc.js" type="text/javascript"></script>
-<script src="build/ezl/math/rect.js" type="text/javascript"></script>
-<script src="build/ezl/math/line.js" type="text/javascript"></script>
-<script src="build/ezl/loop.js" type="text/javascript"></script>
-<script src="build/ezl/math.js" type="text/javascript"></script>
-<script src="build/ezl/loc/boundingbox.js" type="text/javascript"></script>
-<script src="build/ezl/loc/square.js" type="text/javascript"></script>
-<script src="build/ezl/loc.js" type="text/javascript"></script>
-<script src="build/ezl/layer.js" type="text/javascript"></script>
-<script src="build/ezl/shape/shape.js" type="text/javascript"></script>
-<script src="build/ezl/shape/line.js" type="text/javascript"></script>
-<script src="build/ezl/shape/polygon.js" type="text/javascript"></script>
-<script src="build/ezl/shape/circle.js" type="text/javascript"></script>
-<script src="build/ezl/shape/rect.js" type="text/javascript"></script>
-<script src="build/ezl/shape.js" type="text/javascript"></script>
-<script src="build/ezl.js" type="text/javascript"></script>
-<script src="build/jquery.hotkeys.min.js" type="text/javascript"></script>
-<script src="build/tanks/globals.js" type="text/javascript"></script>
-<script src="build/evt.js" type="text/javascript"></script>
-<script src="build/ezl/util/binaryheap.js" type="text/javascript"></script>
-<script src="build/ezl/util/astar.js" type="text/javascript"></script>
-<script src="build/tanks/config.js" type="text/javascript"></script>
-<script src="build/Y/modules/y.kv.js" type="text/javascript"></script>
-<script src="build/ezl/util/tree/quadtree.js" type="text/javascript"></script>
-<script src="build/tanks/ui/config.js" type="text/javascript"></script>
-<script src="build/tanks/thing/thing.js" type="text/javascript"></script>
-<script src="build/tanks/map/trajectory.js" type="text/javascript"></script>
-<script src="build/tanks/map/wall.js" type="text/javascript"></script>
-<script src="build/tanks/ui/grid.js" type="text/javascript"></script>
-<script src="build/tanks/thing/bullet.js" type="text/javascript"></script>
-<script src="build/tanks/thing/tank.js" type="text/javascript"></script>
-<script src="build/tanks/map/pathmap.js" type="text/javascript"></script>
-<script src="build/tanks/thing/player.js" type="text/javascript"></script>
-<script src="build/tanks/map/level.js" type="text/javascript"></script>
-<script src="build/tanks/thing.js" type="text/javascript"></script>
-<script src="build/tanks/map.js" type="text/javascript"></script>
-<script src="build/tanks/game.js" type="text/javascript"></script>
-<script src="build/tanks/ui/main.js" type="text/javascript"></script>
-<script src="build/tanks/ui.js" type="text/javascript"></script>
-<script src="build/tanks.js" type="text/javascript"></script>