build.sh 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137
  1. #!/bin/bash
  2. VERSION="1.0.0"
  3. #define paths
  4. COMPILER=google-compiler/compiler.jar
  5. COMPRESSOR=yuicompressor/yuicompressor-2.4.2.jar
  6. LUNGO_SOURCES=../src/
  7. LUNGO_NAMESPACE=Lungo.
  8. BUILDPATH=../release/
  9. MINIFIED="min"
  10. PACKED="packed"
  11. #script
  12. clear
  13. echo -e "\033[0m"============================ LUNGO COMPILER ============================
  14. echo -e "Do you wish to compile LungoJS Framework? (Y)es or (N)o?: \c "
  15. read WISH
  16. if [[ $WISH == "Y" || $WISH == "y" ]] ; then
  17. ## Files to compile
  18. FILES_TO_COMPILE=""
  19. FILES_TO_JOIN=""
  20. #Main
  21. DIR=$LUNGO_SOURCES$LUNGO_NAMESPACE
  22. echo -e "\033[33m [DIR]: "$LUNGO_SOURCES
  23. FILES=(js App.js Environment.js Core.js Events.js Service.js)
  24. for file in "${FILES[@]}"
  25. do
  26. FILES_TO_COMPILE=$FILES_TO_COMPILE" --js "$DIR$file
  27. FILES_TO_JOIN=$FILES_TO_JOIN" "$DIR$file
  28. done
  29. #Router
  30. DIR=$LUNGO_SOURCES"router/"$LUNGO_NAMESPACE"Router."
  31. echo -e "\033[33m [DIR]: "$LUNGO_SOURCES"router/"
  32. FILES=(js History.js)
  33. for file in "${FILES[@]}"
  34. do
  35. FILES_TO_COMPILE=$FILES_TO_COMPILE" --js "$DIR$file
  36. FILES_TO_JOIN=$FILES_TO_JOIN" "$DIR$file
  37. done
  38. #View
  39. DIR=$LUNGO_SOURCES"view/"$LUNGO_NAMESPACE"View."
  40. echo -e "\033[33m [DIR]: "$LUNGO_SOURCES"view/"
  41. FILES=(Article.js Resize.js Template.js Template.Binding.js Template.List.js Scroll.js)
  42. for file in "${FILES[@]}"
  43. do
  44. FILES_TO_COMPILE=$FILES_TO_COMPILE" --js "$DIR$file
  45. FILES_TO_JOIN=$FILES_TO_JOIN" "$DIR$file
  46. done
  47. #Dom
  48. DIR=$LUNGO_SOURCES"dom/"$LUNGO_NAMESPACE"Dom."
  49. echo -e "\033[33m [DIR]: "$LUNGO_SOURCES"dom/"
  50. FILES=(js Event.js)
  51. for file in "${FILES[@]}"
  52. do
  53. FILES_TO_COMPILE=$FILES_TO_COMPILE" --js "$DIR$file
  54. FILES_TO_JOIN=$FILES_TO_JOIN" "$DIR$file
  55. done
  56. #Attributes
  57. DIR=$LUNGO_SOURCES"attributes/"$LUNGO_NAMESPACE"Attributes."
  58. echo -e "\033[33m [DIR]: "$LUNGO_SOURCES"attributes/"
  59. FILES=(Data.js Section.js)
  60. for file in "${FILES[@]}"
  61. do
  62. FILES_TO_COMPILE=$FILES_TO_COMPILE" --js "$DIR$file
  63. FILES_TO_JOIN=$FILES_TO_JOIN" "$DIR$file
  64. done
  65. #Data
  66. DIR=$LUNGO_SOURCES"data/"$LUNGO_NAMESPACE"Data."
  67. echo -e "\033[33m [DIR]: "$LUNGO_SOURCES"data/"
  68. FILES=(Cache.js Sql.js Storage.js)
  69. for file in "${FILES[@]}"
  70. do
  71. FILES_TO_COMPILE=$FILES_TO_COMPILE" --js "$DIR$file
  72. FILES_TO_JOIN=$FILES_TO_JOIN" "$DIR$file
  73. done
  74. #Dom
  75. DIR=$LUNGO_SOURCES"boot/"$LUNGO_NAMESPACE"Boot."
  76. echo -e "\033[33m [DIR]: "$LUNGO_SOURCES"boot/"
  77. FILES=(js Article.js Data.js Events.js Section.js)
  78. for file in "${FILES[@]}"
  79. do
  80. FILES_TO_COMPILE=$FILES_TO_COMPILE" --js "$DIR$file
  81. FILES_TO_JOIN=$FILES_TO_JOIN" "$DIR$file
  82. done
  83. #UNCOMPRESED Version
  84. cat $FILES_TO_JOIN > $BUILDPATH/lungo-$VERSION.js
  85. echo -e "\033[32m [BUILD]: lungo-"$VERSION.js"\033[0m"
  86. #MINIFIED Version
  87. java -jar $COMPILER $FILES_TO_COMPILE --js_output_file $BUILDPATH/lungo-$VERSION.$MINIFIED.js
  88. echo -e "\033[32m [BUILD]: lungo-"$VERSION.$MINIFIED.js"\033[0m"
  89. #PACKED Version
  90. FILES_TO_COMPILE=" --js "$LUNGO_SOURCES"lib/zepto.js --js "$LUNGO_SOURCES"lib/iscroll.js"$FILES_TO_COMPILE
  91. java -jar $COMPILER $FILES_TO_COMPILE --js_output_file $BUILDPATH/lungo-$VERSION.$PACKED.js
  92. echo -e "\033[32m [BUILD]: lungo-"$VERSION.$PACKED.js"\033[0m"
  93. fi
  94. FILES_TO_COMPRESS=""
  95. echo -e "Do you wish to compress your STYLESHEETS? (Y)es or (N)o?: \c "
  96. read WISH
  97. if [[ $WISH == "Y" || $WISH == "y" ]] ; then
  98. DIR=$LUNGO_SOURCES"stylesheets/"
  99. echo -e "\033[33m [DIR]: "$DIR
  100. FILES=(base layout widgets)
  101. for file in "${FILES[@]}"
  102. do
  103. echo " - Compressing "$DIR$file".css ..."
  104. java -jar $COMPRESSOR $DIR$file".css" -o $DIR$file".min.css"
  105. FILES_TO_COMPRESS=$FILES_TO_COMPRESS" "$DIR$file".min.css"
  106. done
  107. cat $FILES_TO_COMPRESS > $BUILDPATH/lungo-$VERSION.$MINIFIED.css
  108. for file in "${FILES[@]}"
  109. do
  110. rm $LUNGO_SOURCES"stylesheets/"$file".min.css"
  111. done
  112. DIR=$LUNGO_SOURCES"stylesheets/"
  113. FILES=(default.css)
  114. echo -e "\033[33m [DIR]: "$DIR
  115. for file in "${FILES[@]}"
  116. do
  117. echo " - [THEME] "$file
  118. cp $DIR"lungo.theme."$file $BUILDPATH'lungo.theme.'$file
  119. done
  120. echo -e "\033[32m [BUILD]: lungo-"$VERSION.$MINIFIED".css\033[0m"
  121. fi
  122. echo ============================ /LUNGO COMPILER ============================