Сборка js с помощью bash и google closure compiller

В связи с падением HD вынужденно копался в своих старых проектах, наткнулся на скрипт, которым раньше собирал js для фронта.
А как раз недавно вспоминали и что-то не нашелся. Так что оставлю тут, просто чтобы снова не потерять.


#!/bin/bash
#author shrewmus
#script for compile or simple concatenate several javascript files

#path to google closure compiler
COMPILER_PATH=/home/shrewmus/soft/closure_compiler/compiler-latest/compiler.jar
#output path

OUT_DIR=assets/js/
OUT_PATH=${OUT_DIR}shr.js
#path to dir where FILES_F files
SRC_PATH=libs.js/
#source file list
#FILES_F=(cookie.js utils.js const.js)
FILES_F=(dimensions.js)

#compile files with google closure compiler
function useCompiler(){
file_list files
java -jar $COMPILER_PATH --js $files --js_output_file $OUT_PATH --compilation_level SIMPLE_OPTIMIZATIONS
#java -jar $COMPILER_PATH --js ${SRC_PATH}bootstrap-collapse.js --js_output_file ${OUT_DIR}bcol.js --compilation_level SIMPLE_OPTIMIZATIONS
echo "closure compiler work end"
}

#simple concatenate files
function simpleUnion(){
file_list files
cat $files > $OUT_PATH
#cat ${SRC_PATH}bootstrap-collapse.js > ${OUT_DIR}bcol.js
echo "concatenating files"
}

#get file list as string (and add path to files)
function file_list(){
local ret=$1
local bpath=${SRC_PATH}shr/
local union_files=""
for index in ${FILES_F[@]}
do
local union_files=$union_files" "${bpath}${index}
done
eval $ret="'$union_files'"
}

function check(){
case $1 in
1)useCompiler
start ;;
2) simpleUnion
start ;;
3)
echo "stop and close"
exit ;;
*)
echo "Y must choose only from 1 to 3"
start ;;
esac
}

#show menu
function start(){
echo "Chose type of compile:"
echo "1 - compile with google closure compiler"
echo "2 - simple concatenate files"
echo "3 - exit"
read cpType
check $cpType
}

start

Leave a Reply

Your email address will not be published. Required fields are marked *