build(Makefile): CONTAINER_INIT and CONTAINER_CLEANUP for stack-work dir symlinking

This commit is contained in:
Sarah Vaupel 2024-11-07 17:42:54 +01:00
parent e813c72684
commit c8cb73d366
2 changed files with 30 additions and 1 deletions

View File

@ -21,6 +21,11 @@ export CF_PREFIX
export DEVELOP
export MOUNT_DIR=/mnt/fradrive
export CONTAINER_ATTACHED
export CONTAINER_INIT
export CONTAINER_CLEANUP
export STACK_INIT="./utils/stack-work-init.sh"
export STACK_CLEANUP="rm -f .stack-work.lock"
export SERVICE
export SERVICE_VARIANT ?= $(SERVICE)
@ -98,18 +103,24 @@ start:
%-backend: SERVICE=backend
%-backend: SERVICE_VARIANT=backend
%-backend: CONTAINER_CMD=localhost/fradrive/backend
%-backend: CONTAINER_INIT="$(STACK_INIT)"
%-backend: CONTAINER_CLEANUP="$(STACK_CLEANUP)"
%-backend: BASE_PORTS = "DEV_PORT_HTTP=3000" "DEV_PORT_HTTPS=3443"
.PHONY: %-uniworxdb
%-uniworxdb: SERVICE=backend
%-uniworxdb: SERVICE_VARIANT=uniworxdb
%-uniworxdb: CONTAINER_CMD=localhost/fradrive/backend
%-uniworxdb: CONTAINER_INIT="$(STACK_INIT)"
%-uniworxdb: CONTAINER_CLEANUP="$(STACK_CLEANUP)"
.PHONY: %-hoogle
%-hoogle: SERVICE=backend
%-hoogle: SERVICE_VARIANT=hoogle
%-hoogle: BASE_PORTS = "HOOGLE_PORT=8081"
%-hoogle: CONTAINER_CMD=localhost/fradrive/backend
%-hoogle: CONTAINER_INIT="$(STACK_INIT)"
%-hoogle: CONTAINER_CLEANUP="$(STACK_CLEANUP)"
--start-hoogle:
HOOGLE_PORT=`cat $(CONTAINER_FILE) | grep 'HOOGLE_PORT=' | sed 's/HOOGLE_PORT=//'` ; \
stack $(STACK_CORES) hoogle -- server --local --port $${HOOGLE_PORT}
@ -203,7 +214,7 @@ endif
--containerized: --image-build
DEVELOP=`cat develop/.current` ; \
./utils/watchcontainerrun.sh "$(CONTAINER_COMMAND)" "$(CONTAINER_FILE)" & \
./utils/watchcontainerrun.sh "$(CONTAINER_COMMAND)" "$(CONTAINER_FILE)" "$(CONTAINER_INIT)" "$(CONTAINER_CLEANUP)" & \
CONTAINER_NAME=fradrive.$(CURR_DEV).$(CONTAINER_IDENT) ; \
if ! [ -z "$(SET_CONTAINER_CMD)" ] ; \
then \

18
utils/stack-work-init.sh Executable file
View File

@ -0,0 +1,18 @@
#!/usr/bin/env bash
STACK_WORK_SRC=.stack-work-${JOB}
if [[ -e .stack-work.lock ]]; then
echo ".stack-work directory is locked (lock file exists); is another stack currently running?"
exit 1
fi
touch .stack-work.lock
rm -rf .stack-work
if [[ ! -e "$STACK_WORK_SRC" ]]; then
mkdir "$STACK_WORK_SRC"
chmod 777 "$STACK_WORK_SRC"
fi
ln -s "$STACK_WORK_SRC" .stack-work