X-Git-Url: https://adrianiainlam.tk/git/?a=blobdiff_plain;f=generate-combined.sh;h=26d4a422e00d1effa640270faf1ab0697c64a5f7;hb=1f0f434a67305ccb3d54a0bbd16a1b6d9421fffb;hp=5694425742b2cf9f6171ea377f2d1100e0c581d4;hpb=f2cfa23b0bb9d33bda9a39036508fe60284a6451;p=dygraphs.git diff --git a/generate-combined.sh b/generate-combined.sh index 5694425..26d4a42 100755 --- a/generate-combined.sh +++ b/generate-combined.sh @@ -1,19 +1,87 @@ #!/bin/bash # Generates a single JS file that's easier to include. -# Pack the dygraphs JS and rgbcolor -cat \ -dygraph-canvas.js \ -dygraph.js \ -rgbcolor/rgbcolor.js \ -strftime/strftime-min.js \ -> /tmp/dygraph.js +GetSources () { + # Include dyraph-options-reference only if DEBUG environment variable is set. + if [ ! -z "$DEBUG" ]; then + maybe_options_reference=dygraph-options-reference.js + else + maybe_options_reference='' + fi -java -jar yuicompressor-2.4.2.jar /tmp/dygraph.js \ -> /tmp/dygraph-packed.js + # This list needs to be kept in sync w/ the one in dygraph-dev.js + # and the one in jsTestDriver.conf. Order matters, except for the plugins. + for F in \ + polyfills/console.js \ + dashed-canvas.js \ + dygraph-options.js \ + dygraph-layout.js \ + dygraph-canvas.js \ + dygraph.js \ + dygraph-utils.js \ + dygraph-gviz.js \ + dygraph-interaction-model.js \ + dygraph-tickers.js \ + dygraph-plugin-base.js \ + plugins/*.js \ + dygraph-plugin-install.js \ + $maybe_options_reference \ + datahandler/datahandler.js \ + datahandler/default.js \ + datahandler/default-fractions.js \ + datahandler/bars.js \ + datahandler/bars-custom.js \ + datahandler/bars-error.js \ + datahandler/bars-fractions.js + do + echo "$F" + done +} -# TODO(danvk): ensure the dygraphs copyright, etc. gets into the packed js. +# Pack all the JS together. +CatSources () { + GetSources \ + | xargs cat +} -cat \ -/tmp/dygraph-packed.js \ -> dygraph-combined.js +Copyright () { + echo '/*! @license Copyright 2014 Dan Vanderkam (danvdk@gmail.com) MIT-licensed (http://opensource.org/licenses/MIT) */' +} + +CatCompressed () { + node_modules/uglify-js/bin/uglifyjs \ + $(GetSources | xargs) \ + --compress warnings=false \ + --mangle \ + --define DEBUG=false \ + --preamble "$(Copyright)" \ + $* +} + +ACTION="${1:-update}" +case "$ACTION" in +ls) + GetSources + ;; +cat) + Copyright + CatSources + ;; +cat-dev) + DEBUG=true + Copyright + CatSources + ;; +compress*|cat_compress*) + CatCompressed + ;; +update) + CatCompressed --source-map dygraph-combined.js.map \ + > dygraph-combined.js + chmod a+r dygraph-combined.js dygraph-combined.js.map + ;; +*) + echo >&2 "Unknown action '$ACTION'" + exit 1 + ;; +esac