diff options
Diffstat (limited to 'Makefile')
| -rw-r--r-- | Makefile | 108 |
1 files changed, 108 insertions, 0 deletions
diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..4d50541 --- /dev/null +++ b/Makefile @@ -0,0 +1,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/#" |
