module Hadolint.Formatter ( OutputFormat (..), Result (..), printResults, readMaybeOutputFormat, ) where import Data.Text (Text) import Hadolint.Formatter.Format import Language.Docker.Parser (DockerfileError) import qualified Hadolint.Formatter.Checkstyle as FormatCheckstyle import qualified Hadolint.Formatter.Codacy as FormatCodacy import qualified Hadolint.Formatter.Codeclimate as FormatCodeclimate import qualified Hadolint.Formatter.Gnu as FormatGnu import qualified Hadolint.Formatter.Json as FormatJson import qualified Hadolint.Formatter.Sarif as FormatSarif import qualified Hadolint.Formatter.SonarQube as FormatSonarQube import qualified Hadolint.Formatter.TTY as FormatTTY printResults :: Foldable f => OutputFormat -> Bool -> Maybe FilePath -> f (Result Text DockerfileError) -> IO () printResults :: forall (f :: * -> *). Foldable f => OutputFormat -> Bool -> Maybe FilePath -> f (Result Text DockerfileError) -> IO () printResults OutputFormat format Bool nocolor Maybe FilePath filePathInReport f (Result Text DockerfileError) allResults = case OutputFormat format of OutputFormat Checkstyle -> forall (f :: * -> *) s e. (Foldable f, VisualStream s, TraversableStream s, ShowErrorComponent e) => f (Result s e) -> Maybe FilePath -> IO () FormatCheckstyle.printResults f (Result Text DockerfileError) allResults Maybe FilePath filePathInReport OutputFormat Codacy -> forall (f :: * -> *) s e. (Foldable f, VisualStream s, TraversableStream s, ShowErrorComponent e) => f (Result s e) -> IO () FormatCodacy.printResults f (Result Text DockerfileError) allResults OutputFormat CodeclimateJson -> forall s e (f :: * -> *). (VisualStream s, TraversableStream s, ShowErrorComponent e, Foldable f) => f (Result s e) -> IO () FormatCodeclimate.printResults f (Result Text DockerfileError) allResults OutputFormat GitlabCodeclimateJson -> forall (f :: * -> *) s e. (Foldable f, VisualStream s, TraversableStream s, ShowErrorComponent e) => f (Result s e) -> IO () FormatCodeclimate.printGitlabResults f (Result Text DockerfileError) allResults OutputFormat Gnu -> forall s e (f :: * -> *). (VisualStream s, TraversableStream s, ShowErrorComponent e, Foldable f) => f (Result s e) -> IO () FormatGnu.printResults f (Result Text DockerfileError) allResults OutputFormat Json -> forall s e (f :: * -> *). (VisualStream s, TraversableStream s, ShowErrorComponent e, Foldable f) => f (Result s e) -> IO () FormatJson.printResults f (Result Text DockerfileError) allResults OutputFormat Sarif -> forall s e (f :: * -> *). (VisualStream s, TraversableStream s, ShowErrorComponent e, Foldable f) => f (Result s e) -> IO () FormatSarif.printResults f (Result Text DockerfileError) allResults OutputFormat SonarQube -> forall s e (f :: * -> *). (VisualStream s, TraversableStream s, ShowErrorComponent e, Foldable f) => f (Result s e) -> IO () FormatSonarQube.printResults f (Result Text DockerfileError) allResults OutputFormat TTY -> forall s e (f :: * -> *). (VisualStream s, TraversableStream s, ShowErrorComponent e, Foldable f) => f (Result s e) -> Bool -> IO () FormatTTY.printResults f (Result Text DockerfileError) allResults Bool nocolor