2025-02-26 16:52:15 +01:00

137 lines
3.5 KiB
Makefile

CSS_FILES=main.css
SCSS_FILES=${CSS_FILES:%.css=%.scss} _fonts.scss
TPL_DETAILS=src/templateDetails.xml
PREFIX_TARBALL=reifenscheune
RSYNC_HOST=hh.wolf-stuttgart.net
RSYNC_USER=christian
RSYNC_BASE_PATH=/srv/http/vhosts/joomla.christian-wolf.click/updates/tpl_reifenscheune
RSYNC_BASE=$(RSYNC_USER)@$(RSYNC_HOST):$(RSYNC_BASE_PATH)
PUBLIC_URL_BASE=https://joomla.christian-wolf.click/updates/tpl_reifenscheune
define FUNCTION_BUMP_FILE =
tmp=$$(mktemp) && \
echo $$(( $$(cat $(1) ) + 1 )) > $$tmp && \
mv $$tmp $(1)
endef
FUNCTION_VERSION=$$(cat build/major).$$(cat build/minor).$$(cat build/patch)
.PHONY: all
all: tarball
.PHONY: css
css:
npm run scss
.PHONY: watch_css
watch_css:
npm run scss:watch
.PHONY: bump_patch bump_minor bump_major
bump_patch:
$(call FUNCTION_BUMP_FILE,build/patch)
git add build/patch
git commit -m 'Bump patch version'
$(MAKE) git-version
$(MAKE) $(TPL_DETAILS)
bump_minor:
echo 0 > build/patch
$(call FUNCTION_BUMP_FILE,build/minor)
git add build/patch build/minor
git commit -m 'Bump minor version'
$(MAKE) git-version
$(MAKE) $(TPL_DETAILS)
bump_major:
echo 0 > build/patch
echo 0 > build/minor
$(call FUNCTION_BUMP_FILE,build/major)
git add build/patch build/minor build/major
git commit -m 'Bump major version'
$(MAKE) git-version
$(MAKE) $(TPL_DETAILS)
.PHONY: $(TPL_DETAILS)
$(TPL_DETAILS):
VERSION=$(call FUNCTION_VERSION) && \
DATE=$$(date +%Y-%m-%d) && \
sed "s@%DATE%@$$DATE@g;s@%VERSION%@$$VERSION@g" templateDetails.xml.dist > $@
.PHONY: git-version
git-version:
git tag v$(call FUNCTION_VERSION)
.PHONY: tarball
tarball: $(TPL_DETAILS) css
tar czf tarball.tar.gz -C src --exclude .gitignore .
mkdir -p res/tarballs
mv tarball.tar.gz res/tarballs/$(PREFIX_TARBALL)-$(call FUNCTION_VERSION).tar.gz
.PHONY: fetch_xml_parts
fetch_xml_parts:
mkdir -p res/xml
rsync -ptr $(RSYNC_BASE)/xml/ res/xml
.PHONY: create_xml_part
create_xml_part:
mkdir -p res/xml
VERSION=$(call FUNCTION_VERSION) && \
URL=$(PUBLIC_URL_BASE)/res/$(PREFIX_TARBALL)-$$VERSION.tar.gz && \
SHA256=$$(sha256sum res/tarballs/$(PREFIX_TARBALL)-$$VERSION.tar.gz | awk '{print $$1}') && \
SHA384=$$(sha384sum res/tarballs/$(PREFIX_TARBALL)-$$VERSION.tar.gz | awk '{print $$1}') && \
SHA512=$$(sha512sum res/tarballs/$(PREFIX_TARBALL)-$$VERSION.tar.gz | awk '{print $$1}') && \
sed "s@%VERSION%@$$VERSION@g;s@%URL%@$$URL@g;s@%SHA256%@$$SHA256@g;s@%SHA384%@$$SHA384@g;s@%SHA512%@$$SHA512@g" update.xml.dist > res/xml/part-$$VERSION.xml
.PHONY: push push-force push-git
push:
$(MAKE) prepare_push
$(MAKE) check_existing_release
$(MAKE) create_updates
$(MAKE) do_push
push-force:
$(MAKE) prepare_push
$(MAKE) create_updates
$(MAKE) do_push
push-git:
git push --tags
git push
.PHONY: prepare_push check_existing_release create_updates do_push
prepare_push:
$(MAKE) fetch_xml_parts
$(MAKE) create_xml_part
check_existing_release:
LINES=$$(rsync -nCrv --existing res/tarballs/ $(RSYNC_BASE)/res | wc -l) && \
if [ $$LINES -gt 4 ]; then \
rsync -nCrv --existing res/tarballs/ $(RSYNC_BASE)/res ; \
echo -e 'Error:\nYou are overwriting an existing release. Please check manually and remove on server if this is intended.' >&2; \
exit 1; \
fi
create_updates:
cat updates.xml.prefix res/xml/*.xml updates.xml.postfix > res/updates.xml
do_push:
rsync -ptrl res/tarballs/ $(RSYNC_BASE)/res
rsync -ptrl res/xml/ $(RSYNC_BASE)/xml/
rsync -pt res/updates.xml $(RSYNC_BASE)/updates.xml
@echo
@echo Do not forget to commit the state to git and make a tag!
@echo
.PHONY: help
help:
@echo
@echo See file README.md for valid targets
@echo