Makefile.module 3.1 KB

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