-
-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathMakefile
More file actions
82 lines (71 loc) · 4.27 KB
/
Makefile
File metadata and controls
82 lines (71 loc) · 4.27 KB
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
ARTIFACT_NAME = svgo-test-suite
OXYGEN_ICONS_VERSION = 5.116
CHARM_ICONS_VERSION = 0.18.0
WIKIMEDIA_DIR = $(ARTIFACT_NAME)/wikimedia-commons
WGET_OPTIONS = --no-clobber --no-verbose --user-agent "svgo-test-suite bot/1.0 (https://github.com/svg/svgo-test-suite)"
clean:
@rm -rf dist $(ARTIFACT_NAME)
@rm -f oxygen-icons-*.tar.xz charm-icons-*.tar.gz W3C_SVG_11_TestSuite.tar.gz
fetch-w3c-test-suite:
@mkdir -p $(ARTIFACT_NAME)/W3C_SVG_11_TestSuite
@wget $(WGET_OPTIONS) https://www.w3.org/Graphics/SVG/Test/20110816/archives/W3C_SVG_11_TestSuite.tar.gz
@tar -tf W3C_SVG_11_TestSuite.tar.gz | grep -E '^svg/.+\.svgz?$$' > filter.txt
@tar -C $(ARTIFACT_NAME)/W3C_SVG_11_TestSuite -xf W3C_SVG_11_TestSuite.tar.gz -T filter.txt
@rm filter.txt
fetch-oxygen-icons:
@mkdir -p $(ARTIFACT_NAME)
@wget $(WGET_OPTIONS) https://download.kde.org/stable/frameworks/$(OXYGEN_ICONS_VERSION)/oxygen-icons-$(OXYGEN_ICONS_VERSION).0.tar.xz
@tar -tf oxygen-icons-$(OXYGEN_ICONS_VERSION).0.tar.xz | grep -E '(\.svgz?$$|/COPYING.*|/AUTHORS$$)' > filter.txt
@tar -C $(ARTIFACT_NAME) -xf oxygen-icons-$(OXYGEN_ICONS_VERSION).0.tar.xz -T filter.txt
@rm filter.txt
fetch-charm-icons:
@mkdir -p $(ARTIFACT_NAME)
@wget --no-verbose -O charm-icons-$(CHARM_ICONS_VERSION).tar.gz https://github.com/jaynewey/charm-icons/archive/refs/tags/v$(CHARM_ICONS_VERSION).tar.gz
@tar -tf charm-icons-$(CHARM_ICONS_VERSION).tar.gz | grep -E '^charm-icons-$(CHARM_ICONS_VERSION)/(.+\.svgz?|LICENSE)$$' > filter.txt
@tar -C $(ARTIFACT_NAME) -xf charm-icons-$(CHARM_ICONS_VERSION).tar.gz -T filter.txt
@rm filter.txt
fetch-wikimedia-commons:
@wget $(WGET_OPTIONS) "https://upload.wikimedia.org/wikipedia/commons/a/a1/Spain_languages-de.svg" --directory-prefix $(WIKIMEDIA_DIR)
@wget $(WGET_OPTIONS) "https://upload.wikimedia.org/wikipedia/commons/d/d1/Saariston_Rengastie_route_labels.svg" --directory-prefix $(WIKIMEDIA_DIR)
@wget $(WGET_OPTIONS) "https://upload.wikimedia.org/wikipedia/commons/5/5a/Mapa_do_Brasil_por_c%C3%B3digo_DDD.svg" --directory-prefix $(WIKIMEDIA_DIR)
@wget $(WGET_OPTIONS) "https://upload.wikimedia.org/wikipedia/commons/c/c1/Propane_flame_contours-en.svg" --directory-prefix $(WIKIMEDIA_DIR)
@wget $(WGET_OPTIONS) "https://upload.wikimedia.org/wikipedia/commons/f/ff/1_42_polytope_7-cube.svg" --directory-prefix $(WIKIMEDIA_DIR)
@wget $(WGET_OPTIONS) "https://upload.wikimedia.org/wikipedia/commons/f/fd/Germany_%28%2Bdistricts_%2Bmunicipalities%29_location_map_current.svg" --directory-prefix $(WIKIMEDIA_DIR)
@wget $(WGET_OPTIONS) "https://upload.wikimedia.org/wikipedia/commons/7/7f/Italy_-_Regions_and_provinces.svg" --directory-prefix $(WIKIMEDIA_DIR)
@wget $(WGET_OPTIONS) "https://upload.wikimedia.org/wikipedia/commons/6/60/Aegean_sea_Anatolia_and_Armenian_highlands_regions_large_topographic_basemap.svg" --directory-prefix $(WIKIMEDIA_DIR)
normalize:
@find $(ARTIFACT_NAME) -type l -delete
@find $(ARTIFACT_NAME) -type f | while read FILE; \
do \
NEW_NAME=$$(echo "$$FILE" | sed "s:[^a-zA-Z0-9./_-]:_:g"); \
if [ "$$FILE" != "$$NEW_NAME" ]; then mv "$$FILE" "$$NEW_NAME"; fi; \
done;
@find $(ARTIFACT_NAME) -type f -name "*.svgz" -exec sh -c '7z e -so {} > $$(echo {} | sed s/\.svgz$$/\.svg/)' \; -delete
@find $(ARTIFACT_NAME) -type f -exec bash -c 'if [ $$(file -bi {} | sed -e "s/.* charset=//") == 'utf-16le' ]; then echo "$$(iconv -f utf-16le -t utf-8 {})" > {}; fi' \;
deduplicate:
@find $(ARTIFACT_NAME) -type f | sort | while read FILE; \
do \
HASH=$$(md5sum $$FILE | awk "{ print \$$1 }"); \
if echo $$HASHES | grep $$HASH -q; then \
rm $$FILE; \
else \
HASHES="$$HASHES $$HASH"; \
fi; \
done;
licenses:
@if [ ! -d ".venv" ]; then python3 -m venv .venv; fi
@( \
. .venv/bin/activate; \
pip3 -q install reuse==5.1.1; \
cp -r static/* $(ARTIFACT_NAME); \
reuse --root $(ARTIFACT_NAME) download --all; \
reuse --root $(ARTIFACT_NAME) lint; \
reuse --root $(ARTIFACT_NAME) spdx -o $(ARTIFACT_NAME)/reuse.spdx; \
)
@rm $(ARTIFACT_NAME)/REUSE.toml
version:
@find $(ARTIFACT_NAME) -name '*.svg' -exec md5sum {} \; | sort | md5sum | awk '{ print $$1 }' > $(ARTIFACT_NAME)/VERSION
package:
@mkdir -p dist
@tar czf dist/$(ARTIFACT_NAME).tar.gz $(ARTIFACT_NAME)/*
build: fetch-w3c-test-suite fetch-oxygen-icons fetch-charm-icons fetch-wikimedia-commons normalize deduplicate version licenses package