diff options
| author | EuAndreh <eu@euandre.org> | 2025-04-05 14:52:38 -0300 |
|---|---|---|
| committer | EuAndreh <eu@euandre.org> | 2025-04-05 14:52:38 -0300 |
| commit | 46222bba365f4ea2e23bab295ede7abb13cdfb1e (patch) | |
| tree | b4643ea6398950214936f220b54ae517cab1e709 /Makefile | |
| parent | Makefile: Prevent CI from trying to look at ~/.gnupg (diff) | |
| download | papo.im-46222bba365f4ea2e23bab295ede7abb13cdfb1e.tar.gz papo.im-46222bba365f4ea2e23bab295ede7abb13cdfb1e.tar.xz | |
Makefile: Update to match Makefile in euandre.org
Diffstat (limited to '')
| -rw-r--r-- | Makefile | 72 |
1 files changed, 64 insertions, 8 deletions
@@ -19,12 +19,13 @@ EXEC = ./ ## Where to store the installation. Empty by default. DESTDIR = LDLIBS = +PUBURL = public.asc .SUFFIXES: .SUFFIXES: .adoc .conf .snippets .indexentry .feedentry .sortdata .xml -.SUFFIXES: .htmlbody .htmlheader .htmlfooter .htmllisting .html +.SUFFIXES: .htmlbody .htmlheader .htmlfooter .htmllisting .html .links .caslinks .SUFFIXES: .gz .adoc.conf: @@ -57,6 +58,14 @@ LDLIBS = .conf.sortdata: mkwb sortdata $< > $@ +.adoc.links: + mkwb links $< > $@ + +.links.caslinks: + grep -v '^link:' $< | xargs -I_ sh -c '\ + printf "%s\n" "_" | sha256sum | \ + printf "%s\t%s\n" "`cut -d" " -f1`" "_"' > $@ + all: @@ -69,6 +78,8 @@ sources.html = $(sources.adoc:.adoc=.html) sources.snippets = $(sources.adoc:.adoc=.snippets) sources.snippets.gz = $(sources.adoc:.adoc=.snippets.gz) sources.conf = $(sources.adoc:.adoc=.conf) +sources.links = $(sources.adoc:.adoc=.links) +sources.caslinks = $(sources.adoc:.adoc=.caslinks) articles.indexentry = $(articles.adoc:.adoc=.indexentry) articles.feedentry = $(articles.adoc:.adoc=.feedentry) articles.sortdata = $(articles.adoc:.adoc=.sortdata) @@ -79,8 +90,11 @@ listings.html = $(listings.adoc:.adoc=.html) sources = \ $(sources.adoc) \ + $(sources.extras) \ $(images.svg) \ + src/content/favicon.ico \ src/content/style.css \ + src/content/$(PUBURL) \ dynamic-contents = \ $(sources.html) \ @@ -89,14 +103,18 @@ dynamic-contents = \ static-contents = \ $(sources.extras) \ $(images.svg) \ + src/content/favicon.ico \ src/content/style.css \ + src/content/$(PUBURL) \ src/content/.well-known/security.txt \ dynamic-contents.gz = $(dynamic-contents:=.gz) static-contents.gz = \ $(images.svg:=.gz) \ + src/content/favicon.ico.gz \ src/content/style.css.gz \ + src/content/$(PUBURL).gz \ src/content/.well-known/security.txt.gz \ contents.gz = \ @@ -124,7 +142,11 @@ derived-assets = \ $(sources.htmlbody) \ $(sources.snippets) \ $(sources.snippets.gz) \ + $(sources.links) \ + $(sources.caslinks) \ $(sources.conf) \ + src/dyn.conf \ + src/base.conf \ src/global.conf \ $(listings.htmlheader) \ $(listings.htmlfooter) \ @@ -134,6 +156,7 @@ derived-assets = \ $(articles.sortdata) \ email.txt \ baseurl.txt \ + fingerprint.txt \ expiry.txt \ src/content/security.txt \ src/content/security.txt.gz \ @@ -159,13 +182,23 @@ side-assets = \ ## Default target. Builds all artifacts required for testing ## and installation. all: $(derived-assets) -all: src/content/public.asc +all: src/content/$(PUBURL) src/content/favicon.ico $(derived-assets): Makefile deps.mk $(sources.conf): src/global.conf src/headers.txt +src/dyn.conf: email.txt baseurl.txt fingerprint.txt + printf "export url_pre='%s'\n" "`cat baseurl.txt`" > $@ + printf "export email='%s'\n" "`cat email.txt`" >> $@ + printf "export publickey='%s'\n" "`cat fingerprint.txt`" >> $@ + printf "export publickey_url='$(PUBURL)'\n" >> $@ + printf 'export sourcecode_url="$$url_pre/git/$(NAME)"\n' >> $@ + +src/base.conf: src/dyn.conf src/static.conf + cat src/dyn.conf src/static.conf > $@ + src/global.conf: src/base.conf mkwb conf -G src/base.conf > $@ @@ -177,24 +210,34 @@ $(feeds.xml): $(contents.gz): gzip -9fk $* - touch $@ + touch $@ $(sources.snippets.gz): if [ -s $* ]; then gzip -9fk `cat $*`; fi sed 's/$$/.gz/' $* > $@ -src/content/public.asc: +src/content/$(PUBURL).gz: src/content/$(PUBURL) +src/content/$(PUBURL): gpg --export --armour "`jq -r '.email' < meta.json`" > $@ +src/content/favicon.ico.gz: src/content/favicon.ico +src/content/favicon.ico: src/content/img/favicon.svg + convert src/content/img/favicon.svg $@ + email.txt: meta.json jq -r '.email' < meta.json > $@ baseurl.txt: meta.json jq -r '.baseurl' < meta.json > $@ -expiry.txt: src/content/public.asc +fingerprint.txt: src/content/$(PUBURL) + gpg --always-trust --no-keyring --show-key --with-colons \ + src/content/$(PUBURL) | \ + awk -F: '/^pub:/ { print $$5 }' > $@ + +expiry.txt: src/content/$(PUBURL) gpg --always-trust --no-keyring --show-key --with-colons \ - src/content/public.asc | \ + src/content/$(PUBURL) | \ awk -F: '/^pub:/ { print $$7 }' | \ xargs -I% date -Is -d@% > $@ @@ -208,7 +251,7 @@ src/content/.well-known/security.txt: email.txt baseurl.txt expiry.txt mkdir -p $(@D) printf 'Contact: mailto:%s\n' "`cat email.txt`" > $@ printf 'Expires: %s\n' "`cat expiry.txt`" >> $@ - printf 'Encryption: %s/public.asc\n' "`cat baseurl.txt`" >> $@ + printf 'Encryption: %s/$(PUBURL)\n' "`cat baseurl.txt`" >> $@ printf 'Preferred-Languages: en, pt, fr, eo, es\n' >> $@ src/sources.txt: @@ -230,7 +273,20 @@ sources.txt install.txt: -check-unit: +.SUFFIXES: .links-check-internal +sources.links-check-internal = $(sources.adoc:.adoc=.links-check-internal) +$(sources.links-check-internal): $(sources.html) + grep '^link:' $*.links | cut -d: -f2- | xargs -tI% test -e $(*D)/% + +check-internal: $(sources.links-check-internal) + + +check-external: + + +check-links: check-internal check-external + +check-unit: check-links integration-tests = \ |
