Skip to content
This repository has been archived by the owner on Jun 1, 2018. It is now read-only.

Commit

Permalink
Moving to reStructuredText README, and updated setup.py for PyPI
Browse files Browse the repository at this point in the history
  • Loading branch information
cosmin committed Jul 3, 2012
1 parent bd0182f commit 7aac781
Show file tree
Hide file tree
Showing 3 changed files with 99 additions and 68 deletions.
64 changes: 0 additions & 64 deletions README.md

This file was deleted.

82 changes: 82 additions & 0 deletions README.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
launchbox
=========

Bundle cookbooks for use by chef-solo.

Launchbox supports transitive dependency resolution, chef version
contraints and exclusions (for those misbehaved cookbooks that depend on
more than they should).

Input
-----

launchbox will look for YAML files under the ``roles`` and ``mixins`` in
the input directory (which defaults to ``./src``).

An example role will look like:

::

ci:
include_mixins: [java]
jenkins:
http_proxy:
variant: nginx
cookbooks:
java: "1.5.1"
nginx: "0.101.1"
jenkins: "0.6.3"
run_list:
- java
- jenkins

Think of mixins as partial roles for reusability. At run-time launchbox
will apply all mixins in order and then override any values with the
data in the role itself.

Cookbooks
---------

The cookbooks specified for a role will be downloaded from the specified
web server or S3 bucket.

S3
~~

To use an S3 remote use ``launchbox --bucket your.bucket.name``

In the case of an S3 remote ``launchbox`` will look for keys of the form
``cookbooks/<cookbook>/<version>/<cookbook>.tar.gz`` for the cookbook
contents, and ``cookbooks/<cookbook>/<version>/<cookbook>.json`` for the
metadata. For determining the available versions ``launchbox`` will list
the bucket and find all available versions.

HTTP
~~~~

To use an HTTP(S) remote use
``lauchbox --url http://your/bucket/server``

In the case of an HTTP(s) remote ``launchbox`` will download cookbook
data from
``http://example.com/cookbooks/<cookbook>/<version>/<cookbook>.tar.gz``,
cookbook metadata from
``http://example.com/cookbooks/<cookbook>/<version>/<cookbook>.tar.gz``
and the list of available cookbook versions from
``http://example.com/cookbooks/<cookbook>/versions.json``

Output
------

After running launchbox the target folder will contain a JSON file with
the role metadata and tar.gz containing all the necessary cookbooks for
that role.

Usage
-----

For detailed used information run

::

launchbox -h
21 changes: 17 additions & 4 deletions setup.py
Original file line number Diff line number Diff line change
@@ -1,14 +1,27 @@
import os
from setuptools import setup

def read(fname):
return open(os.path.join(os.path.dirname(__file__), fname)).read()

setup(name='launchbox',
version='0.1',
description='Packager for chef-solo',
description='Packaging and dependency resolution for chef-solo cookbooks',
long_description=read('README.rst'),
keywords="chef chef-solo dependency package bundle",
url='http://github.com/SimpleFinance/launchbox',
author='Cosmin Stejerean',
author_email='cosmin@offbytwo.com',
license='Apache License 2.0',
url='http://github.com/SimpleFinance/launchbox',
packages=['launchbox'],
scripts=['bin/launchbox', 'bin/publish-cookbook'],
scripts=['bin/launchbox'],
tests_require=open('test-requirements.txt').readlines(),
install_requires=open('requirements.txt').readlines()
install_requires=open('requirements.txt').readlines(),
classifiers=[
'Development Status :: 3 - Alpha',
'Environment :: Console',
'License :: OSI Approved :: Apache Software License',
'Topic :: System :: Software Distribution',
'Topic :: Utilities'
]
)

0 comments on commit 7aac781

Please sign in to comment.