.PHONY: build
build: build-image


.PHONY: pre-commit
pre-commit: shellcheck rust-lint regenerate-entities update-index-js


.PHONY: debug
debug:
	pnpm install
	pnpm run build:debug
	pnpm run migrate
	pnpm run start


.PHONY: shellcheck
shellcheck:
	shellcheck --external-sources update.sh
	shellcheck --external-sources neko/update/*


.PHONY: rust-lint
rust-lint:
	cd packages/backend/native-utils && pnpm run lint


.PHONY: regenerate-entities
regenerate-entities:
	cd packages/backend/native-utils && \
	sea-orm-cli generate entity \
	  --output-dir='src/model/entity' \
	  --database-url='postgres://firefish:password@localhost/firefish_db'


.PHONY: update-index-js
update-index-js:
	pnpm --filter='native-utils' run build:debug
	[ -f packages/backend/native-utils/built/index.js ]
	pnpm run format
	rm neko/index.js
	cp packages/backend/native-utils/built/index.js neko/index.js


.PHONY: build-image
build-image:
	. neko/update/utils && \
	buildah build \
	  --no-cache \
	  --platform linux/amd64 \
	  --build-arg "VERSION=$$(version_ci)" \
	  --tag docker.io/naskya/firefish \
	  --tag registry.code.naskya.net/naskya/firefish \
	  --tag "registry.code.naskya.net/naskya/firefish:$$(version_ci | cut -d':' -f2)" \
	  .