#!/bin/bash modules=all autoload=on css=on img=on pathprefix= stylefile=stylesheets/jquery.socialshareprivacy.min.css langs=all builddir=build allmodules=`ls javascripts/modules/*.js|sed 's/javascripts\/modules\/\(.*\)\.js/\1/'` alllangs=`ls -d javascripts/locale/??|xargs -n 1 basename` while getopts ":m:a:s:p:c:i:l:o:h" opt; do case $opt in m) modules="$OPTARG" ;; a) autoload="$OPTARG" ;; c) css="$OPTARG" ;; i) img="$OPTARG" ;; p) pathprefix="$OPTARG" ;; s) stylefile="$OPTARG" ;; l) langs="`echo "$OPTARG"|tr ',' ' '`" ;; o) builddir="$OPTARG" ;; h) echo "Usage:" echo " ./build.sh [options]" echo echo "Options:" echo " -h Print this help message." echo " -m Comma separated list of JavaScript modules to pack. Possible values:" echo all none $allmodules|sed 's/ /, /g'|fmt -60|xargs -n 1 -d '\n' echo " " echo " default: all" echo echo " -l Comma separated list of languages to pack. Possible values:" echo all none $alllangs|sed 's/ /, /g'|fmt -60|xargs -n 1 -d '\n' echo " " echo " default: all" echo echo " -a Autoload. Possible values: on, off (default: on)" echo " -c Pack stylesheets. Possible values: on, off (default: on)" echo " -i Pack images. Possible values: on, off (default: on)" echo " -p Prefix to stylesheet and dummy image paths. (empty per default)" echo " -s Stylesheet path in the generated JavaScript file." echo " default: stylesheets/jquery.socialshareprivacy.min.css" echo " -o Output directory. (default: build)" echo exit ;; \?) echo "Invalid option: -$OPTARG" >&2 echo "See -h for a list of available options." >&2 exit 1 ;; esac done if [ "$modules" = "all" ]; then modules=`echo -n $allmodules|tr ' ' ','` elif [ "$modules" = "" ]; then modules="none" fi if [ "$langs" = "all" ]; then langs="$alllangs" elif [ "$langs" = "" ]; then langs="none" fi mkdir -p "$builddir/javascripts" || exit 1 files="javascripts/socialshareprivacy.js" if [ "$modules" != "none" ]; then files="$files `eval echo javascripts/modules/{$modules}.js`" fi files="$files javascripts/settings.js" uglifyjs $files \ --compress=warnings=false \ | sed -e "s|path_prefix:\"\"|path_prefix:\"$pathprefix\"|g" \ | sed -e "s|stylesheets/socialshareprivacy.css|$stylefile|g" \ > "$builddir/javascripts/jquery.socialshareprivacy.min.js" || exit 1 echo "created $builddir/javascripts/jquery.socialshareprivacy.min.js" if [ "$autoload" = "on" ]; then uglifyjs $files javascripts/autoload.js \ --compress=warnings=false \ | sed -e "s|path_prefix:\"\"|path_prefix:\"$pathprefix\"|g" \ | sed -e "s|stylesheets/socialshareprivacy.css|$stylefile|g" \ > "$builddir/javascripts/jquery.socialshareprivacy.min.autoload.js" || exit 1 echo "created $builddir/javascripts/jquery.socialshareprivacy.min.autoload.js" fi if [ "$langs" != "none" ]; then for lang in $langs; do files="javascripts/locale/$lang/socialshareprivacy.js" if [ "$modules" != "none" ]; then files="$files `eval ls javascripts/locale/$lang/modules/{$modules}.js 2>/dev/null`" fi node join-trans.js $files | uglifyjs \ --compress=warnings=false \ --output="$builddir/javascripts/jquery.socialshareprivacy.min.$lang.js" || exit 1 echo "created $builddir/javascripts/jquery.socialshareprivacy.min.$lang.js" done fi if [ "$img" = "on" ]; then mkdir -p "$builddir/images" || exit 1 files="`eval ls images/socialshareprivacy_* images/settings.png images/{dummy_,}{box_,}{$modules}.* 2>/dev/null`" if [ "$files" != "" ]; then cp $files "$builddir/images" || exit 1 echo "copied images to $builddir/images" fi if [ "$langs" != "none" ]; then for lang in $langs; do if [ -d "images/$lang" ]; then mkdir -p "$builddir/images/$lang" || exit 1 files="`eval ls images/$lang/{dummy_,}{box_,}{$modules}.* 2>/dev/null`" if [ "$files" != "" ]; then cp $files "$builddir/images/$lang" || exit 1 echo "copied images to $builddir/images/$lang" fi fi done fi fi if [ "$css" = "on" ]; then styledir="`dirname "$builddir/$stylefile"`" mkdir -p "$styledir" || exit 1 files="stylesheets/common.css" if [ "$modules" != "none" ]; then files="$files `eval ls stylesheets/modules/{$modules}.css 2>/dev/null`" fi uglifycss $files > "$builddir/$stylefile" || exit 1 echo "created $builddir/$stylefile" fi