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 :: Dockerfile -> Maybe Text get Dockerfile stage = case Dockerfile -> Maybe (Check Text) lastHealthcheck Dockerfile stage of Just (Docker.Check CheckArgs Text checkArguments) -> Text -> Maybe Text forall a. a -> Maybe a Just (Text -> Maybe Text) -> (Arguments Text -> Text) -> Arguments Text -> Maybe Text forall b c a. (b -> c) -> (a -> b) -> a -> c . Arguments Text -> Text DockerTools.printArguments (Arguments Text -> Maybe Text) -> Arguments Text -> Maybe Text forall a b. (a -> b) -> a -> b $ CheckArgs Text -> Arguments Text forall args. CheckArgs args -> Arguments args Docker.checkCommand CheckArgs Text checkArguments Maybe (Check Text) _ -> Maybe Text forall a. Maybe a Nothing lastHealthcheck :: Docker.Dockerfile -> Maybe (Docker.Check T.Text) lastHealthcheck :: Dockerfile -> Maybe (Check Text) lastHealthcheck = [Check Text] -> Maybe (Check Text) forall a. [a] -> Maybe a Maybe.listToMaybe ([Check Text] -> Maybe (Check Text)) -> (Dockerfile -> [Check Text]) -> Dockerfile -> Maybe (Check Text) forall b c a. (b -> c) -> (a -> b) -> a -> c . [Check Text] -> [Check Text] forall a. [a] -> [a] reverse ([Check Text] -> [Check Text]) -> (Dockerfile -> [Check Text]) -> Dockerfile -> [Check Text] forall b c a. (b -> c) -> (a -> b) -> a -> c . (InstructionPos Text -> Maybe (Check Text)) -> Dockerfile -> [Check Text] forall a b. (a -> Maybe b) -> [a] -> [b] Maybe.mapMaybe InstructionPos Text -> Maybe (Check Text) forall args. InstructionPos args -> Maybe (Check args) maybeHealthcheck where maybeHealthcheck :: InstructionPos args -> Maybe (Check args) maybeHealthcheck (Docker.InstructionPos (Docker.Healthcheck Check args check) Text _ Linenumber _) = Check args -> Maybe (Check args) forall a. a -> Maybe a Just Check args check maybeHealthcheck InstructionPos args _ = Maybe (Check args) forall a. Maybe a Nothing