Files
@ 14dfff128751
Branch filter:
Location: AENC/cwi-pelican-template-fork/projects/cwi/fabfile.py - annotation
14dfff128751
1.8 KiB
text/x-python
Changes facilitate publication, e.g., SITEURL defined in publishconf.py, URLs suffixes removed and Makefile SSH variable assigned realistic values.
Changes to be committed:
modified: Makefile
new file: content/extras/top-htaccess
modified: pelicanconf.py
modified: publishconf.py
Changes to be committed:
modified: Makefile
new file: content/extras/top-htaccess
modified: pelicanconf.py
modified: publishconf.py
80da14e9d8db 80da14e9d8db 80da14e9d8db 80da14e9d8db 80da14e9d8db 80da14e9d8db 80da14e9d8db 80da14e9d8db 80da14e9d8db 80da14e9d8db 80da14e9d8db 80da14e9d8db 80da14e9d8db 80da14e9d8db 80da14e9d8db 80da14e9d8db 80da14e9d8db 80da14e9d8db 80da14e9d8db 80da14e9d8db 80da14e9d8db 80da14e9d8db 80da14e9d8db 80da14e9d8db 80da14e9d8db 80da14e9d8db 80da14e9d8db 80da14e9d8db 80da14e9d8db 80da14e9d8db 80da14e9d8db 80da14e9d8db 80da14e9d8db 80da14e9d8db 80da14e9d8db 80da14e9d8db 80da14e9d8db 80da14e9d8db 80da14e9d8db 80da14e9d8db 80da14e9d8db 80da14e9d8db 80da14e9d8db 80da14e9d8db 80da14e9d8db 80da14e9d8db 80da14e9d8db 80da14e9d8db 80da14e9d8db 80da14e9d8db 80da14e9d8db 80da14e9d8db 80da14e9d8db 80da14e9d8db 80da14e9d8db 80da14e9d8db 80da14e9d8db 80da14e9d8db 80da14e9d8db 80da14e9d8db 80da14e9d8db 80da14e9d8db 80da14e9d8db 80da14e9d8db 80da14e9d8db 80da14e9d8db 80da14e9d8db 80da14e9d8db 80da14e9d8db 80da14e9d8db 80da14e9d8db 80da14e9d8db 80da14e9d8db | from fabric.api import *
import fabric.contrib.project as project
import os
import sys
import SimpleHTTPServer
import SocketServer
# Local path configuration (can be absolute or relative to fabfile)
env.deploy_path = 'output'
DEPLOY_PATH = env.deploy_path
# Remote server configuration
production = 'root@localhost:22'
dest_path = '/var/www'
# Rackspace Cloud Files configuration settings
env.cloudfiles_username = 'my_rackspace_username'
env.cloudfiles_api_key = 'my_rackspace_api_key'
env.cloudfiles_container = 'my_cloudfiles_container'
def clean():
if os.path.isdir(DEPLOY_PATH):
local('rm -rf {deploy_path}'.format(**env))
local('mkdir {deploy_path}'.format(**env))
def build():
local('pelican -s pelicanconf.py')
def rebuild():
clean()
build()
def regenerate():
local('pelican -r -s pelicanconf.py')
def serve():
os.chdir(env.deploy_path)
PORT = 8000
class AddressReuseTCPServer(SocketServer.TCPServer):
allow_reuse_address = True
server = AddressReuseTCPServer(('', PORT), SimpleHTTPServer.SimpleHTTPRequestHandler)
sys.stderr.write('Serving on port {0} ...\n'.format(PORT))
server.serve_forever()
def reserve():
build()
serve()
def preview():
local('pelican -s publishconf.py')
def cf_upload():
rebuild()
local('cd {deploy_path} && '
'swift -v -A https://auth.api.rackspacecloud.com/v1.0 '
'-U {cloudfiles_username} '
'-K {cloudfiles_api_key} '
'upload -c {cloudfiles_container} .'.format(**env))
@hosts(production)
def publish():
local('pelican -s publishconf.py')
project.rsync_project(
remote_dir=dest_path,
exclude=".DS_Store",
local_dir=DEPLOY_PATH.rstrip('/') + '/',
delete=True,
extra_opts='-c',
)
|