Files
2025-09-16 19:52:02 +00:00

53 lines
1.7 KiB
Makefile

##### Make runs with POSIX sh
SHELL := /bin/sh
.SHELLFLAGS := -ec
# --- config (raw) ---
CONTAINER_NAME_RAW ?= voka-player
IMAGE_NAME_RAW ?= voka-player
WORKDIR_RAW ?= /usr/voka
# --- sanitized ---
CONTAINER_NAME := $(strip $(CONTAINER_NAME_RAW))
IMAGE_NAME := $(strip $(IMAGE_NAME_RAW))
WORKDIR := $(strip $(WORKDIR_RAW))
# helper: exec if running, otherwise one-off run; force legacy eslint mode
define run_in_container
@if docker ps --format '{{.Names}}' | grep -q '^$(CONTAINER_NAME)$$'; then \
echo "→ Using running container: '$(CONTAINER_NAME)'"; \
echo "+ docker exec -w '$(WORKDIR)' '$(CONTAINER_NAME)' /bin/sh -lc 'export ESLINT_USE_FLAT_CONFIG=0; $(1)'"; \
docker exec -w "$(WORKDIR)" "$(CONTAINER_NAME)" /bin/sh -lc 'export ESLINT_USE_FLAT_CONFIG=0; $(1)'; \
else \
echo "→ Running one-off container from image: '$(IMAGE_NAME)'"; \
echo "+ docker run --rm -v '$$(pwd):$(WORKDIR)' -w '$(WORKDIR)' --entrypoint /bin/sh '$(IMAGE_NAME)' -lc 'export ESLINT_USE_FLAT_CONFIG=0; $(1)'"; \
docker run --rm \
-v "$$(pwd):$(WORKDIR)" \
-w "$(WORKDIR)" \
--entrypoint /bin/sh \
"$(IMAGE_NAME)" \
-lc 'export ESLINT_USE_FLAT_CONFIG=0; $(1)'; \
fi
endef
.PHONY: lint lint-fix format lint-staged ci-check vars-debug
lint:
$(call run_in_container,npx eslint --ext .ts,.tsx src)
lint-fix:
$(call run_in_container,npx eslint --ext .ts,.tsx src --fix)
format:
$(call run_in_container,npx prettier --write .)
lint-staged:
$(call run_in_container,npx lint-staged --debug)
ci-check:
$(call run_in_container,npx eslint --ext .ts,.tsx src)
$(call run_in_container,npx prettier --check .)
vars-debug:
@printf "CONTAINER_NAME='%s'\nIMAGE_NAME='%s'\nWORKDIR='%s'\n" "$(CONTAINER_NAME)" "$(IMAGE_NAME)" "$(WORKDIR)"