Google Closure Compiler

From Chorke Wiki
Jump to navigation Jump to search
sudo wget -c https://dl.google.com\
/closure-compiler/compiler-20200719.zip       -P /opt/cli/

sudo mkdir -p  /opt/cli/closure-compiler-20200719
sudo unzip -q  /opt/cli/compiler-20200719.zip -d /opt/cli/closure-compiler-20200719
sudo rm -rf    /opt/cli/compiler-20200719.zip

sudo chmod 644 /opt/cli/closure-compiler-20200719/closure-compiler-v20200719.jar
sudo mkdir -p /opt/cli/closure-compiler-20200719/bin
sudo touch    /opt/cli/closure-compiler-20200719/bin/closure-compiler
sudo chmod +x /opt/cli/closure-compiler-20200719/bin/closure-compiler
sudo tee   -a /opt/cli/closure-compiler-20200719/bin/closure-compiler >/dev/null <<'EOF'
#!/bin/bash
: '
 @vendor    Chorke Academia, Inc.
 @web       https://cdn.chorke.org/docs/academia
 @version   1.0.00
 @since     1.0.00
'

export CLOSURE_COMPILER_HOME='/opt/cli/closure-compiler-20200719'
export CLOSURE_COMPILER_EXEC="java -jar ${CLOSURE_COMPILER_HOME}/closure-compiler-v20200719.jar"

if   [[ "${@}/arg/is/empty" != '/arg/is/empty' ]];then export CLOSURE_COMPILER_EXEC="${CLOSURE_COMPILER_EXEC} ${@}";fi

if   [ -f "${JAVA_HOME}/bin/java" ];then ${JAVA_HOME}/bin/${CLOSURE_COMPILER_EXEC}
elif [ -x "$(command -v java)" ];then ${CLOSURE_COMPILER_EXEC}
else printf '\njava \033[0;31mnot found! \033[0m:(\n';fi
EOF
sudo update-alternatives --install /usr/bin/closure-compiler closure-compiler\
 /opt/cli/closure-compiler-20200719/bin/closure-compiler 1983

Web Install

sudo apt -qq update;\
bash <(curl -s 'https://cdn.chorke.org/exec/cli/bash/install/closure-compiler/20200719.sh.txt')

Examples

closure-compiler
:'
The compiler is waiting for input via stdin.
function greeting(name){return 'Hi '+name+', Eid Mubarak';}; 
function greeting(a){return"Hi "+a+", Eid Mubarak"};
'
closure-compiler
:'
The compiler is waiting for input via stdin.
var greeting=(name)=>'Hi '+name+', Eid Mubarak'; 
var greeting=function(a){return"Hi "+a+", Eid Mubarak"};
'

closure-compiler --language_out STABLE|ECMASCRIPT3|ECMASCRIPT5
:'
The compiler is waiting for input via stdin.
var greeting=(name)=>'Hi '+name+', Eid Mubarak';
var greeting=function(a){return"Hi "+a+", Eid Mubarak"};
'
closure-compiler --language_out ECMASCRIPT5_STRICT
:'
The compiler is waiting for input via stdin.
var greeting=(name)=>'Hi '+name+', Eid Mubarak';
'use strict';var greeting=function(a){return"Hi "+a+", Eid Mubarak"};
'

closure-compiler --language_out ECMASCRIPT_2015|ECMASCRIPT_2016|ECMASCRIPT_2017|ECMASCRIPT_2018|ECMASCRIPT_2019
:'
The compiler is waiting for input via stdin.
var greeting=(name)=>'Hi '+name+', Eid Mubarak';
'use strict';var greeting=a=>"Hi "+a+", Eid Mubarak";
'

closure-compiler --js ./handlebars.js --js_output_file ./handlebars.min.js --language_out ECMASCRIPT_2015
closure-compiler --js ./mustache.js --js_output_file ./mustache.min.js --language_out ECMASCRIPT_2015
closure-compiler --js ./moment.js --js_output_file ./moment.min.js --language_out ECMASCRIPT_2015
closure-compiler --js ./ajv7.js --js_output_file ./ajv7.min.js --language_out ECMASCRIPT_2015

Knowledge

sudo chmod +x /opt/cli/closure-compiler-20200719/closure-compiler-v20200719.jar
stat -c '%a'  /opt/cli/closure-compiler-20200719/closure-compiler-v20200719.jar
stat          /opt/cli/closure-compiler-20200719/closure-compiler-v20200719.jar

References