139 lines
3.7 KiB
Makefile
139 lines
3.7 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: $(CSS_FILES:%=src/css/%)
|
|
|
|
src/css/%.css: ${SCSS_FILES:%=scss/%}
|
|
scss -t compact ${@:src/css%.css=scss/%.scss}:$@
|
|
|
|
.PHONY: watch_css
|
|
watch_css:
|
|
while inotifywait -e modify -e move -e create -r scss ; do $(MAKE) css; done
|
|
|
|
.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
|