Makefile.module 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. MODULE_NAME := $(notdir $(shell pwd))
  2. MODULE_DIR := modules/$(MODULE_NAME)
  3. COFFEE := ../../node_modules/.bin/coffee
  4. APP_COFFEE_FILES := $(shell find app/coffee -name '*.coffee') \
  5. $(shell [ -e test/unit/coffee ] && find test/unit/coffee -name '*.coffee') \
  6. $(shell [ -e test/acceptance/coffee ] && find test/acceptance/coffee -name '*.coffee')
  7. APP_JS_FILES := $(subst coffee,js,$(APP_COFFEE_FILES))
  8. IDE_COFFEE_FILES := $(shell [ -e public/coffee/ide ] && find public/coffee/ide -name '*.coffee')
  9. IDE_JS_FILES := $(subst public/coffee/ide,../../public/js/ide/$(MODULE_NAME),$(IDE_COFFEE_FILES))
  10. IDE_JS_FILES := $(subst coffee,js,$(IDE_JS_FILES))
  11. MAIN_COFFEE_FILES := $(shell [ -e public/coffee/main ] && find public/coffee/main -name '*.coffee')
  12. MAIN_JS_FILES := $(subst public/coffee/main,../../public/js/main/$(MODULE_NAME),$(MAIN_COFFEE_FILES))
  13. MAIN_JS_FILES := $(subst coffee,js,$(MAIN_JS_FILES))
  14. DOCKER_COMPOSE_FLAGS := -f $(MODULE_DIR)/docker-compose.yml
  15. DOCKER_COMPOSE := cd ../../ && MODULE_DIR=$(MODULE_DIR) docker-compose -f docker-compose.yml ${DOCKER_COMPOSE_FLAGS}
  16. app/js/%.js: app/coffee/%.coffee
  17. @mkdir -p $(dir $@)
  18. $(COFFEE) --compile --print $< > $@
  19. test/unit/js/%.js: test/unit/coffee/%.coffee
  20. @mkdir -p $(dir $@)
  21. $(COFFEE) --compile --print $< > $@
  22. test/acceptance/js/%.js: test/acceptance/coffee/%.coffee
  23. @mkdir -p $(dir $@)
  24. $(COFFEE) --compile --print $< > $@
  25. ../../public/js/ide/$(MODULE_NAME)/%.js: public/coffee/ide/%.coffee
  26. @mkdir -p $(dir $@)
  27. $(COFFEE) --compile --print $< > $@
  28. ../../public/js/main/$(MODULE_NAME)/%.js: public/coffee/main/%.coffee
  29. @mkdir -p $(dir $@)
  30. $(COFFEE) --compile --print $< > $@
  31. index.js: index.coffee
  32. $(COFFEE) --compile --print $< > $@
  33. compile: $(APP_JS_FILES) $(IDE_JS_FILES) $(MAIN_JS_FILES) index.js
  34. @echo > /dev/null
  35. compile_full:
  36. $(COFFEE) -o app/js -c app/coffee
  37. if [ -e test/unit/coffee ]; then $(COFFEE) -o test/unit/js -c test/unit/coffee; fi
  38. if [ -e test/acceptance/coffee ]; then $(COFFEE) -o test/acceptance/js -c test/acceptance/coffee; fi
  39. if [ -e public/coffee/ide/ ]; then $(COFFEE) -o ../../public/js/ide/$(MODULE_NAME) -c public/coffee/ide/; fi
  40. if [ -e public/coffee/main/ ]; then $(COFFEE) -o ../../public/js/main/$(MODULE_NAME) -c public/coffee/main/; fi
  41. @$(MAKE) compile
  42. test_acceptance: test_acceptance_start_service test_acceptance_run
  43. $(MAKE) test_acceptance_stop_service
  44. test_acceptance_start_service: test_acceptance_stop_service
  45. $(DOCKER_COMPOSE) up -d test_acceptance
  46. test_acceptance_stop_service:
  47. $(DOCKER_COMPOSE) stop test_acceptance redis mongo
  48. test_acceptance_run:
  49. $(DOCKER_COMPOSE) exec -T test_acceptance npm -q run test:acceptance:dir -- ${MOCHA_ARGS} $(MODULE_DIR)/test/acceptance/js