#!/bin/bash

# Przyrost szybkoci w trakcie wczytywania strony. czymy wszystkie skrypty JavaScripts 
# do jednego pliku, ktry uchroni przed koniecznoci ich oddzielnego wczytywania,
# co bdzie miao wpyw na poprawienie czasu wczytywania aplikacji Ajax.
# Nastpnie kompresujemy wynikowy plik JavaScript w celu zmniejszenia jego wielkoci.
# Uywamy rwnie chwytu, aby obej problem z buforowaniem kodu JavaScript
# w przegldarce Internet Explorer.
#
# @autor, Brad Neuberg, bkn3@columbia.edu
# Ten skrypt jest na licencji BSD i moe by uywany bezpatnie.

export SRC=./demo/compress
export SCRIPTS=$SRC/scripts
export HTML_FILE=$SRC/sample.html

rm -fr dist
mkdir dist

# Kady plik uywany z tym skryptem musi posiada nastpujcy magiczny
# token, version=######, ktry zostanie odczytany, zwikszony o jednostk,
# a nastnie zapisany z powrotem. Przegldarka Internet Explorer nieprawidowo 
# buforuje pliki JavaScript, nawet jeli zostay zmienione,
# co powoduje problemy w trakcie udostpniania nowszych wersji plikw.
# Przedstawiony sposb rozwizuje ten problem.

# Odczyt biecej wersji.
oldVersion=`grep -o \version=[0-9]* $HTML_FILE | tail -n 1 | sed "s/version=//"`

# Zwikszenie wartoci o jednostk.
newVersion=$(( oldVersion + 1))

# Zapisanie nowej wersji z powrotem do pliku.
sed "s/version=$oldVersion/version=$newVersion/" $HTML_FILE > $HTML_FILE.new

mv $HTML_FILE.new $HTML_FILE

# Poczenie caego kodu do jednego pliku.
cat $SCRIPTS/script1.js \
    $SCRIPTS/script2.js \
    > dist/calosc.js
    
# Kompresja pliku.
java -jar bin/compress.jar -c dist/calosc.js > dist/calosc_compress.js 2>&1

# Instalacja.
cp dist/calosc_compress.js $SCRIPTS/calosc.js

# Posprztanie po sobie.
rm -fr dist
