hadolint-2.5.0: src/Hadolint.hs
module Hadolint
( module Hadolint.Lint,
module Hadolint.Process,
module Hadolint.Config,
Result (..),
OutputFormat (..),
shallSkipErrorStatus,
printResults,
)
where
import Data.Text (Text)
import Hadolint.Config
import qualified Hadolint.Formatter.Checkstyle
import qualified Hadolint.Formatter.Codacy
import qualified Hadolint.Formatter.Codeclimate
import Hadolint.Formatter.Format (Result (..))
import qualified Hadolint.Formatter.Json
import qualified Hadolint.Formatter.SonarQube
import qualified Hadolint.Formatter.TTY
import Hadolint.Lint
import Hadolint.Process
import Language.Docker.Parser (DockerfileError)
data OutputFormat
= Json
| SonarQube
| TTY
| CodeclimateJson
| GitlabCodeclimateJson
| Checkstyle
| Codacy
deriving (Show, Eq)
shallSkipErrorStatus :: OutputFormat -> Bool
shallSkipErrorStatus format = format `elem` [CodeclimateJson, Codacy]
printResults :: Foldable f => OutputFormat -> Bool -> Maybe FilePath -> f (Result Text DockerfileError) -> IO ()
printResults format nocolor filePathInReport allResults =
case format of
TTY -> Hadolint.Formatter.TTY.printResults allResults nocolor
SonarQube -> Hadolint.Formatter.SonarQube.printResults allResults
Json -> Hadolint.Formatter.Json.printResults allResults
Checkstyle -> Hadolint.Formatter.Checkstyle.printResults allResults filePathInReport
CodeclimateJson -> Hadolint.Formatter.Codeclimate.printResults allResults
GitlabCodeclimateJson -> Hadolint.Formatter.Codeclimate.printGitlabResults allResults
Codacy -> Hadolint.Formatter.Codacy.printResults allResults