-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/
-- | Dockerfile parser, pretty-printer and embedded DSL
--
-- All functions for parsing and pretty-printing Dockerfiles are exported
-- through Language.Docker. For more fine-grained operations
-- look for specific modules that implement a certain functionality. See
-- the GitHub project for the source-code and examples.
@package language-docker
@version 13.0.0
module Language.Docker.Syntax
type Directory = Text
newtype Tag
Tag :: Text -> Tag
[$sel:unTag:Tag] :: Tag -> Text
-- | Type of the Dockerfile AST
type Dockerfile = [InstructionPos Text]
-- | All commands available in Dockerfiles
data Instruction args
From :: !BaseImage -> Instruction args
Add :: !AddArgs -> !AddFlags -> Instruction args
User :: !Text -> Instruction args
Label :: !Pairs -> Instruction args
Stopsignal :: !Text -> Instruction args
Copy :: !CopyArgs -> !CopyFlags -> Instruction args
Run :: !RunArgs args -> Instruction args
Cmd :: !Arguments args -> Instruction args
Shell :: !Arguments args -> Instruction args
Workdir :: !Directory -> Instruction args
Expose :: !Ports -> Instruction args
Volume :: !Text -> Instruction args
Entrypoint :: !Arguments args -> Instruction args
Maintainer :: !Text -> Instruction args
Env :: !Pairs -> Instruction args
Arg :: !Text -> !Maybe Text -> Instruction args
Healthcheck :: !Check args -> Instruction args
Pragma :: !PragmaDirective -> Instruction args
Comment :: !Text -> Instruction args
OnBuild :: !Instruction args -> Instruction args
-- | Instruction with additional location information required for
-- creating good check messages
data InstructionPos args
InstructionPos :: !Instruction args -> !Filename -> !Linenumber -> InstructionPos args
[$sel:instruction:InstructionPos] :: InstructionPos args -> !Instruction args
[$sel:sourcename:InstructionPos] :: InstructionPos args -> !Filename
[$sel:lineNumber:InstructionPos] :: InstructionPos args -> !Linenumber
data BaseImage
BaseImage :: !Image -> !Maybe Tag -> !Maybe Digest -> !Maybe ImageAlias -> !Maybe Platform -> BaseImage
[$sel:image:BaseImage] :: BaseImage -> !Image
[$sel:tag:BaseImage] :: BaseImage -> !Maybe Tag
[$sel:digest:BaseImage] :: BaseImage -> !Maybe Digest
[$sel:alias:BaseImage] :: BaseImage -> !Maybe ImageAlias
[$sel:platform:BaseImage] :: BaseImage -> !Maybe Platform
newtype SourcePath
SourcePath :: Text -> SourcePath
[$sel:unSourcePath:SourcePath] :: SourcePath -> Text
newtype TargetPath
TargetPath :: Text -> TargetPath
[$sel:unTargetPath:TargetPath] :: TargetPath -> Text
data Chown
Chown :: !Text -> Chown
NoChown :: Chown
data CopySource
CopySource :: !Text -> CopySource
NoSource :: CopySource
data CopyArgs
CopyArgs :: NonEmpty SourcePath -> !TargetPath -> CopyArgs
[$sel:sourcePaths:CopyArgs] :: CopyArgs -> NonEmpty SourcePath
[$sel:targetPath:CopyArgs] :: CopyArgs -> !TargetPath
data AddArgs
AddArgs :: NonEmpty SourcePath -> !TargetPath -> AddArgs
[$sel:sourcePaths:AddArgs] :: AddArgs -> NonEmpty SourcePath
[$sel:targetPath:AddArgs] :: AddArgs -> !TargetPath
data Check args
Check :: !CheckArgs args -> Check args
NoCheck :: Check args
data CheckArgs args
CheckArgs :: !Arguments args -> !Maybe Duration -> !Maybe Duration -> !Maybe Duration -> !Maybe Retries -> CheckArgs args
[$sel:checkCommand:CheckArgs] :: CheckArgs args -> !Arguments args
[$sel:interval:CheckArgs] :: CheckArgs args -> !Maybe Duration
[$sel:timeout:CheckArgs] :: CheckArgs args -> !Maybe Duration
[$sel:startPeriod:CheckArgs] :: CheckArgs args -> !Maybe Duration
[$sel:retries:CheckArgs] :: CheckArgs args -> !Maybe Retries
data Image
Image :: !Maybe Registry -> !Text -> Image
[$sel:registryName:Image] :: Image -> !Maybe Registry
[$sel:imageName:Image] :: Image -> !Text
newtype Registry
Registry :: Text -> Registry
[$sel:unRegistry:Registry] :: Registry -> Text
newtype ImageAlias
ImageAlias :: Text -> ImageAlias
[$sel:unImageAlias:ImageAlias] :: ImageAlias -> Text
newtype Digest
Digest :: Text -> Digest
[$sel:unDigest:Digest] :: Digest -> Text
newtype Ports
Ports :: [PortSpec] -> Ports
[$sel:unPorts:Ports] :: Ports -> [PortSpec]
data Arguments args
ArgumentsText :: args -> Arguments args
ArgumentsList :: args -> Arguments args
type Pairs = [(Text, Text)]
type Filename = Text
type Platform = Text
type Linenumber = Int
data PortSpec
PortSpec :: !Port -> PortSpec
PortRangeSpec :: !PortRange -> PortSpec
data Checksum
Checksum :: !Text -> Checksum
NoChecksum :: Checksum
data Chmod
Chmod :: !Text -> Chmod
NoChmod :: Chmod
data Link
Link :: Link
NoLink :: Link
newtype Duration
Duration :: DiffTime -> Duration
[$sel:durationTime:Duration] :: Duration -> DiffTime
newtype Retries
Retries :: Int -> Retries
[$sel:times:Retries] :: Retries -> Int
data CopyFlags
CopyFlags :: !Chown -> !Chmod -> !Link -> !CopySource -> CopyFlags
[$sel:chownFlag:CopyFlags] :: CopyFlags -> !Chown
[$sel:chmodFlag:CopyFlags] :: CopyFlags -> !Chmod
[$sel:linkFlag:CopyFlags] :: CopyFlags -> !Link
[$sel:sourceFlag:CopyFlags] :: CopyFlags -> !CopySource
data AddFlags
AddFlags :: !Checksum -> !Chown -> !Chmod -> !Link -> AddFlags
[$sel:checksumFlag:AddFlags] :: AddFlags -> !Checksum
[$sel:chownFlag:AddFlags] :: AddFlags -> !Chown
[$sel:chmodFlag:AddFlags] :: AddFlags -> !Chmod
[$sel:linkFlag:AddFlags] :: AddFlags -> !Link
data RunMount
BindMount :: !BindOpts -> RunMount
CacheMount :: !CacheOpts -> RunMount
TmpfsMount :: !TmpOpts -> RunMount
SecretMount :: !SecretOpts -> RunMount
SshMount :: !SecretOpts -> RunMount
data BindOpts
BindOpts :: !TargetPath -> !Maybe SourcePath -> !Maybe Text -> !Maybe Bool -> BindOpts
[$sel:bTarget:BindOpts] :: BindOpts -> !TargetPath
[$sel:bSource:BindOpts] :: BindOpts -> !Maybe SourcePath
[$sel:bFromImage:BindOpts] :: BindOpts -> !Maybe Text
[$sel:bReadOnly:BindOpts] :: BindOpts -> !Maybe Bool
data CacheOpts
CacheOpts :: !TargetPath -> !Maybe CacheSharing -> !Maybe Text -> !Maybe Bool -> !Maybe Text -> !Maybe SourcePath -> !Maybe Text -> !Maybe Text -> !Maybe Text -> CacheOpts
[$sel:cTarget:CacheOpts] :: CacheOpts -> !TargetPath
[$sel:cSharing:CacheOpts] :: CacheOpts -> !Maybe CacheSharing
[$sel:cCacheId:CacheOpts] :: CacheOpts -> !Maybe Text
[$sel:cReadOnly:CacheOpts] :: CacheOpts -> !Maybe Bool
[$sel:cFromImage:CacheOpts] :: CacheOpts -> !Maybe Text
[$sel:cSource:CacheOpts] :: CacheOpts -> !Maybe SourcePath
[$sel:cMode:CacheOpts] :: CacheOpts -> !Maybe Text
[$sel:cUid:CacheOpts] :: CacheOpts -> !Maybe Text
[$sel:cGid:CacheOpts] :: CacheOpts -> !Maybe Text
newtype TmpOpts
TmpOpts :: TargetPath -> TmpOpts
[$sel:tTarget:TmpOpts] :: TmpOpts -> TargetPath
data SecretOpts
SecretOpts :: !Maybe TargetPath -> !Maybe Text -> !Maybe Bool -> !Maybe SourcePath -> !Maybe Text -> !Maybe Text -> !Maybe Text -> SecretOpts
[$sel:sTarget:SecretOpts] :: SecretOpts -> !Maybe TargetPath
[$sel:sCacheId:SecretOpts] :: SecretOpts -> !Maybe Text
[$sel:sIsRequired:SecretOpts] :: SecretOpts -> !Maybe Bool
[$sel:sSource:SecretOpts] :: SecretOpts -> !Maybe SourcePath
[$sel:sMode:SecretOpts] :: SecretOpts -> !Maybe Text
[$sel:sUid:SecretOpts] :: SecretOpts -> !Maybe Text
[$sel:sGid:SecretOpts] :: SecretOpts -> !Maybe Text
data CacheSharing
Shared :: CacheSharing
Private :: CacheSharing
Locked :: CacheSharing
data RunSecurity
Insecure :: RunSecurity
Sandbox :: RunSecurity
data RunNetwork
NetworkNone :: RunNetwork
NetworkHost :: RunNetwork
NetworkDefault :: RunNetwork
data RunFlags
RunFlags :: !Set RunMount -> !Maybe RunSecurity -> !Maybe RunNetwork -> RunFlags
[$sel:mount:RunFlags] :: RunFlags -> !Set RunMount
[$sel:security:RunFlags] :: RunFlags -> !Maybe RunSecurity
[$sel:network:RunFlags] :: RunFlags -> !Maybe RunNetwork
data RunArgs args
RunArgs :: Arguments args -> RunFlags -> RunArgs args
newtype EscapeChar
EscapeChar :: Char -> EscapeChar
[$sel:escape:EscapeChar] :: EscapeChar -> Char
newtype SyntaxImage
SyntaxImage :: Image -> SyntaxImage
[$sel:syntax:SyntaxImage] :: SyntaxImage -> Image
data PragmaDirective
Escape :: !EscapeChar -> PragmaDirective
Syntax :: !SyntaxImage -> PragmaDirective
defaultEsc :: Char
-- | A port can either be a number (plus a protocol, tcp by default) or a
-- variable.
data Port
Port :: !Int -> !Protocol -> Port
PortStr :: !Text -> Port
-- | A port range starts and ends with either a number or a variable and
-- can have a protocol associated (tcp by default). The protocol of the
-- start and end port shall be ignored.
data PortRange
PortRange :: !Port -> !Port -> PortRange
data Protocol
TCP :: Protocol
UDP :: Protocol
instance Data.String.IsString Language.Docker.Syntax.Registry
instance GHC.Classes.Ord Language.Docker.Syntax.Registry
instance GHC.Classes.Eq Language.Docker.Syntax.Registry
instance GHC.Show.Show Language.Docker.Syntax.Registry
instance GHC.Classes.Ord Language.Docker.Syntax.Image
instance GHC.Classes.Eq Language.Docker.Syntax.Image
instance GHC.Show.Show Language.Docker.Syntax.Image
instance Data.String.IsString Language.Docker.Syntax.Tag
instance GHC.Classes.Ord Language.Docker.Syntax.Tag
instance GHC.Classes.Eq Language.Docker.Syntax.Tag
instance GHC.Show.Show Language.Docker.Syntax.Tag
instance Data.String.IsString Language.Docker.Syntax.Digest
instance GHC.Classes.Ord Language.Docker.Syntax.Digest
instance GHC.Classes.Eq Language.Docker.Syntax.Digest
instance GHC.Show.Show Language.Docker.Syntax.Digest
instance GHC.Classes.Ord Language.Docker.Syntax.PortSpec
instance GHC.Classes.Eq Language.Docker.Syntax.PortSpec
instance GHC.Show.Show Language.Docker.Syntax.PortSpec
instance GHC.Classes.Ord Language.Docker.Syntax.Ports
instance GHC.Classes.Eq Language.Docker.Syntax.Ports
instance GHC.Show.Show Language.Docker.Syntax.Ports
instance Data.String.IsString Language.Docker.Syntax.ImageAlias
instance GHC.Classes.Ord Language.Docker.Syntax.ImageAlias
instance GHC.Classes.Eq Language.Docker.Syntax.ImageAlias
instance GHC.Show.Show Language.Docker.Syntax.ImageAlias
instance GHC.Show.Show Language.Docker.Syntax.BaseImage
instance GHC.Classes.Ord Language.Docker.Syntax.BaseImage
instance GHC.Classes.Eq Language.Docker.Syntax.BaseImage
instance Data.String.IsString Language.Docker.Syntax.SourcePath
instance GHC.Classes.Ord Language.Docker.Syntax.SourcePath
instance GHC.Classes.Eq Language.Docker.Syntax.SourcePath
instance GHC.Show.Show Language.Docker.Syntax.SourcePath
instance Data.String.IsString Language.Docker.Syntax.TargetPath
instance GHC.Classes.Ord Language.Docker.Syntax.TargetPath
instance GHC.Classes.Eq Language.Docker.Syntax.TargetPath
instance GHC.Show.Show Language.Docker.Syntax.TargetPath
instance GHC.Classes.Ord Language.Docker.Syntax.Checksum
instance GHC.Classes.Eq Language.Docker.Syntax.Checksum
instance GHC.Show.Show Language.Docker.Syntax.Checksum
instance GHC.Classes.Ord Language.Docker.Syntax.Chown
instance GHC.Classes.Eq Language.Docker.Syntax.Chown
instance GHC.Show.Show Language.Docker.Syntax.Chown
instance GHC.Classes.Ord Language.Docker.Syntax.Chmod
instance GHC.Classes.Eq Language.Docker.Syntax.Chmod
instance GHC.Show.Show Language.Docker.Syntax.Chmod
instance GHC.Classes.Ord Language.Docker.Syntax.Link
instance GHC.Classes.Eq Language.Docker.Syntax.Link
instance GHC.Show.Show Language.Docker.Syntax.Link
instance GHC.Classes.Ord Language.Docker.Syntax.CopySource
instance GHC.Classes.Eq Language.Docker.Syntax.CopySource
instance GHC.Show.Show Language.Docker.Syntax.CopySource
instance GHC.Real.Fractional Language.Docker.Syntax.Duration
instance GHC.Num.Num Language.Docker.Syntax.Duration
instance GHC.Classes.Ord Language.Docker.Syntax.Duration
instance GHC.Classes.Eq Language.Docker.Syntax.Duration
instance GHC.Show.Show Language.Docker.Syntax.Duration
instance GHC.Num.Num Language.Docker.Syntax.Retries
instance GHC.Classes.Ord Language.Docker.Syntax.Retries
instance GHC.Classes.Eq Language.Docker.Syntax.Retries
instance GHC.Show.Show Language.Docker.Syntax.Retries
instance GHC.Classes.Ord Language.Docker.Syntax.CopyArgs
instance GHC.Classes.Eq Language.Docker.Syntax.CopyArgs
instance GHC.Show.Show Language.Docker.Syntax.CopyArgs
instance GHC.Classes.Ord Language.Docker.Syntax.CopyFlags
instance GHC.Classes.Eq Language.Docker.Syntax.CopyFlags
instance GHC.Show.Show Language.Docker.Syntax.CopyFlags
instance GHC.Classes.Ord Language.Docker.Syntax.AddArgs
instance GHC.Classes.Eq Language.Docker.Syntax.AddArgs
instance GHC.Show.Show Language.Docker.Syntax.AddArgs
instance GHC.Classes.Ord Language.Docker.Syntax.AddFlags
instance GHC.Classes.Eq Language.Docker.Syntax.AddFlags
instance GHC.Show.Show Language.Docker.Syntax.AddFlags
instance GHC.Base.Functor Language.Docker.Syntax.Arguments
instance GHC.Classes.Ord args => GHC.Classes.Ord (Language.Docker.Syntax.Arguments args)
instance GHC.Classes.Eq args => GHC.Classes.Eq (Language.Docker.Syntax.Arguments args)
instance GHC.Show.Show args => GHC.Show.Show (Language.Docker.Syntax.Arguments args)
instance GHC.Base.Functor Language.Docker.Syntax.CheckArgs
instance GHC.Classes.Ord args => GHC.Classes.Ord (Language.Docker.Syntax.CheckArgs args)
instance GHC.Classes.Eq args => GHC.Classes.Eq (Language.Docker.Syntax.CheckArgs args)
instance GHC.Show.Show args => GHC.Show.Show (Language.Docker.Syntax.CheckArgs args)
instance GHC.Base.Functor Language.Docker.Syntax.Check
instance GHC.Classes.Ord args => GHC.Classes.Ord (Language.Docker.Syntax.Check args)
instance GHC.Classes.Eq args => GHC.Classes.Eq (Language.Docker.Syntax.Check args)
instance GHC.Show.Show args => GHC.Show.Show (Language.Docker.Syntax.Check args)
instance GHC.Classes.Ord Language.Docker.Syntax.BindOpts
instance GHC.Classes.Eq Language.Docker.Syntax.BindOpts
instance GHC.Show.Show Language.Docker.Syntax.BindOpts
instance GHC.Classes.Ord Language.Docker.Syntax.TmpOpts
instance GHC.Show.Show Language.Docker.Syntax.TmpOpts
instance GHC.Classes.Eq Language.Docker.Syntax.TmpOpts
instance GHC.Classes.Ord Language.Docker.Syntax.SecretOpts
instance GHC.Show.Show Language.Docker.Syntax.SecretOpts
instance GHC.Classes.Eq Language.Docker.Syntax.SecretOpts
instance GHC.Classes.Ord Language.Docker.Syntax.CacheSharing
instance GHC.Classes.Eq Language.Docker.Syntax.CacheSharing
instance GHC.Show.Show Language.Docker.Syntax.CacheSharing
instance GHC.Classes.Ord Language.Docker.Syntax.CacheOpts
instance GHC.Classes.Eq Language.Docker.Syntax.CacheOpts
instance GHC.Show.Show Language.Docker.Syntax.CacheOpts
instance GHC.Classes.Ord Language.Docker.Syntax.RunMount
instance GHC.Show.Show Language.Docker.Syntax.RunMount
instance GHC.Classes.Eq Language.Docker.Syntax.RunMount
instance GHC.Classes.Ord Language.Docker.Syntax.RunSecurity
instance GHC.Classes.Eq Language.Docker.Syntax.RunSecurity
instance GHC.Show.Show Language.Docker.Syntax.RunSecurity
instance GHC.Classes.Ord Language.Docker.Syntax.RunNetwork
instance GHC.Classes.Eq Language.Docker.Syntax.RunNetwork
instance GHC.Show.Show Language.Docker.Syntax.RunNetwork
instance GHC.Classes.Ord Language.Docker.Syntax.RunFlags
instance GHC.Classes.Eq Language.Docker.Syntax.RunFlags
instance GHC.Show.Show Language.Docker.Syntax.RunFlags
instance GHC.Base.Functor Language.Docker.Syntax.RunArgs
instance GHC.Classes.Ord args => GHC.Classes.Ord (Language.Docker.Syntax.RunArgs args)
instance GHC.Classes.Eq args => GHC.Classes.Eq (Language.Docker.Syntax.RunArgs args)
instance GHC.Show.Show args => GHC.Show.Show (Language.Docker.Syntax.RunArgs args)
instance GHC.Classes.Ord Language.Docker.Syntax.EscapeChar
instance GHC.Classes.Eq Language.Docker.Syntax.EscapeChar
instance GHC.Show.Show Language.Docker.Syntax.EscapeChar
instance GHC.Classes.Ord Language.Docker.Syntax.SyntaxImage
instance GHC.Classes.Eq Language.Docker.Syntax.SyntaxImage
instance GHC.Show.Show Language.Docker.Syntax.SyntaxImage
instance GHC.Classes.Ord Language.Docker.Syntax.PragmaDirective
instance GHC.Classes.Eq Language.Docker.Syntax.PragmaDirective
instance GHC.Show.Show Language.Docker.Syntax.PragmaDirective
instance GHC.Base.Functor Language.Docker.Syntax.Instruction
instance GHC.Show.Show args => GHC.Show.Show (Language.Docker.Syntax.Instruction args)
instance GHC.Classes.Ord args => GHC.Classes.Ord (Language.Docker.Syntax.Instruction args)
instance GHC.Classes.Eq args => GHC.Classes.Eq (Language.Docker.Syntax.Instruction args)
instance GHC.Base.Functor Language.Docker.Syntax.InstructionPos
instance GHC.Show.Show args => GHC.Show.Show (Language.Docker.Syntax.InstructionPos args)
instance GHC.Classes.Ord args => GHC.Classes.Ord (Language.Docker.Syntax.InstructionPos args)
instance GHC.Classes.Eq args => GHC.Classes.Eq (Language.Docker.Syntax.InstructionPos args)
instance Text.Printf.IsChar Language.Docker.Syntax.EscapeChar
instance Data.String.IsString (Language.Docker.Syntax.RunArgs Data.Text.Internal.Text)
instance Data.Default.Class.Default Language.Docker.Syntax.RunFlags
instance Data.Default.Class.Default Language.Docker.Syntax.CacheOpts
instance Data.Default.Class.Default Language.Docker.Syntax.SecretOpts
instance Data.Default.Class.Default Language.Docker.Syntax.TmpOpts
instance Data.Default.Class.Default Language.Docker.Syntax.BindOpts
instance Data.String.IsString (Language.Docker.Syntax.Arguments Data.Text.Internal.Text)
instance GHC.IsList.IsList (Language.Docker.Syntax.Arguments Data.Text.Internal.Text)
instance Data.Default.Class.Default Language.Docker.Syntax.AddFlags
instance Data.Default.Class.Default Language.Docker.Syntax.CopyFlags
instance Data.String.IsString Language.Docker.Syntax.CopySource
instance Data.String.IsString Language.Docker.Syntax.Chmod
instance Data.String.IsString Language.Docker.Syntax.Chown
instance Data.String.IsString Language.Docker.Syntax.Checksum
instance GHC.IsList.IsList Language.Docker.Syntax.Ports
instance Data.String.IsString Language.Docker.Syntax.Image
module Language.Docker.PrettyPrint
data EscapeAccum
EscapeAccum :: !Builder -> !Int -> !Bool -> EscapeAccum
[$sel:buffer:EscapeAccum] :: EscapeAccum -> !Builder
[$sel:count:EscapeAccum] :: EscapeAccum -> !Int
[$sel:escaping:EscapeAccum] :: EscapeAccum -> !Bool
-- | Pretty print a Dockerfile to a Text
prettyPrint :: Dockerfile -> Text
prettyPrintDockerfile :: [InstructionPos Text] -> Doc ann
findEscapeChar :: [InstructionPos args] -> Char
-- | Pretty print a InstructionPos to a Doc
prettyPrintInstructionPos :: (?esc :: Char) => InstructionPos Text -> Doc ann
prettyPrintImage :: Image -> Doc ann
prettyPrintBaseImage :: BaseImage -> Doc ann
prettyPrintPairs :: (?esc :: Char) => Pairs -> Doc ann
prettyPrintPair :: (?esc :: Char) => (Text, Text) -> Doc ann
prettyPrintArguments :: (?esc :: Char) => Arguments Text -> Doc ann
prettyPrintJSON :: (?esc :: Char) => [Text] -> Doc ann
doubleQoute :: (?esc :: Char) => Text -> Doc ann
escapeQuotes :: (?esc :: Char) => Text -> Text
prettyPrintPortSpec :: PortSpec -> Doc ann
prettyPrintFileList :: NonEmpty SourcePath -> TargetPath -> Doc ann
prettyPrintChecksum :: Checksum -> Doc ann
prettyPrintChown :: Chown -> Doc ann
prettyPrintChmod :: Chmod -> Doc ann
prettyPrintLink :: Link -> Doc ann
prettyPrintCopySource :: CopySource -> Doc ann
prettyPrintDuration :: Text -> Maybe Duration -> Doc ann
prettyPrintRetries :: Maybe Retries -> Doc ann
prettyPrintRunMount :: (?esc :: Char) => Set RunMount -> Doc ann
prettyPrintRunNetwork :: Maybe RunNetwork -> Doc ann
prettyPrintRunSecurity :: Maybe RunSecurity -> Doc ann
prettyPrintPragma :: PragmaDirective -> Doc ann
prettyPrintInstruction :: (?esc :: Char) => Instruction Text -> Doc ann
spaceCat :: Doc ann -> Doc ann -> Doc ann
module Language.Docker.Parser
parseText :: Text -> Either Error Dockerfile
parseFile :: FilePath -> IO (Either Error Dockerfile)
-- | Reads the standard input until the end and parses the contents as a
-- Dockerfile
parseStdin :: IO (Either Error Dockerfile)
type Parser = Parsec DockerfileError Text
type Error = ParseErrorBundle Text DockerfileError
data DockerfileError
DuplicateFlagError :: String -> DockerfileError
NoValueFlagError :: String -> DockerfileError
InvalidFlagError :: String -> DockerfileError
FileListError :: String -> DockerfileError
MissingArgument :: [Text] -> DockerfileError
DuplicateArgument :: Text -> DockerfileError
UnexpectedArgument :: Text -> Text -> DockerfileError
QuoteError :: String -> String -> DockerfileError
module Language.Docker
-- | Type of the Dockerfile AST
type Dockerfile = [InstructionPos Text]
parseText :: Text -> Either Error Dockerfile
parseFile :: FilePath -> IO (Either Error Dockerfile)
-- | Reads the standard input until the end and parses the contents as a
-- Dockerfile
parseStdin :: IO (Either Error Dockerfile)
-- | Pretty-print a ParseError. The rendered String always
-- ends with a newline.
parseErrorPretty :: (VisualStream s, ShowErrorComponent e) => ParseError s e -> String
-- | Pretty-print a ParseErrorBundle. All ParseErrors in the
-- bundle will be pretty-printed in order together with the corresponding
-- offending lines by doing a single pass over the input stream. The
-- rendered String always ends with a newline.
errorBundlePretty :: (VisualStream s, TraversableStream s, ShowErrorComponent e) => ParseErrorBundle s e -> String
-- | Pretty print a Dockerfile to a Text
prettyPrint :: Dockerfile -> Text
prettyPrintDockerfile :: [InstructionPos Text] -> Doc ann
-- | All commands available in Dockerfiles
data Instruction args
From :: !BaseImage -> Instruction args
Add :: !AddArgs -> !AddFlags -> Instruction args
User :: !Text -> Instruction args
Label :: !Pairs -> Instruction args
Stopsignal :: !Text -> Instruction args
Copy :: !CopyArgs -> !CopyFlags -> Instruction args
Run :: !RunArgs args -> Instruction args
Cmd :: !Arguments args -> Instruction args
Shell :: !Arguments args -> Instruction args
Workdir :: !Directory -> Instruction args
Expose :: !Ports -> Instruction args
Volume :: !Text -> Instruction args
Entrypoint :: !Arguments args -> Instruction args
Maintainer :: !Text -> Instruction args
Env :: !Pairs -> Instruction args
Arg :: !Text -> !Maybe Text -> Instruction args
Healthcheck :: !Check args -> Instruction args
Pragma :: !PragmaDirective -> Instruction args
Comment :: !Text -> Instruction args
OnBuild :: !Instruction args -> Instruction args
-- | Instruction with additional location information required for
-- creating good check messages
data InstructionPos args
InstructionPos :: !Instruction args -> !Filename -> !Linenumber -> InstructionPos args
[$sel:instruction:InstructionPos] :: InstructionPos args -> !Instruction args
[$sel:sourcename:InstructionPos] :: InstructionPos args -> !Filename
[$sel:lineNumber:InstructionPos] :: InstructionPos args -> !Linenumber
data BaseImage
BaseImage :: !Image -> !Maybe Tag -> !Maybe Digest -> !Maybe ImageAlias -> !Maybe Platform -> BaseImage
[$sel:image:BaseImage] :: BaseImage -> !Image
[$sel:tag:BaseImage] :: BaseImage -> !Maybe Tag
[$sel:digest:BaseImage] :: BaseImage -> !Maybe Digest
[$sel:alias:BaseImage] :: BaseImage -> !Maybe ImageAlias
[$sel:platform:BaseImage] :: BaseImage -> !Maybe Platform
newtype SourcePath
SourcePath :: Text -> SourcePath
[$sel:unSourcePath:SourcePath] :: SourcePath -> Text
newtype TargetPath
TargetPath :: Text -> TargetPath
[$sel:unTargetPath:TargetPath] :: TargetPath -> Text
data Chown
Chown :: !Text -> Chown
NoChown :: Chown
data CopySource
CopySource :: !Text -> CopySource
NoSource :: CopySource
data CopyArgs
CopyArgs :: NonEmpty SourcePath -> !TargetPath -> CopyArgs
[$sel:sourcePaths:CopyArgs] :: CopyArgs -> NonEmpty SourcePath
[$sel:targetPath:CopyArgs] :: CopyArgs -> !TargetPath
data AddArgs
AddArgs :: NonEmpty SourcePath -> !TargetPath -> AddArgs
[$sel:sourcePaths:AddArgs] :: AddArgs -> NonEmpty SourcePath
[$sel:targetPath:AddArgs] :: AddArgs -> !TargetPath
data Check args
Check :: !CheckArgs args -> Check args
NoCheck :: Check args
data CheckArgs args
CheckArgs :: !Arguments args -> !Maybe Duration -> !Maybe Duration -> !Maybe Duration -> !Maybe Retries -> CheckArgs args
[$sel:checkCommand:CheckArgs] :: CheckArgs args -> !Arguments args
[$sel:interval:CheckArgs] :: CheckArgs args -> !Maybe Duration
[$sel:timeout:CheckArgs] :: CheckArgs args -> !Maybe Duration
[$sel:startPeriod:CheckArgs] :: CheckArgs args -> !Maybe Duration
[$sel:retries:CheckArgs] :: CheckArgs args -> !Maybe Retries
data Image
Image :: !Maybe Registry -> !Text -> Image
[$sel:registryName:Image] :: Image -> !Maybe Registry
[$sel:imageName:Image] :: Image -> !Text
newtype Registry
Registry :: Text -> Registry
[$sel:unRegistry:Registry] :: Registry -> Text
newtype ImageAlias
ImageAlias :: Text -> ImageAlias
[$sel:unImageAlias:ImageAlias] :: ImageAlias -> Text
newtype Tag
Tag :: Text -> Tag
[$sel:unTag:Tag] :: Tag -> Text
newtype Digest
Digest :: Text -> Digest
[$sel:unDigest:Digest] :: Digest -> Text
data Ports
type Directory = Text
data Arguments args
type Pairs = [(Text, Text)]
type Filename = Text
type Platform = Text
type Linenumber = Int