Files
buuh/scripts/instrument
T

92 lines
1.8 KiB
Bash
Raw Normal View History

2016-05-11 14:07:10 +07:00
#!/bin/sh
2016-07-09 14:03:09 -04:00
dirname=$(dirname "$(readlink -f "$0")")
browserify="$dirname/../node_modules/.bin/browserify"
uglify="$dirname/../node_modules/.bin/uglifyjs"
pretty_bytes="$dirname/../node_modules/.bin/pretty-bytes"
gzip_size="$dirname/../node_modules/.bin/gzip-size"
discify="$dirname/../node_modules/.bin/discify"
2016-06-20 22:23:11 +01:00
usage () {
cat << USAGE
script/test-size
Commands:
g, gzip (default) Output gzip size
m, minified Output size minified
d, discify Run discify
USAGE
}
2016-07-09 14:03:09 -04:00
# use zopfli for better compression if available
gzip () {
zopfli -h 2>/dev/null
if [ $? -eq 0 ]; then
zopfli "$1" -i1000 -c | wc -c
else
"$gzip_size" < "$1"
fi
}
2016-06-20 22:23:11 +01:00
gzip_size () {
2016-07-09 14:03:09 -04:00
mkdir -p tmp/
"$browserify" index.js \
2016-06-20 22:23:11 +01:00
-g unassertify \
2016-07-01 14:26:37 +02:00
-g yo-yoify \
2016-06-20 22:23:11 +01:00
-g es2020 \
-g uglifyify \
-p bundle-collapser/plugin \
2016-07-09 14:03:09 -04:00
| "$uglify" \
> tmp/bundle.min.js
gzip tmp/bundle.min.js | "$pretty_bytes"
rm -rf tmp/
2016-06-20 22:23:11 +01:00
}
min_size () {
2016-07-09 14:03:09 -04:00
"$browserify" index.js \
2016-06-20 22:23:11 +01:00
-g unassertify \
2016-07-01 14:26:37 +02:00
-g yo-yoify \
2016-06-20 22:23:11 +01:00
-g es2020 \
-g uglifyify \
-p bundle-collapser/plugin \
2016-07-09 14:03:09 -04:00
| "$uglify" \
2016-06-20 22:23:11 +01:00
| wc -c \
2016-07-09 14:03:09 -04:00
| "$pretty_bytes"
2016-06-20 22:23:11 +01:00
}
run_discify () {
2016-07-09 14:03:09 -04:00
"$browserify" index.js --full-paths \
2016-06-20 22:23:11 +01:00
-g unassertify \
2016-07-01 14:26:37 +02:00
-g yo-yoify \
2016-06-20 22:23:11 +01:00
-g es2020 \
-g uglifyify \
2016-07-09 14:03:09 -04:00
| "$uglify" \
| "$discify" --open
2016-06-20 22:23:11 +01:00
}
# set CLI flags
getopt -T > /dev/null
if [ "$?" -eq 4 ]; then
args="$(getopt --long help discify minified --options hmdg -- "$*")"
2016-07-09 14:03:09 -04:00
else
args="$(getopt h "$*")";
fi
2016-06-20 22:23:11 +01:00
[ ! $? -eq 0 ] && { usage && exit 2; }
eval set -- "$args"
# parse CLI flags
while true; do
case "$1" in
-h|--help) usage && exit 1 ;;
-- ) shift; break ;;
* ) break ;;
esac
done
case "$1" in
d|discify) shift; run_discify "$@" ;;
m|minified) shift; printf "min: %s\n" "$(min_size)" "$@" ;;
g|gzip|*) shift; printf "gzip: %s\n" "$(gzip_size)" "$@" ;;
esac