1
0
Fork 0
forked from github/pelican
pelican-theme/pelican/tools/templates/Makefile.in

123 lines
4.3 KiB
Makefile
Raw Normal View History

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
S3_BUCKET=$s3_bucket
CLOUDFILES_USERNAME=$cloudfiles_username
CLOUDFILES_API_KEY=$cloudfiles_api_key
CLOUDFILES_CONTAINER=$cloudfiles_container
DROPBOX_DIR=$dropbox_dir
GITHUB_PAGES_BRANCH=$github_pages_branch
DEBUG ?= 0
ifeq ($(DEBUG), 1)
PELICANOPTS += -D
2013-08-29 17:35:48 -07:00
endif
RELATIVE ?= 0
ifeq ($(RELATIVE), 1)
PELICANOPTS += --relative-urls
endif
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 [PORT=8000] serve site at http://localhost:8000'
@echo ' make serve-global [SERVER=0.0.0.0] serve (as root) to $(SERVER):80 '
@echo ' make devserver [PORT=8000] start/restart develop_server.sh '
@echo ' make stopserver stop local server '
@echo ' make ssh_upload upload the web site via SSH '
@echo ' make rsync_upload upload the web site via rsync+ssh '
@echo ' make dropbox_upload upload the web site via Dropbox '
@echo ' make ftp_upload upload the web site via FTP '
@echo ' make s3_upload upload the web site via S3 '
@echo ' make cf_upload upload the web site via Cloud Files'
@echo ' make github upload the web site via gh-pages '
@echo ' '
@echo 'Set the DEBUG variable to 1 to enable debugging, e.g. make DEBUG=1 html '
@echo 'Set the RELATIVE variable to 1 to enable relative urls '
@echo ' '
Remove "clean" task from "make html"; fixes #637 This change removes the "clean" task from the "html" and "regenerate" tasks in the default Makefile generated by pelican-quickstart. The previous behavior ignored whether the DELETE_OUTPUT_DIRECTORY setting was set to True or not and deleted everything in the output directory every time the "make html" or "make regenerate" task was run. In addition to violating the Principle of Least Astonishment, there was also the potential for data loss if the user wasn't careful when defining the output directory location in the Makefile. The new behavior therefore relies primarily on the DELETE_OUTPUT_DIRECTORY setting to control if and when the output directory is cleaned. The default settings and Makefile generated by the pelican-quickstart command, for example, no longer clean the output directory when the "make html" task is run. If the user wants to change this behavior and have the output directory cleaned on every "make html" run, the recommended method would be to set DELETE_OUTPUT_DIRECTORY to True in pelicanconf.py. Alternatively, the user can manually run "make clean", with the caveat that the output directory and its contents will be entirely destroyed, including any otherwise to-be-retained files or folders specified in the OUTPUT_RETENTION setting. It is for that reason that relying on the DELETE_OUTPUT_DIRECTORY setting is instead recommended. As before, DELETE_OUTPUT_DIRECTORY is set to True in the publishconf.py settings file generated by the pelican-quickstart script. This way, any potentially old and irrelevant files will be automatically removed before the latest version of the site is transferred to the production server environment. In summary, this change allows for the sanest possible default settings, while still allowing end users to customize output cleaning to their preferred behavior with a minimum of confusion.
2013-06-24 13:05:00 -07:00
html:
$$(PELICAN) $$(INPUTDIR) -o $$(OUTPUTDIR) -s $$(CONFFILE) $$(PELICANOPTS)
clean:
[ ! -d $$(OUTPUTDIR) ] || rm -rf $$(OUTPUTDIR)
Remove "clean" task from "make html"; fixes #637 This change removes the "clean" task from the "html" and "regenerate" tasks in the default Makefile generated by pelican-quickstart. The previous behavior ignored whether the DELETE_OUTPUT_DIRECTORY setting was set to True or not and deleted everything in the output directory every time the "make html" or "make regenerate" task was run. In addition to violating the Principle of Least Astonishment, there was also the potential for data loss if the user wasn't careful when defining the output directory location in the Makefile. The new behavior therefore relies primarily on the DELETE_OUTPUT_DIRECTORY setting to control if and when the output directory is cleaned. The default settings and Makefile generated by the pelican-quickstart command, for example, no longer clean the output directory when the "make html" task is run. If the user wants to change this behavior and have the output directory cleaned on every "make html" run, the recommended method would be to set DELETE_OUTPUT_DIRECTORY to True in pelicanconf.py. Alternatively, the user can manually run "make clean", with the caveat that the output directory and its contents will be entirely destroyed, including any otherwise to-be-retained files or folders specified in the OUTPUT_RETENTION setting. It is for that reason that relying on the DELETE_OUTPUT_DIRECTORY setting is instead recommended. As before, DELETE_OUTPUT_DIRECTORY is set to True in the publishconf.py settings file generated by the pelican-quickstart script. This way, any potentially old and irrelevant files will be automatically removed before the latest version of the site is transferred to the production server environment. In summary, this change allows for the sanest possible default settings, while still allowing end users to customize output cleaning to their preferred behavior with a minimum of confusion.
2013-06-24 13:05:00 -07:00
regenerate:
$$(PELICAN) -r $$(INPUTDIR) -o $$(OUTPUTDIR) -s $$(CONFFILE) $$(PELICANOPTS)
serve:
ifdef PORT
cd $$(OUTPUTDIR) && $(PY) -m pelican.server $$(PORT)
else
cd $$(OUTPUTDIR) && $(PY) -m pelican.server
endif
serve-global:
ifdef SERVER
cd $$(OUTPUTDIR) && $(PY) -m pelican.server 80 $$(SERVER)
else
cd $$(OUTPUTDIR) && $(PY) -m pelican.server 80 0.0.0.0
endif
devserver:
ifdef PORT
$$(BASEDIR)/develop_server.sh restart $$(PORT)
else
$$(BASEDIR)/develop_server.sh restart
endif
2013-02-21 12:43:42 +01:00
stopserver:
$(BASEDIR)/develop_server.sh stop
@echo 'Stopped Pelican and SimpleHTTPServer processes running in background.'
2013-02-21 12:43:42 +01:00
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 -rvzc --delete $(OUTPUTDIR)/ $(SSH_USER)@$(SSH_HOST):$(SSH_TARGET_DIR) --cvs-exclude
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"
s3_upload: publish
2014-10-20 15:22:11 +02:00
s3cmd sync $(OUTPUTDIR)/ s3://$(S3_BUCKET) --acl-public --delete-removed --guess-mime-type
cf_upload: publish
cd $(OUTPUTDIR) && swift -v -A https://auth.api.rackspacecloud.com/v1.0 -U $(CLOUDFILES_USERNAME) -K $(CLOUDFILES_API_KEY) upload -c $(CLOUDFILES_CONTAINER) .
github: publish
2014-06-29 17:00:33 +02:00
ghp-import -m "Generate Pelican site" -b $(GITHUB_PAGES_BRANCH) $$(OUTPUTDIR)
git push origin $(GITHUB_PAGES_BRANCH)
.PHONY: html help clean regenerate serve serve-global devserver publish ssh_upload rsync_upload dropbox_upload ftp_upload s3_upload cf_upload github