-
-
Save MichaelMartinez/1878220 to your computer and use it in GitHub Desktop.
Phonegap/App Engine Makefile
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
# Javascript/CSS Compressor Makefile - By Benjamin "balupton" Lupton (MIT Licenced) | |
MAKEFLAGS = --no-print-directory --always-make | |
MAKE = make $(MAKEFLAGS) | |
BUILDDIR = ./.build | |
# Tools and such | |
CLOSUREURL = http://closure-compiler.googlecode.com/files/compiler-latest.zip | |
CLOSUREDIR = $(BUILDDIR)/closure | |
CLOSUREFILE = $(CLOSUREDIR)/compiler.jar | |
YUIURL = http://yui.zenfs.com/releases/yuicompressor/yuicompressor-2.4.6.zip | |
YUIDIR = $(BUILDDIR)/yui | |
YUIFILE = $(YUIDIR)/yuicompressor-2.4.6/build/yuicompressor-2.4.6.jar | |
JSHINTURL = https://github.com/jshint/jshint/zipball/master | |
JSHINTDIR = $(BUILDDIR)/jshint | |
GAEDIR = /usr/local/bin/ | |
# Application bits live inside these walls | |
STATICDIR = ./application/static | |
ANDROIDDIR = ./android/assets/www | |
IPHONEDIR = ./iphone/everyday/www | |
BLOGDIR = ./learningblog | |
# Pretty sure this is just removing, creating, opening and updating tools | |
downloadtools: | |
rm -Rf $(BUILDDIR); | |
mkdir $(BUILDDIR) $(CLOSUREDIR) $(YUIDIR) $(JSHINTDIR); | |
cd $(CLOSUREDIR); curl -L $(CLOSUREURL) > file.zip; tar -xf file.zip; | |
cd $(YUIDIR); curl -L $(YUIURL) > file.zip; tar -xf file.zip; | |
cd $(JSHINTDIR); curl -L $(JSHINTURL) > file.zip; tar -xf file.zip; cp -R jshint-*/* .; rm -rf jshint-*/; | |
# Code Style | |
pystyle: | |
pep8 . --filename=*.py | |
pep8 ./application/*.py | |
#compass | |
compass: | |
cd ./application; compass watch; | |
# Clean, cat and compress el JavaScript & CSS | |
# Self-explanatory | |
jscss-clean: | |
rm -f $(STATICDIR)/js/libs.js \ | |
$(STATICDIR)/js/libs-min.js \ | |
$(STATICDIR)/js/all-web.js \ | |
$(STATICDIR)/js/all-web-min.js \ | |
$(STATICDIR)/css/all-web.css \ | |
$(STATICDIR)/css/all-web-min.css \ | |
$(STATICDIR)/css/all-phonegap-min* \ | |
$(STATICDIR)/js/all-phonegap* \ | |
$(STATICDIR)/js/all-phonegap-min* \ | |
$(STATICDIR)/js/phonegap-fb-android.js \ | |
$(STATICDIR)/js/phonegap-fb-ios.js \ | |
$(STATICDIR)/css/all-blog* \ | |
$(STATICDIR)/css/all-phonegap* \ | |
$(ANDROIDDIR)/js/all-phonegap-min* \ | |
$(ANDROIDDIR)/css/all-phonegap* \ | |
$(IPHONEDIR)/css/all-phonegap-min* \ | |
$(IPHONEDIR)/js/all-phonegap-min*; | |
jscss-jshint: | |
find $(STATICDIR)/js -maxdepth 1 -name "*.js" -exec $(JSHINTDIR)/env/jsc.sh {} \; | |
jscss-cat: | |
cat \ | |
$(STATICDIR)/js/libs/jsrender.js \ | |
$(STATICDIR)/js/libs/jquery.calendrical.js \ | |
$(STATICDIR)/js/libs/jquery.autosuggest.js \ | |
$(STATICDIR)/js/libs/colorslider.js \ | |
$(STATICDIR)/js/libs/jquery.tablesorter.js \ | |
$(STATICDIR)/js/libs/jquery.sparkline.js \ | |
$(STATICDIR)/js/libs/jquery.fancybox.js \ | |
$(STATICDIR)/js/libs/jquery.dateinput.js \ | |
$(STATICDIR)/js/libs/timeago.js \ | |
$(STATICDIR)/js/libs/bootstrap.js \ | |
$(STATICDIR)/js/libs/lscache.js \ | |
$(STATICDIR)/js/libs/personalize.js \ | |
$(STATICDIR)/js/libs/useragent.js \ | |
$(STATICDIR)/js/libs/stacktrace.js \ | |
$(STATICDIR)/js/libs/highcharts.js \ | |
$(STATICDIR)/js/libs/date.format.js \ | |
$(STATICDIR)/js/libs/throttle.js \ | |
> $(STATICDIR)/js/libs.js; | |
cat \ | |
$(STATICDIR)/js/util.js \ | |
$(STATICDIR)/js/data.js \ | |
$(STATICDIR)/js/models.js \ | |
$(STATICDIR)/js/shared.js \ | |
$(STATICDIR)/js/web.js \ | |
> $(STATICDIR)/js/all-web.js; | |
cat \ | |
$(STATICDIR)/css/normalize.css \ | |
$(STATICDIR)/css/autosuggest.css \ | |
$(STATICDIR)/css/calendrical.css \ | |
$(STATICDIR)/css/colorslider.css \ | |
$(STATICDIR)/css/tablesorter.css \ | |
$(STATICDIR)/css/dateinput.css \ | |
$(STATICDIR)/css/tagfield.css \ | |
$(STATICDIR)/css/fancybox.css \ | |
$(STATICDIR)/css/bootstrap.css \ | |
$(STATICDIR)/css/bootstrap-responsive.css \ | |
$(STATICDIR)/css/web.css \ | |
> $(STATICDIR)/css/all-web.css; | |
jscss-compress: | |
java -jar $(CLOSUREFILE) --js_output_file=$(STATICDIR)/js/libs-min.js --js=$(STATICDIR)/js/libs.js; | |
java -jar $(CLOSUREFILE) --js_output_file=$(STATICDIR)/js/all-web-min.js --js=$(STATICDIR)/js/all-web.js; | |
java -jar $(YUIFILE) $(STATICDIR)/css/all-web.css -o $(STATICDIR)/css/all-web-min.css; | |
mobile-jscss-cat: | |
cat \ | |
$(STATICDIR)/js/util.js \ | |
$(STATICDIR)/js/data.js \ | |
$(STATICDIR)/js/models.js \ | |
$(STATICDIR)/js/shared.js \ | |
$(STATICDIR)/js/mobile.js \ | |
$(STATICDIR)/js/libs/date.format.js \ | |
$(STATICDIR)/js/libs/jsrender.js \ | |
$(STATICDIR)/js/libs/colorslider.js \ | |
$(STATICDIR)/js/libs/bootstrap.datepicker.js \ | |
$(STATICDIR)/js/libs/timeago.js \ | |
$(STATICDIR)/js/libs/lscache.js \ | |
$(STATICDIR)/js/libs/personalize.js \ | |
> $(STATICDIR)/js/all-phonegap.js; | |
cat \ | |
$(STATICDIR)/js/libs/pg-plugin-fb-connect.js \ | |
$(STATICDIR)/js/libs/facebook_js_sdk.js \ | |
> $(STATICDIR)/js/phonegap-fb-ios.js; | |
cat \ | |
$(STATICDIR)/js/libs/facebook.js \ | |
> $(STATICDIR)/js/phonegap-fb-android.js; | |
cat \ | |
$(STATICDIR)/css/colorslider.css \ | |
$(STATICDIR)/css/dateinput.css \ | |
$(STATICDIR)/css/bootstrap.css \ | |
$(STATICDIR)/css/bootstrap-responsive.css \ | |
$(STATICDIR)/css/phonegap.css \ | |
> $(STATICDIR)/css/all-phonegap.css; | |
mobile-jscss-compress: | |
java -jar $(CLOSUREFILE) --js_output_file=$(STATICDIR)/js/all-phonegap-min.js --js=$(STATICDIR)/js/all-phonegap.js; | |
java -jar $(CLOSUREFILE) --js_output_file=$(STATICDIR)/js/libs/zepto-min.js --js=$(STATICDIR)/js/libs/zepto.js; | |
java -jar $(YUIFILE) $(STATICDIR)/css/all-phonegap.css -o $(STATICDIR)/css/all-phonegap-min.css; | |
mobile-jscss-cachebust: | |
mv $(STATICDIR)/js/all-phonegap-min.js $(STATICDIR)/js/all-phonegap-min-`date +%m%d%H%M`.js; | |
sed -i '' "s/all-phonegap-min-[0-9]*\.js/all-phonegap-min-`date +%m%d%H%M`\.js/" ./application/templates/phonegap/index.html; | |
mv $(STATICDIR)/css/all-phonegap-min.css $(STATICDIR)/css/all-phonegap-min-`date +%m%d%H%M`.css; | |
sed -i '' "s/all-phonegap-min-[0-9]*\.css/all-phonegap-min-`date +%m%d%H%M`\.css/" ./application/templates/phonegap/index.html; | |
jscss: | |
$(MAKE) jscss-clean; | |
$(MAKE) jscss-jshint; | |
$(MAKE) jscss-cat; | |
$(MAKE) jscss-compress; | |
#Totally confused in this section as to what is really goin' on | |
#It looks like this is where the magic happens, but I don't understand a lot of the syntax (i need mommy) | |
deploy-files: | |
/usr/local/bin/appcfg.py update .; | |
deploy-all: | |
sh ./checkgit.sh deploy | |
$(MAKE) jscss; | |
sh ./checkgit.sh deploy; | |
git tag -a v`date +%m%d%H%M` -m "Deployed to prod on $(shell date)"; | |
git push origin master; | |
$(MAKE) deploy-files; | |
deploy-testversion: | |
/usr/local/bin/appcfg.py update . --version=test; | |
deploy-testapp: | |
/usr/local/bin/appcfg.py update . --application=everyday-app-test --email=pamelafox@everyday.io --no_cookies; | |
deploy-androidversion: | |
git tag -a Android-backend-`date +%m%d%H%M` -m "Deployed Android backend on $(shell date)"; | |
/usr/local/bin/appcfg.py update . --version=android; | |
deploy-iphoneversion: | |
git tag -a iPhone-backend-`date +%m%d%H%M` -m "Deployed iPhone backend on $(shell date)"; | |
/usr/local/bin/appcfg.py update . --version=iphone; | |
android-jscss: | |
$(MAKE) jscss-clean; | |
$(MAKE) jscss-jshint; | |
$(MAKE) mobile-jscss-cat; | |
$(MAKE) mobile-jscss-compress; | |
python android_index.py > $(ANDROIDDIR)/index.html | |
cp $(STATICDIR)/js/all-phonegap-min.js $(ANDROIDDIR)/js/all-phonegap-min-`date +%m%d%H%M`.js; | |
cp $(STATICDIR)/css/all-phonegap-min.css $(ANDROIDDIR)/css/all-phonegap-min-`date +%m%d%H%M`.css; | |
sed -i '' "s/all-phonegap-min-[0-9]*\.js/all-phonegap-min-`date +%m%d%H%M`\.js/" $(ANDROIDDIR)/index.html | |
sed -i '' "s/all-phonegap-min-[0-9]*\.css/all-phonegap-min-`date +%m%d%H%M`\.css/" $(ANDROIDDIR)/index.html; | |
cp $(STATICDIR)/img/icon-* $(ANDROIDDIR)/css/images/.; | |
cp $(STATICDIR)/js/all-phonegap-min* $(ANDROIDDIR)/js/.; | |
cp $(STATICDIR)/css/all-phonegap-min* $(ANDROIDDIR)/css/.; | |
cp $(STATICDIR)/js/phonegap-fb-android.js $(ANDROIDDIR)/js/libs/phonegap-fb.js; | |
cp $(STATICDIR)/js/libs/zepto-min.js $(ANDROIDDIR)/js/libs/zepto-min.js; | |
android-build: | |
rm -f ./android/bin/everyday.io* | |
cd android; ant debug; | |
cd ../; | |
adb -d install -r ./android/bin/everyday.io-debug.apk | |
adb shell am start -n io.everyday.app/io.everyday.app.App | |
android-all: | |
$(MAKE) android-jscss; | |
$(MAKE) android-build; | |
android-release: | |
python android_release.py; | |
cd android; ant release; | |
iphone-all: | |
$(MAKE) jscss-clean; | |
$(MAKE) jscss-jshint; | |
$(MAKE) mobile-jscss-cat; | |
$(MAKE) mobile-jscss-compress; | |
python android_index.py > $(IPHONEDIR)/index.html | |
cp $(STATICDIR)/js/all-phonegap-min.js $(IPHONEDIR)/js/all-phonegap-min-`date +%m%d%H%M`.js; | |
cp $(STATICDIR)/css/all-phonegap-min.css $(IPHONEDIR)/css/all-phonegap-min-`date +%m%d%H%M`.css; | |
sed -i '' "s/all-phonegap-min-[0-9]*\.js/all-phonegap-min-`date +%m%d%H%M`\.js/" $(IPHONEDIR)/index.html | |
sed -i '' "s/all-phonegap-min-[0-9]*\.css/all-phonegap-min-`date +%m%d%H%M`\.css/" $(IPHONEDIR)/index.html; | |
cp $(STATICDIR)/img/icon-* $(IPHONEDIR)/css/images/.; | |
cp $(STATICDIR)/js/all-phonegap-min* $(IPHONEDIR)/js/.; | |
cp $(STATICDIR)/css/all-phonegap-min* $(IPHONEDIR)/css/.; | |
cp $(STATICDIR)/js/phonegap-fb-ios.js $(IPHONEDIR)/js/libs/phonegap-fb.js; | |
cp $(STATICDIR)/js/libs/zepto-min.js $(IPHONEDIR)/js/libs/zepto-min.js; | |
iphone-release: | |
python iphone_release.py; |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Gracias!!! I really appreciate the help. I am trying to automate the mundane optimization / build tasks even though I don't really have any "products, projects" or otherwise to use them on .... YET!!