refactoring for integration

This commit is contained in:
Paul Schneider 2026-06-06 21:10:48 +01:00
commit 070f41ac7e
48 changed files with 100 additions and 46 deletions

View file

@ -1,36 +1,80 @@
APP_PROJECTS=src/Org/Org.csproj src/Api/Api.csproj
APP_PROJECT_NAMES=Api Org Blogs
APP_PROJECTS=src/Yavsc.Org/Yavsc.Org.csproj src/Yavsc.Api/Yavsc.Api.csproj
SLNDIR=..
DESTDIR=/srv/www/yavsc/
USER_AND_GROUP=www-data:www-data
CONFIGURATION=Release
DOTNET_FRAMEWORK=net10.0
generated/%.service: template.service %.env .env
envsubst < template.service > $@
include $(SLNDIR)/.env
copy-service-Org: $(DESTDIR)/etc/systemd/system/Org.service
generated/:
@mkdir -p $@
$(DESTDIR)/etc/systemd/system/%.service: generated/%.service
generated/Api.service:
generated/Org.service:
generated/Blogs.service:
generated/yavsc%.service: generated/ template.service $(SLNDIR)/.env
@cat template.service | APP_NAME="$*" \
DESTDIR="$(DESTDIR)" \
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)" \
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
copy-binaries:
for project in $(APP_PROJECT_NAMES); \
do \
sudo cp -a $(SLNDIR)/src/Yavsc.$${project}/bin/$(CONFIGURATION)/$(DOTNET_FRAMEWORK)/publish/* $(DESTDIR) ; \
done
sudo chown -R $(USER_AND_GROUP) $(DESTDIR)
/etc/systemd/system/yavsc%.service: generated/yavsc%.service
sudo cp $^ $@
sudo chown root:root $@
sudo systemctl daemon-reload
build_publish:
for f in $(APP_PROJECTS); do \
ASPNETCORE_ENV=$(CONFIGURATION) dotnet publish $(SLNDIR)/$$f ; \
done
rmep: build_publish
sudo systemctl stop yavsc-api
sudo systemctl stop yavsc-org
for f in Api Org; do
pushd $(SLNDIR)/src/$$prj
SOURCE_DIR=bin/$(CONFIGURATION)/$(DOTNET_FRAMEWORK)/publish/
sudo cp -a $(SOURCE_DIR)/* $(DESTDIR)
sudo chown -R $(USER_AND_GROUP) $(DESTDIR)
popd
install: build_publish copy-services copy-binaries
sudo systemctl daemon-reload
for project in $(APP_PROJECT_NAMES); \
do \
sudo systemctl enable yavsc$${project} ; \
sudo systemctl start yavsc$${project} ; \
done
reinstall: build_publish copy-services copy-binaries
for project in $(APP_PROJECT_NAMES); \
do \
sudo systemctl stop yavsc$${project} ; \
done
for project in $(APP_PROJECT_NAMES); \
do \
sudo systemctl start yavsc$${project} ; \
done
sudo sync
sudo systemctl start yavsc-org
sudo systemctl start yavsc-api
showConfig:
@echo CONFIGURATION: $(CONFIGURATION)
@echo DESTDIR: $(DESTDIR)
reinstall: copy-service-Org copy-service-Api rmep
clean:
rm -rf generated
.PHONY: build_publish mep showConfig copy-service-Api copy-service-Org copy-service-Blogs reinstall clean