92 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			Makefile
		
	
	
	
	
	
			
		
		
	
	
			92 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			Makefile
		
	
	
	
	
	
| SITE_NAME 		= ktyl.dev
 | |
| # configured in ~/.ssh/config
 | |
| HOST			= pluto
 | |
| # a script on the remote server to move it on arrival
 | |
| REMOTE_SCRIPT	= ./deploy-$(SITE_NAME)
 | |
| 
 | |
| SRC_DIR			= src
 | |
| IMG_DIR			= img
 | |
| OUT_DIR			= site
 | |
| 
 | |
| ROOT_DIR		= $(SRC_DIR)/root
 | |
| 
 | |
| BLOG_SRC_DIR	= blog/blogs
 | |
| BLOG_OUT_DIR	= $(OUT_DIR)/blog
 | |
| BLOG_TMP_DIR	= .blogtmp
 | |
| 
 | |
| PAGES 			= $(shell find $(ROOT_DIR) -wholename "$(ROOT_DIR)*.html")
 | |
| STYLES			= $(shell find $(ROOT_DIR) -wholename "$(ROOT_DIR)*.css")
 | |
| BLOG_PAGES		= $(shell find $(BLOG_SRC_DIR) -wholename "$(BLOG_SRC_DIR)*.md")
 | |
| BLOG_IMAGES		= $(shell find $(BLOG_SRC_DIR) -wholename "$(BLOG_SRC_DIR)*.png" -o -wholename "$(BLOG_SRC_DIR)*.jpg")
 | |
| 
 | |
| IMAGES			= $(shell find $(IMG_DIR) -wholename "$(IMG_DIR)/*.png")
 | |
| 
 | |
| HTML_INCLUDES 	= $(shell find $(SRC_DIR)/inc_html -name *.html)
 | |
| CSS_INCLUDES	= $(shell find $(SRC_DIR)/inc_css -name *.css)
 | |
| 
 | |
| BLOG_INDEX 			= $(OUT_DIR)/blog.html
 | |
| BLOG_RSS			= $(BLOG_OUT_DIR)/index.xml
 | |
| BLOG_INDEX_LINKS 	= $(BLOG_TMP_DIR)/blogindexlinks.html
 | |
| BLOG_TARGETS		= $(BLOG_PAGES:$(BLOG_SRC_DIR)/%.md=$(BLOG_OUT_DIR)/%.html)
 | |
| BLOG_PNG_TARGETS	= $(BLOG_IMAGES:$(BLOG_SRC_DIR)/%.png=$(BLOG_OUT_DIR)/%.png)
 | |
| BLOG_JPG_TARGETS	= $(BLOG_IMAGES:$(BLOG_SRC_DIR)/%.jpg=$(BLOG_OUT_DIR)/%.jpg)
 | |
| 
 | |
| HTML_TARGETS 	= $(PAGES:$(ROOT_DIR)/%.html=$(OUT_DIR)/%.html)
 | |
| CSS_TARGETS 	= $(STYLES:$(ROOT_DIR)/%.css=$(OUT_DIR)/%.css)
 | |
| PNG_TARGETS		= $(IMG_DIR)/%.png=$(OUT_DIR)/%.png
 | |
| 
 | |
| 
 | |
| all: html blog | $(OUT_DIR)
 | |
| 
 | |
| html: $(HTML_TARGETS) $(CSS_TARGETS) | $(OUT_DIR)
 | |
| 	cp $(IMG_DIR)/*.png $(OUT_DIR)/
 | |
| 	cp $(IMG_DIR)/*.jpg $(OUT_DIR)/
 | |
| 
 | |
| deploy: site
 | |
| 	cp -r $(OUT_DIR) $(SITE_NAME)
 | |
| 	rsync -rP $(SITE_NAME) $(HOST):~
 | |
| 	rm -r $(SITE_NAME)
 | |
| 	ssh $(HOST) "sudo $(REMOTE_SCRIPT)"
 | |
| 
 | |
| $(OUT_DIR)/%.html: $(ROOT_DIR)/%.html $(HTML_INCLUDES) $(BLOG_INDEX_LINKS) | $(OUT_DIR)
 | |
| 	python ppp/ppp.py $< $(HTML_INCLUDES) $(BLOG_INDEX_LINKS) > $@
 | |
| 
 | |
| $(OUT_DIR)/%.css: $(ROOT_DIR)/%.css $(CSS_INCLUDES) | $(OUT_DIR)
 | |
| 	python ppp/ppp.py $< $(CSS_INCLUDES) > $@
 | |
| 
 | |
| $(OUT_DIR):
 | |
| 	mkdir -p $@
 | |
| 
 | |
| $(BLOG_OUT_DIR)/%.png: $(BLOG_SRC_DIR)/%.png
 | |
| 	cp $< $@
 | |
| 
 | |
| $(BLOG_OUT_DIR)/%.jpg: $(BLOG_SRC_DIR)/%.jpg
 | |
| 	cp $< $@
 | |
| 
 | |
| blog: $(BLOG_TARGETS) $(BLOG_PNG_TARGETS) $(BLOG_JPG_TARGETS) $(BLOG_RSS) | $(BLOG_TMP_DIR)
 | |
| 
 | |
| $(BLOG_RSS): $(BLOG_PAGES)
 | |
| 	pipenv run python scripts/mkblogrss.py $(BLOG_PAGES) > $@
 | |
| 
 | |
| $(BLOG_INDEX_LINKS): $(BLOG_TARGETS) | $(BLOG_TMP_DIR)
 | |
| 	pipenv run python scripts/mkblogindex.py $(BLOG_TARGETS) > $@
 | |
| 
 | |
| $(BLOG_OUT_DIR)/%.html: $(BLOG_OUT_DIR)/%.html.tmp $(HTML_INCLUDES) $(CSS_TARGETS)
 | |
| 	python ppp/ppp.py $< $(HTML_INCLUDES) > $@
 | |
| 	cp $(CSS_TARGETS) `dirname $@`
 | |
| 	rm $<
 | |
| 
 | |
| $(BLOG_OUT_DIR)/%.html.tmp: $(BLOG_SRC_DIR)/%.md | $(BLOG_TMP_DIR) 
 | |
| 	pipenv run python scripts/mkblog.py $< $@
 | |
| 
 | |
| $(BLOG_OUT_DIR): | $(OUT_DIR)
 | |
| 	mkdir -p $@
 | |
| 
 | |
| $(BLOG_TMP_DIR):
 | |
| 	mkdir -p $@
 | |
| 
 | |
| clean:
 | |
| 	rm -rf $(OUT_DIR) $(BLOG_TMP_DIR)
 | |
| 
 | |
| .PHONY: site
 |