dayoff/Makefile

62 lines
1.2 KiB
Makefile

ifneq ($(STAGE), prod)
PATH := tools:$(PATH)
endif
APP_NAME := dayoff
ENTRY_POINT = ./src/$(APP_NAME).cr
.PHONY: build-docker
build-docker:
docker build --file docker/Dockerfile.dev --tag $(APP_NAME)-crystal --tag anwinged/$(APP_NAME)-crystal .
install-shards:
shards install
update-shards:
shards update
.PHONY: install
install: build-docker install-shards install-assets build-assets
.PHONY: build
build:
mkdir -p build
crystal build $(ENTRY_POINT) --release --no-debug --static -o build/$(APP_NAME)
.PHONY: format
format:
crystal tool format ./src ./spec
install-assets:
nodejs npm install
build-assets:
rm -rf ./public/assets
nodejs npm run-script build
watch-assets:
rm -rf ./public/assets
nodejs npm run-script watch
format-assets:
nodejs npm run-script format-webpack || true
nodejs npm run-script format-js || true
nodejs npm run-script format-vue || true
.PHONY: run
run: format
crystal run $(ENTRY_POINT)
.PHONY: run-server
run-server: format
mkdir -p ./var/data
BASE_PATH="./var/data" server run $(ENTRY_POINT)
.PHONY: spec
spec: format
crystal spec --warnings all --error-on-warnings --error-trace
.PHONY: ameba
ameba:
ameba src/ || true