diff --git a/pelican/tools/pelican_quickstart.py b/pelican/tools/pelican_quickstart.py index a7801866c..af75190c8 100755 --- a/pelican/tools/pelican_quickstart.py +++ b/pelican/tools/pelican_quickstart.py @@ -82,6 +82,14 @@ class _DEFAULT_PATH_TYPE(str): _DEFAULT_PATH = _DEFAULT_PATH_TYPE(os.curdir) +RSYNC_EXCLUDES = """\ +# Files to exclude with rsync(1) during publishing. +# See the INCLUDE/EXCLUDE PATTERN RULES section of the rsync man page. + +.DS_Store +""" + + def ask(question, answer=str, default=None, length=None): if answer == str: r = '' @@ -347,6 +355,13 @@ def main(): fd.close() except OSError as e: print('Error: {0}'.format(e)) + try: + with open(os.path.join(CONF['basedir'], 'rsync_excludes.txt'), + 'w', 'utf-8') as fd: + fd.write(RSYNC_EXCLUDES) + fd.close() + except OSError as e: + print('Error: {0}'.format(e)) print('Done. Your new project is available at %s' % CONF['basedir']) diff --git a/pelican/tools/templates/Makefile.jinja2 b/pelican/tools/templates/Makefile.jinja2 index 91b443202..d54e67575 100644 --- a/pelican/tools/templates/Makefile.jinja2 +++ b/pelican/tools/templates/Makefile.jinja2 @@ -125,7 +125,7 @@ ssh_upload: publish {% set upload = upload + ["rsync_upload"] %} rsync_upload: publish - rsync -e "ssh -p $(SSH_PORT)" -P -rvzc --cvs-exclude --delete $(OUTPUTDIR)/ $(SSH_USER)@$(SSH_HOST):$(SSH_TARGET_DIR) + rsync -e "ssh -p $(SSH_PORT)" -P -rvzc --cvs-exclude --exclude-from=rsync_excludes.txt --delete $(OUTPUTDIR)/ $(SSH_USER)@$(SSH_HOST):$(SSH_TARGET_DIR) {% endif %} {% if dropbox %} diff --git a/pelican/tools/templates/tasks.py.jinja2 b/pelican/tools/templates/tasks.py.jinja2 index 0362eba73..90658f0fa 100644 --- a/pelican/tools/templates/tasks.py.jinja2 +++ b/pelican/tools/templates/tasks.py.jinja2 @@ -131,7 +131,7 @@ def publish(c): """Publish to production via rsync""" c.run('pelican -s {settings_publish}'.format(**CONFIG)) c.run( - 'rsync --delete --exclude ".DS_Store" -pthrvz -c ' + 'rsync --delete --exclude-from=rsync_excludes.txt -pthrvz -c ' '-e "ssh -p {ssh_port}" ' '{} {ssh_user}@{ssh_host}:{ssh_path}'.format( CONFIG['deploy_path'].rstrip('/') + '/',