Metadata-Version: 2.1
Name: dockerfile
Version: 2.1.0
Summary: Parse a dockerfile into a high-level representation using the official go parser.
Home-page: https://github.com/asottile/dockerfile
Author: Anthony Sottile
Author-email: asottile@umich.edu
License: MIT
Description: [![Build Status](https://asottile.visualstudio.com/asottile/_apis/build/status/asottile.dockerfile?branchName=master)](https://asottile.visualstudio.com/asottile/_build/latest?definitionId=14&branchName=master)
        [![Build status](https://ci.appveyor.com/api/projects/status/l5kj12ysd49xul1l?svg=true)](https://ci.appveyor.com/project/asottile/dockerfile)
        
        dockerfile
        ==========
        
        The goal of this repository is to provide a wrapper around
        [docker/docker](https://github.com/docker/docker)'s parser for dockerfiles.
        
        
        ## python library
        
        ### Installation
        
        This project uses [setuptools-golang](https://github.com/asottile/setuptools-golang)
        when built from source.  To build from source you'll need a go compiler.
        
        If you're using linux and sufficiently new pip (>=8.1) you should be able to
        just download prebuilt manylinux1 wheels.
        
        ```
        pip install dockerfile
        ```
        
        ### Usage
        
        There's three api functions provided by this library:
        
        #### `dockerfile.all_cmds()`
        
        List all of the known dockerfile cmds.
        
        ```python
        >>> dockerfile.all_cmds()
        ('add', 'arg', 'cmd', 'copy', 'entrypoint', 'env', 'expose', 'from', 'healthcheck', 'label', 'maintainer', 'onbuild', 'run', 'shell', 'stopsignal', 'user', 'volume', 'workdir')
        ```
        
        #### `dockerfile.parse_file(filename)`
        
        Parse a Dockerfile by filename.
        Returns a `tuple` of `dockerfile.Command` objects representing each layer of
        the Dockerfile.
        Possible exceptions:
        - `dockerfile.GoIOError`: The file could not be opened.
        - `dockerfile.ParseError`: The Dockerfile was not parseable.
        
        ```python
        >>> pprint.pprint(dockerfile.parse_file('testfiles/Dockerfile.ok'))
        (Command(cmd='from', sub_cmd=None, json=False, original='FROM ubuntu:xenial', start_line=1, flags=(), value=('ubuntu:xenial',)),
         Command(cmd='cmd', sub_cmd=None, json=True, original='CMD ["echo", "hi"]', start_line=2, flags=(), value=('echo', 'hi')))
        ```
        
        #### `dockerfile.parse_string(s)`
        
        Parse a dockerfile using a string.
        Returns a `tuple` of `dockerfile.Command` objects representing each layer of
        the Dockerfile.
        Possible exceptions:
        - `dockerfile.ParseError`: The Dockerfile was not parseable.
        
        ```python
        >>> dockerfile.parse_string('FROM ubuntu:xenial')
        (Command(cmd='from', sub_cmd=None, json=False, original='FROM ubuntu:xenial', start_line=1, flags=(), value=('ubuntu:xenial',)),)
        ```
        
        ## go library
        
        Slightly more convenient than the api provided by docker/docker?  Might not be
        terribly useful -- the main point of this repository was a python wrapper.
        
        ### Installation
        
        ```
        go get github.com/asottile/dockerfile
        ```
        
        ### Usage
        
        [godoc](https://godoc.org/github.com/asottile/dockerfile)
        
Platform: UNKNOWN
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.4
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Programming Language :: Python :: Implementation :: PyPy
Requires-Python: >=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*
Description-Content-Type: text/markdown
