]> Lady’s Gitweb - WWW/blobdiff - GNUmakefile
Use ⛩️📰 书社 to build the site
[WWW] / GNUmakefile
index 93fb66e265fea26aa8be27b1fb799638ec38ff9e..b40c2091f0c574e620ac32c5dee328fe364cf5fa 100644 (file)
@@ -1,6 +1,6 @@
 SHELL = /bin/sh
 
-# © 2023 Lady [@ Lady’s Computer].
+# © 2023–2024 Lady [@ Lady’s Computer].
 #
 # This Source Code Form is subject to the terms of the Mozilla Public
 # License, v. 2.0. If a copy of the MPL was not distributed with this
@@ -19,10 +19,19 @@ DESTINATION_PATH = lady/www
 DESTINATION = $(DESTINATION_HOST):$(DESTINATION_PATH)
 DESTINATION_CHARSET = utf-8
 
+GIT_FORCE =
+
+SHUSHE = .shushe
+SHUSHE_OPTIONS = 'INCLUDEDIR=sources/INCLUDE' 'TRANSFORMS=$(wildcard transforms/*.xslt) $(wildcard $(SHUSHE)/transforms/*.xslt)'
+
 build:
-# Put any necessary build scripts in here!
+       rm -rf ./public
+       @$(MAKE) -f $(SHUSHE)/GNUmakefile install $(SHUSHE_OPTIONS)
        touch .grass
 
+list:
+       @$(MAKE) -f $(SHUSHE)/GNUmakefile list $(SHUSHE_OPTIONS)
+
 ensure-build:
        @if [ ! -f .grass ]; then echo 'Error: The website has not been built yet!' >&2; echo 'Run `make` before syncing.' >&2; exit 1; fi
        @if buildtime=$$(stat -f '%m' .grass) && committime=$$(git log -1 --format='%ct' | awk '{print $$NF}') && [ "$$committime" -gt "$$buildtime" ]; then echo 'Error: A commit was made after the last build!' >&2; echo 'Run `make` before syncing.' >&2; exit 1; fi
@@ -34,11 +43,11 @@ ensure-branch-up-to-date:
 ensure-clean:
        @if output=$$(git status --porcelain) && [ ! -z "$$output" ]; then echo 'Error: There are uncommitted changes!' >&2; echo 'Commit changes and run `make` before syncing.' >&2; exit 1; fi
 
-dry-sync: ensure-clean ensure-branch-up-to-date ensure-build
-       $(RSYNC) $(RSYNC_FLAGS) --del --dry-run --filter=". $(RSYNC_FILTER)" --iconv=$(SOURCE_CHARSET),$(DESTINATION_CHARSET) $(RSYNC_OPTIONS) . $(DESTINATION)
+dry-sync: ensure-clean$(if $(GIT_FORCE),, ensure-branch-up-to-date) ensure-build
+       cd public && $(RSYNC) $(RSYNC_FLAGS) --del --dry-run --filter=". ../$(RSYNC_FILTER)" --iconv=$(SOURCE_CHARSET),$(DESTINATION_CHARSET) $(RSYNC_OPTIONS) . $(DESTINATION)
 
-sync: ensure-clean ensure-branch-up-to-date ensure-build
-       $(RSYNC) $(RSYNC_FLAGS) --del --filter=". $(RSYNC_FILTER)" --iconv=$(SOURCE_CHARSET),$(DESTINATION_CHARSET) $(RSYNC_OPTIONS) . $(DESTINATION)
-       git push --force
+sync: ensure-clean$(if $(GIT_FORCE),, ensure-branch-up-to-date) ensure-build
+       cd public && $(RSYNC) $(RSYNC_FLAGS) --del --filter=". ../$(RSYNC_FILTER)" --iconv=$(SOURCE_CHARSET),$(DESTINATION_CHARSET) $(RSYNC_OPTIONS) . $(DESTINATION)
+       git push$(if $(GIT_FORCE), --force,)
 
 .PHONY: build dry-sync ensure-branch-up-to-date ensure-build ensure-clean sync;
This page took 0.053096 seconds and 4 git commands to generate.