view setup.py @ 100:d80e96f7e547

flush out hgpoller; untested
author Jeff Hammel <jhammel@mozilla.com>
date Tue, 18 Jan 2011 13:01:58 -0800
parents 9ba5c3df5e30
children 3b3c83f803b3
line wrap: on
line source

import os, sys
from setuptools import setup, find_packages

version = '0.0'

setup(name='autobot',
      version=version,
      description="buildbot incarnation for Mozilla AutoTools team",
      long_description="""\
""",
      classifiers=[], # Get strings from http://pypi.python.org/pypi?%3Aaction=list_classifiers
      keywords='buildbot automation',
      author='Jeff Hammel',
      author_email='jhammel@mozilla.com',
      url='https://wiki.mozilla.org/Auto-tools',
      license='MPL',
      packages=find_packages(exclude=['ez_setup', 'examples', 'tests']),
      include_package_data=True,
      zip_safe=False,
      install_requires=[
          # -*- Extra requirements: -*-
        'buildbot',
        'buildbot-slave',
        'virtualenv',
        'MakeItSo',
      ],
      entry_points="""
      # -*- Entry points: -*-
      [console_scripts]
      create-autobot = autobot.template:create_autobot
      create-autobot-master = autobot.template:create_master
      create-autobot-slave = autobot.template:create_slave
      create-autobot-project = autobot.template:create_project
      """,
      )

def install_hg(sources):
    """
    - sources : dict of hg sources to install: {'package': 'http://hg...'}
    """
    try:
        from subprocess import check_call as call
    except:
        from subprocess import call

    # see if you can find site-packages
    import site
    site_dir = os.path.abspath(os.path.dirname(site.__file__))
    site_packages = os.path.join(site_dir, 'site-packages')
    if not (os.path.exists(site_packages) and os.path.isdir(site_packages)):
        raise IOError("Cannot find site-packages directory")

    # figure out what you need to install
    missing = set()
    for source in sources:
        try:
            __import__(source)
        except ImportError:
            missing.add(source)

    # install it
    for source in missing:
        call(['hg', 'clone', sources[source],
              os.path.join(site_packages, source)])

### install unpackaged dependencies
source = {'buildbotcustom': 'http://hg.mozilla.org/build/buildbotcustom'}
if set(['install', 'develop']).intersection(sys.argv[1:]):
    try:
        install_hg(source)
    except:
        print 'Please make sure the source is installed:'
        print source