yavsc/contrib/Makefile

91 lines
3 KiB
Makefile
Raw Normal View History

2026-06-06 21:10:48 +01:00
APP_PROJECT_NAMES=Api Org Blogs
2026-02-28 14:22:33 +00:00
SLNDIR=..
2026-06-06 21:10:48 +01:00
include $(SLNDIR)/.env
2026-06-14 18:26:40 +01:00
include .env
2026-02-28 14:22:33 +00:00
2026-06-06 21:10:48 +01:00
generated/:
@mkdir -p $@
2026-02-28 14:22:33 +00:00
generated/yavscApi.service:
generated/yavscOrg.service:
generated/yavscBlogs.service:
2026-06-06 21:10:48 +01:00
generated/yavsc%.service: generated/ template.service $(SLNDIR)/.env
@cat template.service | APP_NAME="$*" \
2026-06-14 18:26:40 +01:00
HTTP_HOST="$(HTTP_HOST)" \
HTTP_PORT="$*_$(HTTP_PORT)" \
2026-06-19 16:18:39 +01:00
BASEAPPDIR="$(BASEAPPDIR)" \
2026-06-06 21:10:48 +01:00
APP_SYSLOG_ID="yavsc$*" \
POSTGRES_HOST="$(POSTGRES_HOST)" \
POSTGRES_PORT="$(POSTGRES_PORT)" \
POSTGRES_DB="$(POSTGRES_DB)" \
POSTGRES_USER="$(POSTGRES_USER)" \
POSTGRES_PASSWORD="$(POSTGRES_PASSWORD)" \
ANTHROPIC_API_KEY="$(ANTHROPIC_API_KEY)" \
ANTHROPIC_MAX_TOKENS="$(ANTHROPIC_MAX_TOKENS)" \
ASPNETCORE_Smtp__Host="$(ASPNETCORE_Smtp__Host)" \
ASPNETCORE_Smtp__Port="$(ASPNETCORE_Smtp__Port)" \
ASPNETCORE_Smtp__SenderName=$(ASPNETCORE_Smtp__SenderName) \
ASPNETCORE_Smtp__SenderEmail="$(ASPNETCORE_Smtp__SenderEmail)" \
ASPNETCORE_Smtp__UserName="$(ASPNETCORE_Smtp__UserName)" \
ASPNETCORE_Smtp__Password="$(ASPNETCORE_Smtp__Password)" \
2026-06-06 21:10:48 +01:00
envsubst > $@
@echo Created service file: $@
copy-services: copy-service-Org copy-service-Api copy-service-Blogs
copy-service-Org: /etc/systemd/system/yavscOrg.service
copy-service-Api: /etc/systemd/system/yavscApi.service
copy-service-Blogs: /etc/systemd/system/yavscBlogs.service
2026-06-19 02:15:13 +01:00
copy-binaries: build_publish_Org build_publish_Api build_publish_Blogs stop-services
2026-06-19 16:18:39 +01:00
@for project in $(APP_PROJECT_NAMES); \
do LCAPI=$$(echo $${project}|tr [:upper:] [:lower:]) ; \
echo "$${project} -> $${LCAPI}" ; \
BINDIR="$(SLNDIR)/src/Yavsc.$${project}/bin/$(CONFIGURATION)/$(DOTNET_FRAMEWORK)/publish" ; \
echo BINDIR: $${BINDIR} ; \
ls $${BINDIR}/appsettings* 2>&1 ; \
mv $${BINDIR}/appsettings-$${LCAPI}.json \
$${BINDIR}/appsettings-$${LCAPI}-dist.json ; \
sudo cp -a $${BINDIR}/* $(BASEAPPDIR) ; \
2026-06-06 21:10:48 +01:00
done
2026-06-19 16:18:39 +01:00
@sudo chown -R $(USER_AND_GROUP) $(BASEAPPDIR)
2026-06-06 21:10:48 +01:00
/etc/systemd/system/yavsc%.service: generated/yavsc%.service
2026-02-28 14:22:33 +00:00
sudo cp $^ $@
2026-06-06 21:10:48 +01:00
sudo chown root:root $@
2026-02-28 14:22:33 +00:00
2026-06-13 20:57:30 +01:00
build_publish_%:
2026-06-19 16:18:39 +01:00
@ASPNETCORE_ENV=$(CONFIGURATION) dotnet publish $(SLNDIR)/src/Yavsc.$*/Yavsc.$*.csproj
2026-06-13 20:57:30 +01:00
install: build_publish copy-binaries copy-services
2026-06-19 16:18:39 +01:00
@sudo systemctl daemon-reload
@for project in $(APP_PROJECT_NAMES); \
2026-06-06 21:10:48 +01:00
do \
sudo systemctl enable yavsc$${project} ; \
sudo systemctl start yavsc$${project} ; \
done
2026-06-19 02:15:13 +01:00
reinstall: copy-binaries
2026-06-19 16:18:39 +01:00
@for project in $(APP_PROJECT_NAMES); do \
2026-06-19 02:15:13 +01:00
sudo systemctl start yavsc$${project} ; done
2026-06-14 18:26:40 +01:00
stop-services:
2026-06-19 16:18:39 +01:00
@for project in $(APP_PROJECT_NAMES); \
2026-06-06 21:10:48 +01:00
do \
2026-06-14 18:26:40 +01:00
sudo systemctl stop yavsc$${project} ; \
2026-02-28 14:22:33 +00:00
done
2026-06-13 20:57:30 +01:00
$(SLNDIR)/src/Yavsc.Org/bin/$(CONFIGURATION)/$(DOTNET_FRAMEWORK)/publish: build_publish
$(SLNDIR)/src/Yavsc.Blogs/bin/$(CONFIGURATION)/$(DOTNET_FRAMEWORK)/publish: build_publish
$(SLNDIR)/src/Yavsc.Api/bin/$(CONFIGURATION)/$(DOTNET_FRAMEWORK)/publish: build_publish
2026-02-28 14:22:33 +00:00
showConfig:
@echo CONFIGURATION: $(CONFIGURATION)
2026-06-19 16:18:39 +01:00
@echo BASEAPPDIR: $(BASEAPPDIR)
2026-02-28 14:22:33 +00:00
2026-06-06 21:10:48 +01:00
clean:
2026-06-19 16:18:39 +01:00
@rm -rf generated
2026-06-06 21:10:48 +01:00
.PHONY: build_publish mep showConfig copy-service-Api copy-service-Org copy-service-Blogs reinstall clean