language-dockerfile: Dockerfile linter, parser, pretty-printer and embedded DSL

[ development, gpl, library ] [ Propose Tags ]

Forked from hadolint.

All functions for parsing, printing and writting Dockerfiles are exported through Language.Dockerfile. For more fine-grained operations look for specific modules that implement a certain functionality.

There are two flags in this package, which enable building two executables:

See the GitHub project for the source-code and examples.


[Skip to Readme]
Versions [RSS] [faq] 0.1.2.0, 0.2.3.0, 0.3.0.0, 0.3.1.0, 0.3.2.0, 0.3.3.0, 0.3.4.0, 0.3.5.0, 0.3.6.0
Dependencies base (>=4.8 && <5), bytestring (>=0.10), free, language-dockerfile, mtl, parsec (>=3.1), pretty, ShellCheck, split (>=0.2), template-haskell, th-lift, th-lift-instances [details]
License GPL-3.0-only
Copyright Lukas Martinelli, Copyright (c) 2016, Pedro Tacla Yamada, Copyright (c) 2016
Author Lukas Martinelli, Pedro Tacla Yamada
Maintainer tacla.yamada@gmail.com
Category Development
Home page https://github.com/beijaflor-io/language-dockerfile#readme
Bug tracker https://github.com/beijaflor-io/language-dockerfile/issues
Source repo head: git clone https://github.com/beijaflor-io/language-dockerfile
Uploaded by yamadapc at 2016-08-07T00:46:58Z
Distributions NixOS:0.3.6.0
Executables hadolint, dockerfmt
Downloads 5607 total (31 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Hackage Matrix CI
Docs available [build log]
Last success reported on 2016-08-07 [all 1 reports]

Modules

[Index]

Manual Flags

NameDescriptionDefault
dockerfmt

Build the dockerfmt executable

Disabled
hadolint

Build the hadolint executable

Disabled
Automatic Flags
NameDescriptionDefault

Use -f <flag> to enable a flag, or -f -<flag> to disable that flag. More info

Downloads

Maintainer's Corner

For package maintainers and hackage trustees

Candidates


Readme for language-dockerfile-0.1.2.0

[back to package description]

haskell-language-dockerfile

Dockerfile linter, parser, pretty-printer and embedded DSL, forked from hadolint.

It extends hadolint with the pretty-printer and EDSL for writting Dockerfiles in Haskell.

Parsing files

import Language.Dockerfile
main = do
    ef <- parseFile "./Dockerfile"
    print ef

Parsing strings

import Language.Dockerfile
main = do
    c <- readFile "./Dockerfile"
    print (parseString c)

Pretty-printing files

import Language.Dockerfile
main = do
    Right d <- parseFile "./Dockerfile"
    putStr (prettyPrint d)

Writting Dockerfiles in Haskell

{-# LANGUAGE OverloadedStrings #-}
import Language.Dockerfile
main = putStr $ toDockerfileStr $ do
    from "node"
    run (words "apt-get update")
    -- ...

Using the QuasiQuoter

{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE QuasiQuotes       #-}
import Language.Dockerfile
main = putStr $ toDockerfileStr $ do
    from "node"
    run (words "apt-get update")
    [edockerfile|
    RUN apt-get update
    CMD node something.js
    |]
    -- ...

License

GPLv3