Metadata-Version: 1.0
Name: cish
Version: 0.2.0
Summary: Write shell-like python scripts to control continuous builds.
Home-page: https://github.com/smurn/cish
Author: Stefan C. Mueller
Author-email: scm@smurn.org
License: UNKNOWN
Description: 
        cish - Write shell-like python scripts to control continuous builds
        ===================================================================
        
        I used to write small bash scripts that created the virtualenv and
        executed the `python setup.py` and `nosetests` commands using
        one of several Python versions I keep installed on my build machines. 
        But bash scripts aren't supported on Windows, so I want to write
        this script in Python instead. 
        
        `cish` is a set of utility functions to write bash-like python
        scripts that deal with several installed python interpreters.
        
        ----------------
        Let's get going!
        ----------------
        
        .. code-block:: python
        
            import cish
            cish.rm("build")
            cish.default.pip("install", "nose")
            cish.default.python("setup.py", "build")
            cish.default.nosetests()
        
        This will delete the `build` directory if it exists with all content,
        install `nose`, and build and test the package.
        
        `default` is an 'environment' which consists of a python interpreter,
        library path, and utilities such as `pip`. `default` is the environent
        of the interpreter executing the script itself.
        
        We can also use a different interpreter:
        
        .. code-block:: python
        
            import cish
            env = cish.from_interpreter("path/to/python")
            env.python("setup.py", "build")
            env.nosetests()
        
        The installation location of the python interpreters is often
        dependent on the test machine. We can place a simple JSON file
        in one of several locations, for example in `/etc/cish.json`, 
        to specifiy their location:
        
        .. code-block:: json
        
            {
                "2.6.9": "/opt/python2.6.9/bin/python",
                "2.7.8": "/opt/python2.7.8/bin/python"
            }
        
        We can then choose the interpeter in our script using, say,
        an environment variable set by jenkins:
        
        .. code-block:: python
        
            import cish, os
            env = cish.from_config()[os.environ["PYTHON_VERSION"]]
            env.python("setup.py", "build")
        
        `virtualenv` is very easy too:
        
        .. code-block:: python
        
            import cish
            venv = cish.default.virtualenv("optional/location")
            venv.pip("install", "package_to_install_inside_virtualenv")
        
        -----------------------------------
        Bug Reports and other contributions
        -----------------------------------
        
        This project is hosted here `cish github page <https://github.com/smurn/cish>`_.
         
        ------------
        Alternatives
        ------------
        
        You might want to look at `sh <https://pypi.python.org/pypi/sh>`_ a cool library to
        run executables without dealing with `subprocess` directly. It has a far wider
        scope than `cish` but lacks the abstraction we offer for different python installations
        and OS specific file extensions and installation locations.
        
         
        
Platform: UNKNOWN
