#!/bin/sh usage () { printf "Usage: build-umd \n" } # use zopfli for better compression if available gzip () { zopfli -h 2>/dev/null if [ $? -eq 0 ]; then zopfli "$1" -i1000 -c else gzip -c "$1" fi } build_dev () { mkdir -p dist/ NODE_ENV=development browserify index.js \ --standalone=choo \ -t envify \ -g yo-yoify \ -g es2020 \ > dist/choo.js } build_min () { mkdir -p dist/ NODE_ENV=production browserify index.js \ --standalone=choo \ -t envify \ -g unassertify \ -g yo-yoify \ -g es2020 \ -g uglifyify \ -t envify \ -p bundle-collapser/plugin \ | uglifyjs \ > dist/choo.min.js } build_gz () { build_min gzip dist/choo.min.js > dist/choo.min.js.gz cp dist/choo.min.js.gz dist/choo.gz } # parse CLI flags while true; do case "$1" in -h|--help) usage && exit 1 ;; -- ) shift; break ;; * ) break ;; esac done case "$1" in d|dev) shift; build_dev "$@" ;; m|min) shift; build_min "$@" ;; g|gzip) shift; build_gz "$@" ;; *) shift; build_min "$@" ;; esac