Advertisement
Guest User

Untitled

a guest
May 26th, 2015
278
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.25 KB | None | 0 0
  1. # build output dirs
  2. BUILD_DIR = build
  3. JS_BUILD_DIR = $(BUILD_DIR)/js
  4. CSS_BUILD_DIR = $(BUILD_DIR)/css
  5. IMG_BUILD_DIR = $(BUILD_DIR)/img
  6. VENDOR_BUILD_DIR = $(BUILD_DIR)/vendor
  7. TESTS_BUILD_DIR = test/build
  8.  
  9. # sources
  10. TEMPLATES = $(shell find app -name '*.hbs')
  11. STYLUS = $(shell find app/css -name '*.styl')
  12. IMGS = $(shell find app/img -name '*.gif' -or -name '*.jpg' -or -name '*.png' -or -name '*.ico')
  13. COFFEE = $(shell find app -name '*.coffee')
  14. VENDOR = $(shell find vendor -name '*.js')
  15. TESTS_COFFEE = $(shell find test -name '*.coffee')
  16.  
  17. # targets
  18. JS = $(patsubst app/%.coffee, $(JS_BUILD_DIR)/%.js, $(COFFEE))
  19. TEMPLATES_HBS = $(patsubst app/%.hbs, $(JS_BUILD_DIR)/%.hbs, $(TEMPLATES))
  20. CSS = $(patsubst app/css/%.styl, $(CSS_BUILD_DIR)/%.css, $(STYLUS))
  21. IMG = $(patsubst app/img/%, $(IMG_BUILD_DIR)/%, $(IMGS))
  22. VENDOR_JS = $(patsubst vendor/%.js, $(VENDOR_BUILD_DIR)/%.js, $(VENDOR))
  23. TESTS_JS = $(patsubst test/%.coffee, $(TESTS_BUILD_DIR)/%.js, $(TESTS_COFFEE))
  24.  
  25. #production
  26. PROD_BUILD_DIR = prod-build
  27. S3_FOLDER = your-s3-bucket/assets/v1/
  28.  
  29. all: build-setup $(JS) $(CSS) $(VENDOR_JS) $(TEMPLATES_HBS) $(TESTS_JS) $(IMG)
  30.  
  31. #------- watch --------------
  32. watch:
  33. watch -q $(MAKE) all
  34.  
  35. .PHONY: watch
  36.  
  37. # Setup folders
  38. build-setup:
  39. mkdir -p $(BUILD_DIR)
  40. mkdir -p log
  41.  
  42. # Handlebars templates
  43. $(JS_BUILD_DIR)/%.hbs: app/%.hbs
  44. @echo Creating $@ $<
  45. @mkdir -p $(dir $@)
  46. cp $< $@
  47.  
  48. # Stylus
  49. $(CSS_BUILD_DIR)/%.css: app/css/%.styl
  50. mkdir -p $(CSS_BUILD_DIR)
  51. @echo "Stylus $<"
  52. @stylus $< --out $(CSS_BUILD_DIR) --use nib
  53.  
  54. # Main JS files compilation
  55. $(JS_BUILD_DIR)/%.js: app/%.coffee
  56. @echo "Coffee $< -- $@"
  57. @coffee -c -o $(@D) $<
  58.  
  59. # Vendor files
  60. $(VENDOR_BUILD_DIR)/%.js: vendor/%.js
  61. @echo Creating $@ $<
  62. @mkdir -p $(dir $@)
  63. cp $< $@
  64.  
  65. # Test JS files
  66. $(TESTS_BUILD_DIR)/%.js: test/%.coffee
  67. @echo "Tests Coffee $< -- $@"
  68. @coffee -c -o $(@D) $<
  69.  
  70. # Copy img files
  71. $(IMG_BUILD_DIR)/%: app/img/%
  72. @mkdir -p $(dir $@)
  73. @echo "IMG $@ $<"
  74. cp $< $@
  75.  
  76. production:
  77. @echo "Building production files"
  78. node app.build.js
  79. rsync -rupE $(BUILD_DIR)/img/ $(PROD_BUILD_DIR)/img/
  80.  
  81. .PHONY: production
  82.  
  83. # Usage make deploy-assets S3_FOLDER='s3bucket/foo'
  84. deploy-assets: production
  85. @echo "deploying assets $(S3_FOLDER)"
  86. s3cmd sync prod-build/ --guess-mime-type --acl-public s3://$(S3_FOLDER)
  87. .PHONY: deploy-assets
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement