buffet-0.5.0: src/Buffet/Parse/ParseHealthCheck.hs
module Buffet.Parse.ParseHealthCheck
( get
) where
import qualified Buffet.Toolbox.DockerTools as DockerTools
import qualified Data.Maybe as Maybe
import qualified Data.Text as T
import qualified Language.Docker as Docker
import Prelude (Maybe(Just, Nothing), ($), (.), reverse)
get :: Docker.Dockerfile -> Maybe T.Text
get stage =
case lastHealthcheck stage of
Just (Docker.Check checkArguments) ->
Just . DockerTools.printArguments $ Docker.checkCommand checkArguments
_ -> Nothing
lastHealthcheck :: Docker.Dockerfile -> Maybe (Docker.Check T.Text)
lastHealthcheck = Maybe.listToMaybe . reverse . Maybe.mapMaybe maybeHealthcheck
where
maybeHealthcheck (Docker.InstructionPos (Docker.Healthcheck check) _ _) =
Just check
maybeHealthcheck _ = Nothing