-
-
Save silasrm/5219392 to your computer and use it in GitHub Desktop.
Fiz umas melhorias como informar a pasta de origem e de destino dos arquivos. A pasta que será feita a limpeza. Bem como informar o caminho para o YUI sem usar a busca que já existia.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
FOLDER_IN="" | |
FOLDER_OUT="" | |
FOLDER_JS_IN="./js" | |
FOLDER_JS_OUT="./js" | |
FOLDER_CSS_IN="./css" | |
FOLDER_CSS_OUT="./css" | |
limpa() { | |
echo -e "\nDeleting existing minified files..." | |
find $FOLDER_IN -name \*.min.js -exec rm {} \; | |
find $FOLDER_IN -name \*.min.css -exec rm {} \; | |
} | |
comprime_js() { | |
echo -e "\nComprimindo e minificando o JavaScript..." | |
jslist=`find $FOLDER_IN -type f -name \*.js` | |
for jsfile in $jslist | |
do | |
echo "Processando: ${jsfile}" | |
FILENAME="$(basename $jsfile .js)" | |
FILEPATH_OUT="$FOLDER_OUT/${FILENAME}.min.js" | |
java -jar ${YUICOMPRESSOR} -o $FILEPATH_OUT ${jsfile} | |
done | |
} | |
comprime_css() { | |
echo -e "\nComprimindo e minificando o CSS..." | |
csslist=`find $FOLDER_IN -type f -name \*.css` | |
for cssfile in $csslist | |
do | |
echo "Processando: ${cssfile}" | |
FILENAME="$(basename $cssfile .css)" | |
FILEPATH_OUT="$FOLDER_OUT/${FILENAME}.min.css" | |
java -jar ${YUICOMPRESSOR} -o $FILEPATH_OUT ${cssfile} | |
done | |
} | |
usage() { | |
echo -e "\compressor.sh [-cjdhi:o:y:]" | |
echo "Opções" | |
echo " c : Comprime e minifica arquivos CSS" | |
echo " j : Comprime e minifica arquivos Javascript" | |
echo " d : Deleta arquivos comprimidos e minificados" | |
echo " h: Peça ajuda!" | |
echo " " | |
echo "Pastas" | |
echo " -i=pasta : pasta de origem dos arquivos, onde estão os originais. Caso não seja informada, assumira o valor padrão." | |
echo " -o=pasta : pasta de destino dos arquivos, onde estarão os arquivos finais. Caso não seja informada, assumira o valor padrão." | |
echo " => Pasta padrão de origem e destino do Javascript: ./js" | |
echo " => Pasta padrão de origem e destino do CSS: ./css" | |
echo " " | |
echo "Limpar" | |
echo " Para limpar, informe somente a pasta de no parametro -i:" | |
echo " " | |
echo "Exemplos" | |
echo " compressor.sh -d -i=./js-min" | |
echo " compressor.sh -j -i=./js -o=./js-min" | |
echo " compressor.sh -j -i=./js" | |
echo " compressor.sh -j -o=./js" | |
echo " compressor.sh -c -i=./css -o=./css-min" | |
echo " compressor.sh -c -i=./css" | |
echo " compressor.sh -c -o=./css-min" | |
echo " " | |
echo "-----------" | |
echo "Script originalmente feito João Vagner (https://gist.github.com/JoaoVagner/5215647) e modificado por Silas Ribas" | |
} | |
CSS=false | |
JS=false | |
DELETE=false | |
HELP=false | |
while getopts "cjdhi:o:y:" input | |
do | |
case $input in | |
c ) CSS=true;; | |
j ) JS=true;; | |
d ) DELETE=true;; | |
i ) if ! [ -z ${OPTARG:1} ] | |
then | |
FOLDER_IN="${OPTARG:1}" | |
else | |
if $JS | |
then | |
FOLDER_IN=$FOLDER_JS_IN | |
else | |
FOLDER_IN=$FOLDER_CSS_IN | |
fi | |
fi;; | |
o ) if ! [ -z ${OPTARG:1} ] | |
then | |
FOLDER_OUT="${OPTARG:1}" | |
else | |
if $JS | |
then | |
FOLDER_OUT=$FOLDER_JS_OUT | |
else | |
FOLDER_OUT=$FOLDER_CSS_OUT | |
fi | |
fi;; | |
y ) if ! [ -z ${OPTARG:1} ] | |
then | |
YUICOMPRESSOR="${OPTARG:1}" | |
else | |
if ! [ `find ~/Sites/yui -type f -name *.jar` ] | |
then | |
echo "Yui Compressor não encontrado!" | |
exit 1 | |
else | |
YUICOMPRESSOR=`find ~/Sites/yui -type f -name *.jar` | |
fi | |
fi;; | |
h ) HELP=true;; | |
* ) HELP=true;; | |
esac | |
done | |
if ! $JS && ! $CSS && ! $DELETE | |
then | |
usage | |
exit 0 | |
fi | |
if $HELP | |
then | |
usage | |
exit 0 | |
fi | |
if ! [ $YUICOMPRESSOR ] | |
then | |
if ! [ `find ~/Sites/yui -type f -name *.jar` ] | |
then | |
echo "Yui Compressor não encontrado!" | |
exit 1 | |
else | |
YUICOMPRESSOR=`find ~/Sites/yui -type f -name *.jar` | |
fi | |
else | |
echo "Utilizando o YUI de $YUICOMPRESSOR" | |
if ! [ `find $YUICOMPRESSOR -type f 2> /dev/null` ] | |
then | |
echo "Yui Compressor não encontrado! Use sempre caminho absoluto." | |
exit 1 | |
fi | |
fi | |
if [ -z $FOLDER_IN ] | |
then | |
if $JS | |
then | |
FOLDER_IN=$FOLDER_JS_IN | |
else | |
FOLDER_IN=$FOLDER_CSS_IN | |
fi | |
fi | |
if [ -z $FOLDER_OUT ] | |
then | |
if $DELETE | |
then | |
FOLDER_OUT=$FOLDER_IN | |
elif $JS | |
then | |
FOLDER_OUT=$FOLDER_JS_OUT | |
else | |
FOLDER_OUT=$FOLDER_CSS_OUT | |
fi | |
fi | |
if ! [ `find $FOLDER_IN -type d 2> /dev/null` ] | |
then | |
echo "ERRO: Pasta de origem dos arquivos não existe" | |
exit 1 | |
fi | |
if ! [ `find $FOLDER_OUT -type d 2> /dev/null` ] | |
then | |
echo "ERRO: Pasta de destino dos arquivos não existe" | |
exit 1 | |
fi | |
if $DELETE | |
then | |
limpa | |
fi | |
if $JS | |
then | |
comprime_js | |
fi | |
if $CSS | |
then | |
comprime_css | |
fi | |
echo -e "\nDone." | |
exit 0 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment