Files
@ b2e36c6dd35c
Branch filter:
Location: AENC/cwi-pelican-template-fork/projects/cwi/fabfile.py - annotation
b2e36c6dd35c
1.8 KiB
text/x-python
Added explicit index.html. Display news as a blog. Private directory designated static.
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',
)
|