aboutsummaryrefslogtreecommitdiffstats
path: root/Makefile
blob: 4d50541e65ea86fafc3cccda50e4a6578110ebf6 (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
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
# Copyright (C) 2023 Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program.  If not, see <https://www.gnu.org/licenses/>.

CURL ?= curl
BLOG_URL ?= https://blog.replicant.us/page
CONVERT ?= guix shell python python-beautifulsoup4 python-html2text -- python3 convert.py

SENTINEL =

.PHONY: all build help serve

PAGES = \
	replicant_blog_page_7.html \
	replicant_blog_page_6.html \
	replicant_blog_page_5.html \
	replicant_blog_page_4.html \
	replicant_blog_page_3.html \
	replicant_blog_page_2.html \
	replicant_blog_page_1.html \
	replicant_blog_page_0.html \
	$(SENTINEL)

all: help

replicant_blog_page_%.html:
	$(CURL) $(BLOG_URL)/$(subst replicant_blog_page_,,$*)/ -o $@

links.txt: $(PAGES)
	@echo -n '' > $@
	@for f in $(PAGES) ; do \
		echo "Processing $$f" > /dev/stderr ; \
		guix shell -C python python-beautifulsoup4 -- \
		python3 get_links.py $$f >> $@ ; \
	done

html: # do not depend on links.txt as a human is supposed to review it manually
	mkdir -p $@ && \
	for url in `cat links.txt` ; do \
		if [ ! -f html/`echo "$${url}" | \
			sed 's#https://blog.replicant.us/##' | \
			sed 's#/$$##'| \
			sed 's#/#_#g'`.html ] ; then \
			curl "$${url}" -o \
			html/`echo "$${url}" | \
				sed 's#https://blog.replicant.us/##' | \
				sed 's#/$$##'| \
				sed 's#/#_#g'`.html ; \
		fi \
	done
	# TODO: erase html directory if that fails for some reason.

markdown: html
	mkdir -p $@ && \
	for url in `cat links.txt` ; do \
		echo "$${url}" | \
			sed 's#https://blog.replicant.us/##' | \
			sed 's#/$$##' ; \
		$(CONVERT) \
			html/`echo "$${url}" | \
				sed 's#https://blog.replicant.us/##' | \
				sed 's#/$$##'| \
				sed 's#/#_#g'`.html \
			> \
			markdown/`echo "$${url}" | \
				sed 's#https://blog.replicant.us/##' | \
				sed 's#/$$##'| \
				sed 's#/#_#g'`.md ; \
	done

build:
	haunt build

help:
	@printf "%s\n\t%s\n\t%s\n\t%s\n\t%s\n" \
	"Available commands:" \
	"links.txt # Create links.txt file with blog post links." \
	"          # For security reasons This file needs to be manually " \
	"          # reviewed manually before usage." \
	"html      # create html pages. To be done after reviewing links.txt." \

serve:
	haunt serve -w -p $(HAUNT_PORT)

website.tar.gz: build
	tar \
		--exclude-vcs \
		--format=gnu \
		--owner=0 --group=0 --numeric-owner \
		--sort=name \
		-czf \
		website.tar.gz \
		site \
		pages/img \
		index.html \
		--transform="s#^site#web#" \
		--transform="s#^pages/img/#web/img/#"