firefish/Makefile

87 lines
2.3 KiB
Makefile
Raw Normal View History

PACKAGE_JSONS := package.json
PACKAGE_JSONS += packages/backend/package.json
PACKAGE_JSONS += packages/client/package.json
PACKAGE_JSONS += packages/firefish-js/package.json
PACKAGE_JSONS += packages/megalodon/package.json
PACKAGE_JSONS += packages/sw/package.json
RUST_DIR := packages/backend/native-utils
CARGO_TOMLS := $(RUST_DIR)/Cargo.toml
CARGO_TOMLS += $(RUST_DIR)/migration/Cargo.toml
2024-01-14 19:48:41 +09:00
.PHONY: build
2024-01-14 20:15:05 +09:00
build: build-image
2024-01-14 19:48:41 +09:00
.PHONY: pre-commit
pre-commit: shellcheck pnpm-lock.yaml $(RUST_DIR)/Cargo.lock regenerate-entities update-index-js rust-lint
pnpm-lock.yaml: pnpm-workspace.yaml $(PACKAGE_JSONS)
pnpm install
$(RUST_DIR)/Cargo.lock: $(CARGO_TOMLS)
cd $(RUST_DIR) && cargo update
2024-01-14 19:48:41 +09:00
.PHONY: debug
debug:
pnpm install
pnpm run build:debug
pnpm run migrate
pnpm run start
2024-01-10 12:08:13 +09:00
.PHONY: shellcheck
shellcheck:
shellcheck --external-sources update.sh
2024-01-14 20:15:05 +09:00
shellcheck --external-sources neko/update/*
2024-01-14 19:48:41 +09:00
.PHONY: rust-lint
rust-lint:
cd $(RUST_DIR) && pnpm run lint
2024-01-14 19:48:41 +09:00
.PHONY: regenerate-entities
regenerate-entities:
pnpm run migrate
cd $(RUST_DIR) && \
2024-01-14 19:48:41 +09:00
sea-orm-cli generate entity \
--output-dir='src/model/entity' \
--database-url='postgres://firefish:password@localhost:25432/firefish_db' \
--date-time-crate='chrono' \
--model-extra-attributes='NAPI_EXTRA_ATTR_PLACEHOLDER' && \
for file in src/model/entity/*; do \
base=$$(basename -- "$${file}"); \
jsname=$$(printf '%s\n' "$${base%.*}" | perl -pe 's/(^|_)./uc($$&)/ge;s/_//g'); \
attribute=$$(printf 'napi_derive::napi(object, js_name = "%s")' "$${jsname}"); \
sed -i "s/NAPI_EXTRA_ATTR_PLACEHOLDER/$${attribute}/" "$${file}"; \
done
sed -i 's/#\[derive(Debug, Clone, PartialEq, Eq, EnumIter, DeriveActiveEnum)\]/#[derive(Debug, PartialEq, Eq, EnumIter, DeriveActiveEnum)]\n#[napi_derive::napi]/' \
$(RUST_DIR)/src/model/entity/sea_orm_active_enums.rs
2024-01-14 19:48:41 +09:00
2024-01-20 08:33:18 +09:00
2024-01-14 20:15:05 +09:00
.PHONY: update-index-js
update-index-js:
pnpm --filter='native-utils' run build:debug
[ -f $(RUST_DIR)/built/index.js ]
2024-01-14 20:15:05 +09:00
pnpm run format
rm neko/index.js
cp $(RUST_DIR)/built/index.js neko/index.js
2024-01-14 20:15:05 +09:00
.PHONY: build-image
2024-01-14 21:57:23 +09:00
build-image:
2024-01-07 07:02:43 +09:00
. 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)" \
.