diff --git a/Makefile b/Makefile index 93ed67783..78b183926 100644 --- a/Makefile +++ b/Makefile @@ -100,7 +100,9 @@ start: new-develop start-database start-memcached start-minio start-frontend sta .PHONY: compile # HELP: compile frontend and backend -compile: compile-frontend compile-backend; +compile: + $(MAKE) compile-frontend + $(MAKE) compile-backend .PHONY: lint # HELP: lint frontend and backend @@ -121,7 +123,10 @@ test: test-frontend test-backend i18n-check; %-frontend: FRADRIVE_SERVICE=frontend %-frontend: --image-build --containerized---%-frontend; ---%-frontend: --containerized-static-frontend --containerized-well-known-frontend; +--%-frontend: --containerized-static-frontend --containerized-well-known-frontend + +--start-frontend: static + npm run start # HELP(compile-frontend): compile frontend --compile-frontend: static well-known; @@ -164,6 +169,15 @@ well-known: static; %-backend: FRADRIVE_SERVICE=backend %-backend: --image-build --containerized---%-backend; +--start-backend: start.sh + DEV_PORT_HTTP=`cat $(CONTAINER_FILE) | grep 'DEV_PORT_HTTP=' | sed 's/DEV_PORT_HTTP=//'`; \ + DEV_PORT_HTTPS=`cat $(CONTAINER_FILE) | grep 'DEV_PORT_HTTPS=' | sed 's/DEV_PORT_HTTPS=//'`; \ + ./start.sh +--start-hoogle-backend: + HOOGLE_PORT=`cat $(CONTAINER_FILE) | grep 'HOOGLE_PORT=' | sed 's/HOOGLE_PORT=//'` ; \ + echo "${HOOGLE_PORT}" ; \ + stack --work-dir .stack-work-doc hoogle -- -server --local --port $${HOOGLE_PORT} + # HELP(compile-backend): compile backend --compile-backend: stack build --fast --work-dir .stack-work-build --profile --library-profiling --executable-profiling --flag uniworx:-library-only --local-bin-path $$(pwd)/bin $(stackopts) @@ -232,18 +246,20 @@ db: --image-build --containerized---db; # --containerized-%-minio: --image-build # $(MAKE) -- --image-run-$*-minio --containerized---start-minio: + MINIO_PORT=`cat $(CONTAINER_FILE) | grep 'MINIO_PORT=' | sed 's/MINIO_PORT=//'`; \ MINIO_DIR=`mktemp` ; \ ./utils/watchcontainerrun.sh "$(CONTAINER_COMMAND)" "$(CONTAINER_FILE)" "" "rm -rf $${MINIO_DIR}" & \ - CONTAINER_ID=`$(CONTAINER_BGRUN) --name fradrive.minio.$$(date +'%Y-%m-%dT%H-%M-%S') $(MINIO_IMAGE) -- server $${MINIO_DIR}` ; \ - echo "CONTAINER_ID=$${CONTAINER_ID}" >> $(CONTAINER_FILE) + CONTAINER_ID=`$(CONTAINER_BGRUN) --name fradrive.minio.$$(date +'%Y-%m-%dT%H-%M-%S') $(MINIO_IMAGE) -- server $${MINIO_DIR} --address=:$${MINIO_PORT}` ; \ + echo "CONTAINER_ID=$${CONTAINER_ID}\nMINIO_PORT=$${MINIO_PORT}\nMINIO_DIR=$${MINIO_DIR}" >> $(CONTAINER_FILE) # --containerized-%-memcached: FRADRIVE_SERVICE=memcached # --containerized-%-memcached: --image-build # $(MAKE) -- --image-run-$*-memcached --containerized---start-memcached: - ./utils/watchcontainerrun.sh "$(CONTAINER_COMMAND)" "$(CONTAINER_FILE)" & - CONTAINER_ID=`$(CONTAINER_BGRUN) $(MEMCACHED_IMAGE)` ; \ - echo "CONTAINER_ID=$${CONTAINER_ID}" >> $(CONTAINER_FILE) + MEMCACHED_PORT=`cat $(CONTAINER_FILE) | grep 'MEMCACHED_PORT=' | sed 's/MEMCACHED_PORT=//'`; \ + ./utils/watchcontainerrun.sh "$(CONTAINER_COMMAND)" "$(CONTAINER_FILE)" & \ + CONTAINER_ID=`$(CONTAINER_BGRUN) $(MEMCACHED_IMAGE) --port=$${MEMCACHED_PORT}` ; \ + echo "CONTAINER_ID=$${CONTAINER_ID}\nMEMCACHED_PORT=$${MEMCACHED_PORT}" >> $(CONTAINER_FILE) --containerized-%-database: FRADRIVE_SERVICE=database --containerized-%-database: --image-build @@ -278,26 +294,8 @@ image-rebuild-%: fi \ fi -DATE := $(shell date +'%Y-%m-%dT%H-%M-%S') -SET_DEVELOP = $(eval DEVELOP=develop/`ls -1 develop | tail -n1`) -NEW_DEVELOP = $(eval DEVELOP=develop/$$(DATE)) - -.PHONY: new-develop -new-develop: - $(NEW_DEVELOP) - mkdir -p $(DEVELOP) - $(MAKE) develop/.current -.PHONY: --develop ---develop: - if ! [[ -e develop ]]; then \ - $(MAKE) new-develop; \ - fi - $(MAKE) develop/.current -.PHONY: develop/.current -develop/.current: - $(SET_DEVELOP) - echo "$(DEVELOP)" > develop/.current +# TODO: move starts below to respective entries, or leave together? start-database: BASE_PORTS = "PGPORT=5432" start-database: SINGLETON = true @@ -332,7 +330,7 @@ start-%: --develop echo "DEV $(DEVELOP)" if [[ "$(SINGLETON)" = "true" ]]; then \ CONTAINER_FILE=$(DEVELOP)/$* ; \ - if ! [[ -e $${CONTAINER_FILE} ]]; then \ + if [[ -e $${CONTAINER_FILE} ]]; then \ >&2 echo "Another $* service is already running! Use \"make new-develop\" or \"make start\" to start a new develop instance despite currently running services." ; \ exit 1 ; \ fi \ @@ -345,29 +343,6 @@ start-%: --develop echo "$(PORTS)" | sed 's/ /\n/g' > $${CONTAINER_FILE} ; \ $(MAKE) -- --containerized---start-$* CONTAINER_FILE=$${CONTAINER_FILE} ---start-backend: start.sh - DEV_PORT_HTTP=`cat $(CONTAINER_FILE) | grep 'DEV_PORT_HTTP=' | sed 's/DEV_PORT_HTTP=//'`; \ - DEV_PORT_HTTPS=`cat $(CONTAINER_FILE) | grep 'DEV_PORT_HTTPS=' | sed 's/DEV_PORT_HTTPS=//'`; \ - ./start.sh ---start-hoogle-backend: - HOOGLE_PORT=`cat $(CONTAINER_FILE) | grep 'HOOGLE_PORT=' | sed 's/HOOGLE_PORT=//'` ; \ - echo "${HOOGLE_PORT}" ; \ - stack --work-dir .stack-work-doc hoogle -- -server --local --port $${HOOGLE_PORT} - ---start-frontend: static - npm run start - -# --start-database: docker/database/initdb.sh docker/database/pg_hba.conf docker/database/postgresql.conf docker/database/schema.sql; -# ./utils/watchrun.sh "$(CONTAINER_FILE)" - -# TODO: mkdir inside develop/$(DATE)/minio instead of mktemp -# TODO: remove dir in stop-minio -#--containerized---start-minio: -# MINIO_DIR=`mktemp` ; \ -# echo "MINIO_DIR=$${MINIO_DIR}" > $(DEVELOP)/minio ; \ -# CONTAINER_ID=`$(CONTAINER_RUN) -v $(PWD):/mnt/fradrive --file docker/minio/Dockerfile -- (server $${MINIO_DIR})` ; \ -# echo "CONTAINER_ID=$${CONTAINER_ID}" >> $(DEVELOP)/minio - .PHONY: stop # HELP: stop all currently running develop instances stop: @@ -394,6 +369,27 @@ log-%: # TODO: move targets below to better location +DATE := $(shell date +'%Y-%m-%dT%H-%M-%S') + +SET_DEVELOP = $(eval DEVELOP=develop/`ls -1 develop | tail -n1`) +NEW_DEVELOP = $(eval DEVELOP=develop/$$(DATE)) + +.PHONY: new-develop +new-develop: + $(NEW_DEVELOP) + mkdir -p $(DEVELOP) + $(MAKE) develop/.current +.PHONY: --develop +--develop: + if ! [[ -e develop ]]; then \ + $(MAKE) new-develop; \ + fi + $(MAKE) develop/.current +.PHONY: develop/.current +develop/.current: + $(SET_DEVELOP) + echo "$(DEVELOP)" > develop/.current + # Some convenience aliases: .PHONY: hoogle # HELP: alias for start-hoogle diff --git a/docker/backend/Dockerfile b/docker/backend/Dockerfile index fe2e543d9..4d7fea748 100644 --- a/docker/backend/Dockerfile +++ b/docker/backend/Dockerfile @@ -21,7 +21,7 @@ RUN mkdir -p "${PROJECT_DIR}/.stack" ENV STACK_ROOT="${PROJECT_DIR}/.stack" RUN make -- --.stack STACK_ROOT=${STACK_ROOT} IN_CONTAINER=true -# RUN stack build yesod-bin +RUN stack build yesod-bin ENV FRADRIVE_MAKE_TARGET=start-backend ENTRYPOINT make -- ${FRADRIVE_MAKE_TARGET} STACK_ROOT="${STACK_ROOT}" IN_CONTAINER=true CONTAINER_FILE="${CONTAINER_FILE}"