#!/usr/bin/env python# encoding: utf-8## Copyright (c) 2009 Doug Hellmann All rights reserved.#""""""# Standard libraryimportcopyimportos# Third-party# Set up Paverimportpaverimportpaver.misctasksfrompaver.pathimportpathfrompaver.easyimport*importpaver.setuputilspaver.setuputils.install_distutils_tasks()importpaver.doctoolstry:importdocpaverexcept:importwarningswarnings.warn('docpaver was not found, will not be able to produce documentation')# What project are we building?PROJECT='virtualenvwrapper'VERSION='1.17'os.environ['VERSION']=VERSION# Read the long description to give to setupREADME_FILE='README'README=path(README_FILE).text()# Scan the input for package information# to grab any data files (text, images, etc.) # associated with sub-packages.PACKAGE_DATA=paver.setuputils.find_package_data(PROJECT,package=PROJECT,only_in_packages=False,)options(setup=Bunch(name=PROJECT,version=VERSION,description='Enhancements to virtualenv',long_description=README,author='Doug Hellmann',author_email='doug.hellmann@gmail.com',url='http://www.doughellmann.com/projects/%s/'%PROJECT,download_url='http://www.doughellmann.com/downloads/%s-%s.tar.gz'% \
(PROJECT,VERSION),classifiers=['Development Status :: 5 - Production/Stable','License :: OSI Approved :: BSD License','Programming Language :: Python','Intended Audience :: Developers','Environment :: Console',],platforms=('Any',),scripts=['virtualenvwrapper_bashrc',],provides=['virtualenvwrapper',],requires=['virtualenv'],packages=sorted(PACKAGE_DATA.keys()),package_data=PACKAGE_DATA,zip_safe=False,),sphinx=Bunch(docroot='.',sourcedir='docsource',builder='html',template_args={'project':PROJECT}),html=Bunch(templates='pkg',builddir='docs',confdir='sphinx/pkg',),website=Bunch(templates='web',builddir='web',confdir='sphinx/web',# What server hosts the website?server='www.doughellmann.com',server_path='/var/www/doughellmann/DocumentRoot/docs/%s/'%PROJECT,# What template should be used for the web site HTML?template_source='~/Devel/personal/doughellmann/templates/base.html',template_dest='sphinx/web/templates/base.html',),sdist=Bunch(dist_dir=os.path.expanduser('~/Desktop'),),# Tell Paver to include extra parts that we use# but it doesn't ship in the minilib by default.minilib=Bunch(extra_files=['doctools'],),)@taskdefhtml(options):# Build the docsdocpaver.html(options)# Move them into place for packagingdestdir=path(PROJECT)/'docs'destdir.rmtree()builtdocs=path(options.builddir)/"html"builtdocs.move(destdir)return@taskdefwebsite(options):"""Create local copy of website files. """# Make sure the base template is updateddest=path(options.website.template_dest).expanduser()src=path(options.website.template_source).expanduser()ifnotdest.exists()or(src.mtime>dest.mtime):dest.dirname().mkdir()src.copy(dest)# Build the docsdocpaver.run_sphinx(options,'website')returndefremake_directories(*dirnames):"""Remove the directories and recreate them. """fordindirnames:d=path(d)ifd.exists():d.rmtree()d.mkdir()return@taskdefinstallwebsite(options):"""Rebuild and copy website files to the remote server. """# Clean upremake_directories(options.website.builddir)# Rebuildwebsite(options)# Copy to the serveros.environ['RSYNC_RSH']='/usr/bin/ssh'src_path=path(options.website.builddir)/'html'sh('cd %s; rsync --archive --delete --verbose . %s:%s'%(src_path,options.website.server,options.website.server_path))return@task@needs(['html','generate_setup','minilib','setuptools.command.sdist',])defsdist(options):"""Create a source distribution. """pass@task@needs(['sdist'])deftest_install(options):sh('./tests/test_install.sh "%s" "%s"'%(options.sdist.dist_dir,VERSION))return@taskdeftest():sh('bash ./tests/test.sh')sh('SHUNIT_PARENT=./tests/test.sh zsh -o shwordsplit ./tests/test.sh')return