{-# LANGUAGE DeriveFunctor #-} module Language.Docker.EDSL.Types where import Data.List.NonEmpty (NonEmpty) import Data.String import Data.Text (Text) import qualified Language.Docker.Syntax as Syntax data EBaseImage = EBaseImage Syntax.Image (Maybe Syntax.Tag) (Maybe Syntax.Digest) (Maybe Syntax.ImageAlias) (Maybe Syntax.Platform) deriving (Show, Eq, Ord) instance IsString EBaseImage where fromString s = EBaseImage (fromString s) Nothing Nothing Nothing Nothing data EInstruction next = From EBaseImage next | AddArgs (NonEmpty Syntax.SourcePath) Syntax.TargetPath Syntax.Chown next | User Text next | Label Syntax.Pairs next | StopSignal Text next | CopyArgs (NonEmpty Syntax.SourcePath) Syntax.TargetPath Syntax.Chown Syntax.CopySource next | RunArgs (Syntax.Arguments Text) next | CmdArgs (Syntax.Arguments Text) next | Shell (Syntax.Arguments Text) next | Workdir Syntax.Directory next | Expose Syntax.Ports next | Volume Text next | EntrypointArgs (Syntax.Arguments Text) next | Maintainer Text next | Env Syntax.Pairs next | Arg Text (Maybe Text) next | Comment Text next | Healthcheck (Syntax.Check Text) next | OnBuildRaw (Syntax.Instruction Text) next | Embed [Syntax.InstructionPos Text] next deriving (Functor)