blob: c615552b9e0613291976b91b24482963222b88b2 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
|
# SPDX-License-Identifier: CC0-1.0
#
# Copyright (C) 2025 Woj. Kosior <koszko@koszko.org>
AWK = awk
INKSCAPE = inkscape
JQ = jq
SED = sed
ZIP = zip
default: simple-extension.zip
.PHONY: default
ICON_SIZES = 128 64 48 32 16
PNG_ICONS = $(addsuffix .png, $(addprefix icons/extension-, $(ICON_SIZES)))
$(PNG_ICONS): icons/extension.svg
command -v $(INKSCAPE)
for SIZE in $(ICON_SIZES); do \
$(INKSCAPE) -o icons/extension-$$SIZE.png -w $$SIZE -h $$SIZE \
icons/extension.svg; \
done
CONTENT_SCRIPTS = $(addprefix content/, \
anubis-bot-blocker.js \
amso-shop.js \
go-away-bot-blocker.js \
google-drive-folders.js \
janessa-garrow-home-site.js \
stephanskirche-cathedral-site.js \
vatican-news-main-page.js \
vatican-news-site.js \
)
manifest.json: manifest.json.in get-code-block.awk $(CONTENT_SCRIPTS)
command -v $(AWK)
command -v $(JQ)
FIRST=yes && \
SCRIPT_SPECS="$$( \
for SCRIPT in $(CONTENT_SCRIPTS); do \
([ $$FIRST = yes ] || printf ,) && \
FIRST=no && \
JQ_CODE="$$( \
$(AWK) --assign block_type=manifest-jq \
-f get-code-block.awk $$SCRIPT \
)" && \
printf %s ' \
{ \
"run_at": "document_end", \
"matches": [], \
"all_frames": true, \
"js": [ "'$$SCRIPT'" ] \
} \
' | \
$(JQ) --indent 4 "$$JQ_CODE" | \
$(SED) -z '\
s/\([-\]\)/\\\1/g; \
s/\n\|^/\\n /g; \
s/[\]n \+$$//; \
'; \
done && \
printf '\\n ' \
)" && \
$(SED) "s-[\$$]contentScriptSpecs[\$$]-$$SCRIPT_SPECS-g" $< > $@
background/background.js: background/background.js.in get-code-block.awk \
$(CONTENT_SCRIPTS)
command -v $(AWK)
BG_CODE="$$( \
$(AWK) --assign block_type=background-js \
-f get-code-block.awk $(CONTENT_SCRIPTS) | \
$(SED) 's/\([-\]\)/\\\1/g; s/.*/\0\\n/' | \
tr --delete '\n' \
)" && \
$(SED) "s-[\$$]contentScriptsBgCode[\$$]-$$BG_CODE-g" $< > $@
simple-extension.zip: manifest.json background/background.js \
$(CONTENT_SCRIPTS) $(PNG_ICONS)
rm -rf $@ && zip --quiet $@ $^
clean:
rm -rf simple-extension.zip manifest.json background/background.js
.PHONY: clean
|