Skip to content

Instantly share code, notes, and snippets.

@pamelafox
Created February 21, 2012 19:05
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save pamelafox/1878199 to your computer and use it in GitHub Desktop.
Save pamelafox/1878199 to your computer and use it in GitHub Desktop.
Phonegap/App Engine Makefile
# Javascript/CSS Compressor Makefile - By Benjamin "balupton" Lupton (MIT Licenced)
MAKEFLAGS = --no-print-directory --always-make
MAKE = make $(MAKEFLAGS)
BUILDDIR = ./.build
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/
STATICDIR = ./application/static
ANDROIDDIR = ./android/assets/www
IPHONEDIR = ./iphone/everyday/www
BLOGDIR = ./learningblog
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-*/;
pystyle:
pep8 . --filename=*.py
pep8 ./application/*.py
compass:
cd ./application; compass watch;
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;
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