forked from github/pelican
- if the output directory does not exist the 'make clean' command fails, which also means that the 'make html' command which would otherwise create the output directory also fails without generating the output
76 lines
2.6 KiB
Makefile
76 lines
2.6 KiB
Makefile
PELICAN=$pelican
|
|
PELICANOPTS=$pelicanopts
|
|
|
|
BASEDIR=$$(CURDIR)
|
|
INPUTDIR=$$(BASEDIR)/content
|
|
OUTPUTDIR=$$(BASEDIR)/output
|
|
CONFFILE=$$(BASEDIR)/pelicanconf.py
|
|
PUBLISHCONF=$$(BASEDIR)/publishconf.py
|
|
|
|
FTP_HOST=$ftp_host
|
|
FTP_USER=$ftp_user
|
|
FTP_TARGET_DIR=$ftp_target_dir
|
|
|
|
SSH_HOST=$ssh_host
|
|
SSH_PORT=$ssh_port
|
|
SSH_USER=$ssh_user
|
|
SSH_TARGET_DIR=$ssh_target_dir
|
|
|
|
DROPBOX_DIR=$dropbox_dir
|
|
|
|
help:
|
|
@echo 'Makefile for a pelican Web site '
|
|
@echo ' '
|
|
@echo 'Usage: '
|
|
@echo ' make html (re)generate the web site '
|
|
@echo ' make clean remove the generated files '
|
|
@echo ' make regenerate regenerate files upon modification '
|
|
@echo ' make publish generate using production settings '
|
|
@echo ' make serve serve site at http://localhost:8000'
|
|
@echo ' make devserver start/restart develop_server.sh '
|
|
@echo ' ssh_upload upload the web site via SSH '
|
|
@echo ' rsync_upload upload the web site via rsync+ssh '
|
|
@echo ' dropbox_upload upload the web site via Dropbox '
|
|
@echo ' ftp_upload upload the web site via FTP '
|
|
@echo ' github upload the web site via gh-pages '
|
|
@echo ' '
|
|
|
|
|
|
html: clean $$(OUTPUTDIR)/index.html
|
|
@echo 'Done'
|
|
|
|
$$(OUTPUTDIR)/%.html:
|
|
$$(PELICAN) $$(INPUTDIR) -o $$(OUTPUTDIR) -s $$(CONFFILE) $$(PELICANOPTS)
|
|
|
|
clean:
|
|
[ ! -d $$(OUTPUTDIR) ] || find $$(OUTPUTDIR) -mindepth 1 -delete
|
|
|
|
regenerate: clean
|
|
$$(PELICAN) -r $$(INPUTDIR) -o $$(OUTPUTDIR) -s $$(CONFFILE) $$(PELICANOPTS)
|
|
|
|
serve:
|
|
cd $$(OUTPUTDIR) && python -m pelican.server
|
|
|
|
devserver:
|
|
$$(BASEDIR)/develop_server.sh restart
|
|
|
|
publish:
|
|
$$(PELICAN) $$(INPUTDIR) -o $$(OUTPUTDIR) -s $$(PUBLISHCONF) $$(PELICANOPTS)
|
|
|
|
ssh_upload: publish
|
|
scp -P $$(SSH_PORT) -r $$(OUTPUTDIR)/* $$(SSH_USER)@$$(SSH_HOST):$$(SSH_TARGET_DIR)
|
|
|
|
rsync_upload: publish
|
|
rsync -e "ssh -p $(SSH_PORT)" -P -rvz --delete $(OUTPUTDIR) $(SSH_USER)@$(SSH_HOST):$(SSH_TARGET_DIR)
|
|
|
|
dropbox_upload: publish
|
|
cp -r $$(OUTPUTDIR)/* $$(DROPBOX_DIR)
|
|
|
|
ftp_upload: publish
|
|
lftp ftp://$$(FTP_USER)@$$(FTP_HOST) -e "mirror -R $$(OUTPUTDIR) $$(FTP_TARGET_DIR) ; quit"
|
|
|
|
github: publish
|
|
ghp-import $$(OUTPUTDIR)
|
|
git push origin gh-pages
|
|
|
|
.PHONY: html help clean regenerate serve devserver publish ssh_upload rsync_upload dropbox_upload ftp_upload github
|