Metadata-Version: 2.0
Name: pyvagrantfile
Version: 0.5.11
Summary: Parser to extract data from a Vagrantfile into a data struct readable by python
Home-page: https://github.com/drewsonne/pyvagrantfile
Author: Drew J. Sonne
Author-email: drew.sonne@gmail.com
License: UNKNOWN
Download-URL: https://github.com/drewsonne/pyvagrantfile/archive/0.5.11.tar.gz
Keywords: vagrant,parser,ruby
Platform: UNKNOWN
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Information Technology
Classifier: License :: OSI Approved :: GNU General Public License v2 (GPLv2)
Classifier: Natural Language :: English
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 2.6
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.0
Classifier: Programming Language :: Python :: 3.1
Classifier: Programming Language :: Python :: 3.2
Classifier: Programming Language :: Python :: 3.3
Classifier: Programming Language :: Python :: 3.4
Classifier: Programming Language :: Python :: 3.5
Classifier: Operating System :: POSIX
Classifier: Operating System :: POSIX :: Linux
Classifier: Operating System :: MacOS :: MacOS X
Classifier: Topic :: Software Development
Classifier: Topic :: System :: Installation/Setup
Requires-Dist: six

|Build Status|

pyvagrantfile
=============

Parses a vagrant file into a python object for inspect. Mainly used to
read and build Vagrant file in python. I built this to help me write a
utility in python which can build projects and convert Vagrantfiles to
packer files.

Supported Directives
--------------------

-  Most vm.config directives,
-  Chef provisioner
-  Shell provisioner
-  VB provider

Installation
------------

After it's on the pip server, you should be able to install on the
client by running

::

    $ pip install pyvagrantfile

Deployment
----------

When this is ready to be deployed, you can upload it to the pip server

::

    $ cd $WORKSPACE/pyvagrantfile
    $ python setup.py sdist upload

Usage
-----

Contributing
------------

virtualenv
~~~~~~~~~~

When doing development and testing, it's good practice to use a
virtualenv. A virtualenv is a sandboxed python environment which does
not modify the system python installation You can install one as
follows:

::

    $ pip install virtualenv
    $ cd $WORKSPACE/pyvagrantfile
    $ virtualenv venv
    $ . ./venv/bin/activate
    (pyvagrantfile)$

Now that you have a working virtualenv, you can install the utility in
development mode. Keep in mind that the 'activate' step, is valid only
for a single session. If you close the terminal you'll have to run
``venv/bin/activate`` again. You can now run pip, python, and
pyvagrantfile while only referring to the local python environment
created in $WORKSPACE/pyvagrantfile. You can see this by running:

::

    (pyvagrantfile)$ which pip
    $WORKSPACE/pyvagrantfile/venv/bin/python
    (pyvagrantfile)$ which python

Development Mode
~~~~~~~~~~~~~~~~

When testing this utility, you can install it and still edit the source
files as follows:

::

    $ cd $WORKSPACE/pyvagrantfile
    $ pip install --editable .

Roadmap
~~~~~~~

I intially tried to use pyPEG, but could not get a handle on it, so for
now, we use a custom state parser. I want to move this to a PEG parser
to make it easier to manage, but in the spirit of minimum viable
product, it's up and out.

-  This is currently way too specific. Needs to be rewritten to parse
   general ruby structures and extract details out of it, rather than
   looking for particular vagrant configurations.
-  Port parser from state parser to PEG parser.

.. |Build Status| image:: https://travis-ci.org/drewsonne/pyvagrantfile.svg?branch=master
   :target: https://travis-ci.org/drewsonne/pyvagrantfile


