Show HN: Static Analysis Tool for Dockerfiles in Haskell

63 points by morgenkaffee 9 years ago | 3 comments
  • morgenkaffee 9 years ago
    I can only encourage to use Haskell for such kinds of problems. This was my first Haskell program and I was productive quite fast thanks to "Learn you a Haskell" and the great Parsec library for parsing the Dockerfile.

    If you are an experienced Haskeller I would be very glad if you look over the project and problems in an issue. Because mostly I have no idea whether what I am doing is idiomatic or not.

    • boothead 9 years ago
      The code looks good. One thing you might want to consider is using applicative style for parsing. So

        taggedImage :: Parser BaseImage
        taggedImage = do
          name <- many (noneOf ":")
          reservedOp ":"
          tag <- many (noneOf "\n")
          return $ TaggedImage name tag
      
      Would end up something like:

        taggedImage :: Parser BaseImage
        taggedImage = TaggedImage <$> (many (noneOf "\n") <* reservedOp ":")
                                  <*> (many (noneOf "\n")
    • dominotw 9 years ago
      i would be nice to make codeclimate engine out of this. https://docs.codeclimate.com/docs/list-of-engines