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