]> git.somenet.org - somenet/www-somenet-org.git/blob - Makefile
Pelican base page setup with base-content + theme.
[somenet/www-somenet-org.git] / Makefile
1 PY?=python3
2 PELICAN?=pelican
3 PELICANOPTS=
4
5 BASEDIR=$(CURDIR)
6 INPUTDIR=$(BASEDIR)/content
7 OUTPUTDIR=$(BASEDIR)/output
8 CONFFILE=$(BASEDIR)/pelicanconf.py
9 PUBLISHCONF=$(BASEDIR)/publishconf.py
10
11 DEBUG ?= 0
12 ifeq ($(DEBUG), 1)
13         PELICANOPTS += -D
14 endif
15
16 RELATIVE ?= 0
17 ifeq ($(RELATIVE), 1)
18         PELICANOPTS += --relative-urls
19 endif
20
21 help:
22         @echo 'Makefile for a pelican Web site                                           '
23         @echo '                                                                          '
24         @echo 'Usage:                                                                    '
25         @echo '   make html                           (re)generate the web site          '
26         @echo '   make clean                          remove the generated files         '
27         @echo '   make regenerate                     regenerate files upon modification '
28         @echo '   make publish                        generate using production settings '
29         @echo '   make serve [PORT=8000]              serve site at http://localhost:8000'
30         @echo '   make serve-global [SERVER=0.0.0.0]  serve (as root) to $(SERVER):80    '
31         @echo '   make devserver [PORT=8000]          serve and regenerate together      '
32         @echo '   make git-publish                    upload the web site via git        '
33         @echo '   make rsync-publish                  upload the web site via rsync+ssh  '
34         @echo '                                                                          '
35         @echo 'Set the DEBUG variable to 1 to enable debugging, e.g. make DEBUG=1 html   '
36         @echo 'Set the RELATIVE variable to 1 to enable relative urls                    '
37         @echo '                                                                          '
38
39 html:
40         $(PELICAN) $(INPUTDIR) -o $(OUTPUTDIR) -s $(CONFFILE) $(PELICANOPTS)
41
42 clean:
43         git worktree remove -f output || true
44         rm -rf __pycache__ output
45
46 regenerate:
47         $(PELICAN) -r $(INPUTDIR) -o $(OUTPUTDIR) -s $(CONFFILE) $(PELICANOPTS)
48
49 serve:
50 ifdef PORT
51         $(PELICAN) -l $(INPUTDIR) -o $(OUTPUTDIR) -s $(CONFFILE) $(PELICANOPTS) -p $(PORT)
52 else
53         $(PELICAN) -l $(INPUTDIR) -o $(OUTPUTDIR) -s $(CONFFILE) $(PELICANOPTS)
54 endif
55
56 serve-global:
57 ifdef SERVER
58         $(PELICAN) -l $(INPUTDIR) -o $(OUTPUTDIR) -s $(CONFFILE) $(PELICANOPTS) -p $(PORT) -b $(SERVER)
59 else
60         $(PELICAN) -l $(INPUTDIR) -o $(OUTPUTDIR) -s $(CONFFILE) $(PELICANOPTS) -p $(PORT) -b 0.0.0.0
61 endif
62
63
64 devserver:
65 ifdef PORT
66         $(PELICAN) -lr $(INPUTDIR) -o $(OUTPUTDIR) -s $(CONFFILE) $(PELICANOPTS) -p $(PORT)
67 else
68         $(PELICAN) -lr $(INPUTDIR) -o $(OUTPUTDIR) -s $(CONFFILE) $(PELICANOPTS)
69 endif
70
71 publish:
72         $(PELICAN) $(INPUTDIR) -o $(OUTPUTDIR) -s $(PUBLISHCONF) $(PELICANOPTS)
73
74 git-publish: clean
75         git log output -- >/dev/null 2>&1 || git checkout --orphan output
76         git log output -- >/dev/null 2>&1 || git commit --allow-empty -m "empty output Branch" --only
77         git checkout master
78         git worktree add -f $(OUTPUTDIR) output
79         $(PELICAN) $(INPUTDIR) -o $(OUTPUTDIR) -s $(PUBLISHCONF) $(PELICANOPTS)
80         cd $(OUTPUTDIR) && pwd && git add . && git commit -m "make git-publish build `date -Isec`" --only . && git push --force --set-upstream origin output || true
81
82 #rsync-publish: clean
83 #       $(PELICAN) $(INPUTDIR) -o $(OUTPUTDIR) -s $(PUBLISHCONF) $(PELICANOPTS)
84 #       rsync -e "ssh -p 22" -rvcP --chmod=a=rX --delete $(OUTPUTDIR)/ user@example.com:/var/www/vhost/
85
86 install-req:
87         pip3 install --user --upgrade -r requirements.txt
88
89 .PHONY: html help clean regenerate serve serve-global devserver publish rsync_upload install-req