]> Lady’s Gitweb - WWW/commitdiff
Use 👥📤 Yseme for syncing
authorLady <redacted>
Sun, 21 Jan 2024 01:51:36 +0000 (20:51 -0500)
committerLady <redacted>
Sun, 21 Jan 2024 01:51:36 +0000 (20:51 -0500)
.gitmodules
.yseme [new submodule]
GNUmakefile

index 0355c5d0a0c540d75ce6e0edf7c5e5dce114da97..d7f81d4f786c2df19fe9d525ec4e679029df6cb8 100644 (file)
@@ -1,3 +1,6 @@
 [submodule "书社"]
        path = .shushe
        url = https://git.ladys.computer/Shushe.git
+[submodule "Yseme"]
+       path = .yseme
+       url = https://git.ladys.computer/Yseme.git
diff --git a/.yseme b/.yseme
new file mode 160000 (submodule)
index 0000000..11d9fdb
--- /dev/null
+++ b/.yseme
@@ -0,0 +1 @@
+Subproject commit 11d9fdbb76bac028c834c84521fcc45c6a95ea6e
index b40c2091f0c574e620ac32c5dee328fe364cf5fa..275f6cadb96350059160f9133752063b0e4b9b54 100644 (file)
@@ -6,48 +6,31 @@ SHELL = /bin/sh
 # License, v. 2.0. If a copy of the MPL was not distributed with this
 # file, You can obtain one at https://mozilla.org/MPL/2.0/.
 
-# This Makefile requires rsync 3 or newer.
-RSYNC = rsync
-RSYNC_FLAGS = -Oclmrtvz
-RSYNC_OPTIONS =
-RSYNC_FILTER = .rsync-filter
+SHUSHE := .shushe
+SHUSHE_OPTIONS := INCLUDEDIR='sources/INCLUDE' TRANSFORMS='$(wildcard transforms/*.xslt) $(wildcard $(SHUSHE)/transforms/*.xslt)'
 
-SOURCE_CHARSET = utf-8-mac
+YSEME := .yseme
+YSEME_OPTIONS := DESTDIR=public SERVERPATH=lady/www
 
-DESTINATION_HOST = computer
-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:
+build: $(SHUSHE)/GNUmakefile
        rm -rf ./public
-       @$(MAKE) -f $(SHUSHE)/GNUmakefile install $(SHUSHE_OPTIONS)
+       @$(MAKE) -f $< 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
+list: $(SHUSHE)/GNUmakefile
+       @$(MAKE) -f $< $@ $(SHUSHE_OPTIONS)
 
-ensure-branch-up-to-date:
-       git fetch
-       @if ! git merge-base --is-ancestor @{u} HEAD; then echo 'Error: This branch is currently out‐of‐date!' >&2; echo 'Pull in changes with `git pull` before syncing.' >&2; exit 1; fi
+$(SHUSHE)/GNUmakefile $(YSEME)/GNUmakefile: %/GNUmakefile:
+       git submodule update --init $*
 
-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
+GNUmakefile: $(SHUSHE)/GNUmakefile $(YSEME)/GNUmakefile
+       touch GNUmakefile
 
-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)
+ifneq ($(wildcard $(YSEME)/GNUmakefile),)
+YSEME_TARGETS := $(shell sed '/^\.PHONY[ :]/!d;/^\.PHONY[ :]/s/ *;.*//;/^\.PHONY[ :]/s/\.PHONY.*: *//' < $(YSEME)/GNUmakefile)
 
-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,)
+$(YSEME_TARGETS): $(YSEME)/GNUmakefile
+       @$(MAKE) -f $< $@ $(YSEME_OPTIONS)
+endif
 
-.PHONY: build dry-sync ensure-branch-up-to-date ensure-build ensure-clean sync;
+.PHONY: build list $(YSEME_TARGETS);
This page took 0.02749 seconds and 4 git commands to generate.