Dave Jarvis' Repositories

git clone https://repo.autonoma.ca/repo/recipe-fiddle.git
#!/bin/bash

# #########################################################################
#
# Script to minify JavaScript.
# CSS is minified using LESS
#
# #########################################################################

COMPILER=$HOME/archive

JS_CMD="java -jar $COMPILER/closure-javascript.jar"

JS_SHARED=
for i in ../common/js/*.js; do
  JS_SHARED="--js=$i $JS_SHARED"
done

JS_SHUTTLE=
for i in ../common/js/shuttle/*.js; do
  JS_SHUTTLE="--js=$i $JS_SHUTTLE"
done

# Minifies JavaScript, given an application name.
#
# $1 must be one of: {recipe, diet, search, grocery, book, potluck}.
#
function minify_javascript {
  APP=$1
  echo "Minifying JavaScript for $APP ..."

  JS_APP=
  for i in ../$APP/js/*.js; do
    JS_APP="--js=$i $JS_APP"
  done

  if [[ "$APP" == "book" ]]; then
    JS_APP="$JS_APP $JS_SHUTTLE"
  fi

  $JS_CMD $JS_SHARED $JS_APP --js_output_file=../js/rz.$APP.min.js
}

function show_help {
  echo "Usage: minify -a <recipe|account|diet|search|grocery|book|potluck|all>"
}

# Reset in case getopts has been used previously in the shell.
OPTIND=1

while getopts "h?a:" opt; do
    case "$opt" in
    h|\?)
        show_help
        exit 0
        ;;
    a)  application=$OPTARG
        ;;
    esac
done

shift $((OPTIND-1))

[ "$1" = "--" ] && shift

if [ -z $application ]; then
  show_help;
elif [[ "$application" == "all" ]]; then
  minify_javascript "recipe"
  minify_javascript "book"
  minify_javascript "account"
  minify_javascript "search"
  minify_javascript "diet"
  minify_javascript "grocery"
  #minify_javascript "potluck"
else
  minify_javascript $application
fi