2014-02-08 14:32:58 -08:00
|
|
|
PELICAN?=$pelican
|
2012-05-06 12:07:13 +02:00
|
|
|
PELICANOPTS=$pelicanopts
|
|
|
|
|
|
2012-08-27 13:09:25 -07:00
|
|
|
BASEDIR=$$(CURDIR)
|
2012-07-07 07:41:12 -07:00
|
|
|
INPUTDIR=$$(BASEDIR)/content
|
2012-05-06 12:07:13 +02:00
|
|
|
OUTPUTDIR=$$(BASEDIR)/output
|
2012-07-07 07:41:12 -07:00
|
|
|
CONFFILE=$$(BASEDIR)/pelicanconf.py
|
|
|
|
|
PUBLISHCONF=$$(BASEDIR)/publishconf.py
|
2012-05-06 12:07:13 +02:00
|
|
|
|
|
|
|
|
FTP_HOST=$ftp_host
|
|
|
|
|
FTP_USER=$ftp_user
|
|
|
|
|
FTP_TARGET_DIR=$ftp_target_dir
|
|
|
|
|
|
|
|
|
|
SSH_HOST=$ssh_host
|
2012-07-05 11:34:45 -07:00
|
|
|
SSH_PORT=$ssh_port
|
2012-05-06 12:07:13 +02:00
|
|
|
SSH_USER=$ssh_user
|
|
|
|
|
SSH_TARGET_DIR=$ssh_target_dir
|
|
|
|
|
|
2013-03-15 15:04:33 +11:00
|
|
|
S3_BUCKET=$s3_bucket
|
|
|
|
|
|
2013-06-11 21:43:23 -05:00
|
|
|
CLOUDFILES_USERNAME=$cloudfiles_username
|
|
|
|
|
CLOUDFILES_API_KEY=$cloudfiles_api_key
|
|
|
|
|
CLOUDFILES_CONTAINER=$cloudfiles_container
|
|
|
|
|
|
2012-05-06 12:07:13 +02:00
|
|
|
DROPBOX_DIR=$dropbox_dir
|
|
|
|
|
|
2013-12-06 17:39:51 -08:00
|
|
|
GITHUB_PAGES_BRANCH=$github_pages_branch
|
|
|
|
|
|
2013-06-26 13:25:20 +02:00
|
|
|
DEBUG ?= 0
|
|
|
|
|
ifeq ($(DEBUG), 1)
|
|
|
|
|
PELICANOPTS += -D
|
2013-08-29 17:35:48 -07:00
|
|
|
endif
|
2013-06-26 13:25:20 +02:00
|
|
|
|
2015-01-17 16:37:11 +01:00
|
|
|
RELATIVE ?= 0
|
|
|
|
|
ifeq ($(RELATIVE), 1)
|
|
|
|
|
PELICANOPTS += --relative-urls
|
|
|
|
|
endif
|
|
|
|
|
|
2012-05-06 12:07:13 +02:00
|
|
|
help:
|
2015-01-10 15:40:54 -08:00
|
|
|
@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 '
|
2015-01-17 16:37:11 +01:00
|
|
|
@echo 'Set the RELATIVE variable to 1 to enable relative urls '
|
2015-01-10 15:40:54 -08:00
|
|
|
@echo ' '
|
2012-05-06 12:07:13 +02:00
|
|
|
|
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:
|
2012-05-06 12:07:13 +02:00
|
|
|
$$(PELICAN) $$(INPUTDIR) -o $$(OUTPUTDIR) -s $$(CONFFILE) $$(PELICANOPTS)
|
|
|
|
|
|
|
|
|
|
clean:
|
2013-06-24 13:40:32 -07:00
|
|
|
[ ! -d $$(OUTPUTDIR) ] || rm -rf $$(OUTPUTDIR)
|
2012-05-06 12:07:13 +02:00
|
|
|
|
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:
|
2012-07-07 07:41:12 -07:00
|
|
|
$$(PELICAN) -r $$(INPUTDIR) -o $$(OUTPUTDIR) -s $$(CONFFILE) $$(PELICANOPTS)
|
|
|
|
|
|
|
|
|
|
serve:
|
2013-07-07 14:28:15 +02:00
|
|
|
ifdef PORT
|
|
|
|
|
cd $$(OUTPUTDIR) && $(PY) -m pelican.server $$(PORT)
|
|
|
|
|
else
|
2013-02-01 15:35:48 -08:00
|
|
|
cd $$(OUTPUTDIR) && $(PY) -m pelican.server
|
2013-07-07 14:28:15 +02:00
|
|
|
endif
|
2012-08-05 17:25:39 -07:00
|
|
|
|
2015-01-10 15:40:54 -08:00
|
|
|
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
|
|
|
|
|
|
|
|
|
|
|
2012-08-05 17:25:39 -07:00
|
|
|
devserver:
|
2013-07-07 14:28:15 +02:00
|
|
|
ifdef PORT
|
|
|
|
|
$$(BASEDIR)/develop_server.sh restart $$(PORT)
|
|
|
|
|
else
|
2012-07-08 17:50:18 -07:00
|
|
|
$$(BASEDIR)/develop_server.sh restart
|
2013-07-07 14:28:15 +02:00
|
|
|
endif
|
2012-07-07 07:41:12 -07:00
|
|
|
|
2013-02-21 12:43:42 +01:00
|
|
|
stopserver:
|
2015-05-24 16:59:23 +01:00
|
|
|
$(BASEDIR)/develop_server.sh stop
|
2013-03-09 21:27:19 +00:00
|
|
|
@echo 'Stopped Pelican and SimpleHTTPServer processes running in background.'
|
2013-02-21 12:43:42 +01:00
|
|
|
|
2012-07-07 07:41:12 -07:00
|
|
|
publish:
|
|
|
|
|
$$(PELICAN) $$(INPUTDIR) -o $$(OUTPUTDIR) -s $$(PUBLISHCONF) $$(PELICANOPTS)
|
|
|
|
|
|
|
|
|
|
ssh_upload: publish
|
2012-07-05 11:34:45 -07:00
|
|
|
scp -P $$(SSH_PORT) -r $$(OUTPUTDIR)/* $$(SSH_USER)@$$(SSH_HOST):$$(SSH_TARGET_DIR)
|
2012-05-06 12:07:13 +02:00
|
|
|
|
2012-07-07 07:41:12 -07:00
|
|
|
rsync_upload: publish
|
2014-04-28 21:47:18 +02:00
|
|
|
rsync -e "ssh -p $(SSH_PORT)" -P -rvzc --delete $(OUTPUTDIR)/ $(SSH_USER)@$(SSH_HOST):$(SSH_TARGET_DIR) --cvs-exclude
|
2012-05-06 12:07:13 +02:00
|
|
|
|
2012-08-05 17:25:39 -07:00
|
|
|
dropbox_upload: publish
|
|
|
|
|
cp -r $$(OUTPUTDIR)/* $$(DROPBOX_DIR)
|
|
|
|
|
|
2012-07-07 07:41:12 -07:00
|
|
|
ftp_upload: publish
|
2012-05-06 12:07:13 +02:00
|
|
|
lftp ftp://$$(FTP_USER)@$$(FTP_HOST) -e "mirror -R $$(OUTPUTDIR) $$(FTP_TARGET_DIR) ; quit"
|
|
|
|
|
|
2013-03-15 15:04:33 +11:00
|
|
|
s3_upload: publish
|
2014-10-20 15:22:11 +02:00
|
|
|
s3cmd sync $(OUTPUTDIR)/ s3://$(S3_BUCKET) --acl-public --delete-removed --guess-mime-type
|
2013-03-15 15:04:33 +11:00
|
|
|
|
2013-06-11 21:43:23 -05:00
|
|
|
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) .
|
|
|
|
|
|
2012-07-07 07:41:12 -07:00
|
|
|
github: publish
|
2014-06-29 17:00:33 +02:00
|
|
|
ghp-import -m "Generate Pelican site" -b $(GITHUB_PAGES_BRANCH) $$(OUTPUTDIR)
|
2013-12-06 17:39:51 -08:00
|
|
|
git push origin $(GITHUB_PAGES_BRANCH)
|
2012-05-06 12:07:13 +02:00
|
|
|
|
2015-01-10 15:40:54 -08:00
|
|
|
.PHONY: html help clean regenerate serve serve-global devserver publish ssh_upload rsync_upload dropbox_upload ftp_upload s3_upload cf_upload github
|