language-docker-9.1.2: Dockerfile parser, pretty-printer and embedded DSL
Safe HaskellNone
LanguageHaskell2010

Language.Docker

Synopsis

Documentation

type Dockerfile = [InstructionPos Text] Source #

Type of the Dockerfile AST

Parsing Dockerfiles (Language.Docker.Syntax and Language.Docker.Parser)

parseText :: Text -> Either Error Dockerfile Source #

parseFile :: FilePath -> IO (Either Error Dockerfile) Source #

parseStdin :: IO (Either Error Dockerfile) Source #

Reads the standard input until the end and parses the contents as a Dockerfile

Re-exports from megaparsec

parseErrorPretty :: (Stream s, ShowErrorComponent e) => ParseError s e -> String #

errorBundlePretty :: (Stream s, ShowErrorComponent e) => ParseErrorBundle s e -> String #

Pretty-printing Dockerfiles (Language.Docker.PrettyPrint)

prettyPrint :: Dockerfile -> Text Source #

Pretty print a Dockerfile to a Text

prettyPrintDockerfile :: Pretty (Arguments args) => [InstructionPos args] -> Doc ann Source #

Types (Language.Docker.Syntax)

data Instruction args Source #

All commands available in Dockerfiles

Constructors

From !BaseImage 
Add !AddArgs 
User !Text 
Label !Pairs 
Stopsignal !Text 
Copy !CopyArgs 
Run !(RunArgs args) 
Cmd !(Arguments args) 
Shell !(Arguments args) 
Workdir !Directory 
Expose !Ports 
Volume !Text 
Entrypoint !(Arguments args) 
Maintainer !Text 
Env !Pairs 
Arg !Text !(Maybe Text) 
Healthcheck !(Check args) 
Comment !Text 
OnBuild !(Instruction args) 

Instances

Instances details
Functor Instruction Source # 
Instance details

Defined in Language.Docker.Syntax

Methods

fmap :: (a -> b) -> Instruction a -> Instruction b

(<$) :: a -> Instruction b -> Instruction a

Eq args => Eq (Instruction args) Source # 
Instance details

Defined in Language.Docker.Syntax

Methods

(==) :: Instruction args -> Instruction args -> Bool

(/=) :: Instruction args -> Instruction args -> Bool

Ord args => Ord (Instruction args) Source # 
Instance details

Defined in Language.Docker.Syntax

Methods

compare :: Instruction args -> Instruction args -> Ordering

(<) :: Instruction args -> Instruction args -> Bool

(<=) :: Instruction args -> Instruction args -> Bool

(>) :: Instruction args -> Instruction args -> Bool

(>=) :: Instruction args -> Instruction args -> Bool

max :: Instruction args -> Instruction args -> Instruction args

min :: Instruction args -> Instruction args -> Instruction args

Show args => Show (Instruction args) Source # 
Instance details

Defined in Language.Docker.Syntax

Methods

showsPrec :: Int -> Instruction args -> ShowS

show :: Instruction args -> String

showList :: [Instruction args] -> ShowS

data InstructionPos args Source #

Instruction with additional location information required for creating good check messages

Instances

Instances details
Functor InstructionPos Source # 
Instance details

Defined in Language.Docker.Syntax

Methods

fmap :: (a -> b) -> InstructionPos a -> InstructionPos b

(<$) :: a -> InstructionPos b -> InstructionPos a

Eq args => Eq (InstructionPos args) Source # 
Instance details

Defined in Language.Docker.Syntax

Methods

(==) :: InstructionPos args -> InstructionPos args -> Bool

(/=) :: InstructionPos args -> InstructionPos args -> Bool

Ord args => Ord (InstructionPos args) Source # 
Instance details

Defined in Language.Docker.Syntax

Methods

compare :: InstructionPos args -> InstructionPos args -> Ordering

(<) :: InstructionPos args -> InstructionPos args -> Bool

(<=) :: InstructionPos args -> InstructionPos args -> Bool

(>) :: InstructionPos args -> InstructionPos args -> Bool

(>=) :: InstructionPos args -> InstructionPos args -> Bool

max :: InstructionPos args -> InstructionPos args -> InstructionPos args

min :: InstructionPos args -> InstructionPos args -> InstructionPos args

Show args => Show (InstructionPos args) Source # 
Instance details

Defined in Language.Docker.Syntax

Methods

showsPrec :: Int -> InstructionPos args -> ShowS

show :: InstructionPos args -> String

showList :: [InstructionPos args] -> ShowS

data BaseImage Source #

Constructors

BaseImage 

Fields

Instances

Instances details
Eq BaseImage Source # 
Instance details

Defined in Language.Docker.Syntax

Methods

(==) :: BaseImage -> BaseImage -> Bool

(/=) :: BaseImage -> BaseImage -> Bool

Ord BaseImage Source # 
Instance details

Defined in Language.Docker.Syntax

Methods

compare :: BaseImage -> BaseImage -> Ordering

(<) :: BaseImage -> BaseImage -> Bool

(<=) :: BaseImage -> BaseImage -> Bool

(>) :: BaseImage -> BaseImage -> Bool

(>=) :: BaseImage -> BaseImage -> Bool

max :: BaseImage -> BaseImage -> BaseImage

min :: BaseImage -> BaseImage -> BaseImage

Show BaseImage Source # 
Instance details

Defined in Language.Docker.Syntax

Methods

showsPrec :: Int -> BaseImage -> ShowS

show :: BaseImage -> String

showList :: [BaseImage] -> ShowS

newtype SourcePath Source #

Constructors

SourcePath 

Fields

Instances

Instances details
Eq SourcePath Source # 
Instance details

Defined in Language.Docker.Syntax

Methods

(==) :: SourcePath -> SourcePath -> Bool

(/=) :: SourcePath -> SourcePath -> Bool

Ord SourcePath Source # 
Instance details

Defined in Language.Docker.Syntax

Show SourcePath Source # 
Instance details

Defined in Language.Docker.Syntax

Methods

showsPrec :: Int -> SourcePath -> ShowS

show :: SourcePath -> String

showList :: [SourcePath] -> ShowS

IsString SourcePath Source # 
Instance details

Defined in Language.Docker.Syntax

Methods

fromString :: String -> SourcePath

newtype TargetPath Source #

Constructors

TargetPath 

Fields

Instances

Instances details
Eq TargetPath Source # 
Instance details

Defined in Language.Docker.Syntax

Methods

(==) :: TargetPath -> TargetPath -> Bool

(/=) :: TargetPath -> TargetPath -> Bool

Ord TargetPath Source # 
Instance details

Defined in Language.Docker.Syntax

Show TargetPath Source # 
Instance details

Defined in Language.Docker.Syntax

Methods

showsPrec :: Int -> TargetPath -> ShowS

show :: TargetPath -> String

showList :: [TargetPath] -> ShowS

IsString TargetPath Source # 
Instance details

Defined in Language.Docker.Syntax

Methods

fromString :: String -> TargetPath

data Chown Source #

Constructors

Chown !Text 
NoChown 

Instances

Instances details
Eq Chown Source # 
Instance details

Defined in Language.Docker.Syntax

Methods

(==) :: Chown -> Chown -> Bool

(/=) :: Chown -> Chown -> Bool

Ord Chown Source # 
Instance details

Defined in Language.Docker.Syntax

Methods

compare :: Chown -> Chown -> Ordering

(<) :: Chown -> Chown -> Bool

(<=) :: Chown -> Chown -> Bool

(>) :: Chown -> Chown -> Bool

(>=) :: Chown -> Chown -> Bool

max :: Chown -> Chown -> Chown

min :: Chown -> Chown -> Chown

Show Chown Source # 
Instance details

Defined in Language.Docker.Syntax

Methods

showsPrec :: Int -> Chown -> ShowS

show :: Chown -> String

showList :: [Chown] -> ShowS

IsString Chown Source # 
Instance details

Defined in Language.Docker.Syntax

Methods

fromString :: String -> Chown

data CopySource Source #

Constructors

CopySource !Text 
NoSource 

Instances

Instances details
Eq CopySource Source # 
Instance details

Defined in Language.Docker.Syntax

Methods

(==) :: CopySource -> CopySource -> Bool

(/=) :: CopySource -> CopySource -> Bool

Ord CopySource Source # 
Instance details

Defined in Language.Docker.Syntax

Show CopySource Source # 
Instance details

Defined in Language.Docker.Syntax

Methods

showsPrec :: Int -> CopySource -> ShowS

show :: CopySource -> String

showList :: [CopySource] -> ShowS

IsString CopySource Source # 
Instance details

Defined in Language.Docker.Syntax

Methods

fromString :: String -> CopySource

data CopyArgs Source #

Constructors

CopyArgs 

Instances

Instances details
Eq CopyArgs Source # 
Instance details

Defined in Language.Docker.Syntax

Methods

(==) :: CopyArgs -> CopyArgs -> Bool

(/=) :: CopyArgs -> CopyArgs -> Bool

Ord CopyArgs Source # 
Instance details

Defined in Language.Docker.Syntax

Methods

compare :: CopyArgs -> CopyArgs -> Ordering

(<) :: CopyArgs -> CopyArgs -> Bool

(<=) :: CopyArgs -> CopyArgs -> Bool

(>) :: CopyArgs -> CopyArgs -> Bool

(>=) :: CopyArgs -> CopyArgs -> Bool

max :: CopyArgs -> CopyArgs -> CopyArgs

min :: CopyArgs -> CopyArgs -> CopyArgs

Show CopyArgs Source # 
Instance details

Defined in Language.Docker.Syntax

Methods

showsPrec :: Int -> CopyArgs -> ShowS

show :: CopyArgs -> String

showList :: [CopyArgs] -> ShowS

data AddArgs Source #

Constructors

AddArgs 

Instances

Instances details
Eq AddArgs Source # 
Instance details

Defined in Language.Docker.Syntax

Methods

(==) :: AddArgs -> AddArgs -> Bool

(/=) :: AddArgs -> AddArgs -> Bool

Ord AddArgs Source # 
Instance details

Defined in Language.Docker.Syntax

Methods

compare :: AddArgs -> AddArgs -> Ordering

(<) :: AddArgs -> AddArgs -> Bool

(<=) :: AddArgs -> AddArgs -> Bool

(>) :: AddArgs -> AddArgs -> Bool

(>=) :: AddArgs -> AddArgs -> Bool

max :: AddArgs -> AddArgs -> AddArgs

min :: AddArgs -> AddArgs -> AddArgs

Show AddArgs Source # 
Instance details

Defined in Language.Docker.Syntax

Methods

showsPrec :: Int -> AddArgs -> ShowS

show :: AddArgs -> String

showList :: [AddArgs] -> ShowS

data Check args Source #

Constructors

Check !(CheckArgs args) 
NoCheck 

Instances

Instances details
Functor Check Source # 
Instance details

Defined in Language.Docker.Syntax

Methods

fmap :: (a -> b) -> Check a -> Check b

(<$) :: a -> Check b -> Check a

Eq args => Eq (Check args) Source # 
Instance details

Defined in Language.Docker.Syntax

Methods

(==) :: Check args -> Check args -> Bool

(/=) :: Check args -> Check args -> Bool

Ord args => Ord (Check args) Source # 
Instance details

Defined in Language.Docker.Syntax

Methods

compare :: Check args -> Check args -> Ordering

(<) :: Check args -> Check args -> Bool

(<=) :: Check args -> Check args -> Bool

(>) :: Check args -> Check args -> Bool

(>=) :: Check args -> Check args -> Bool

max :: Check args -> Check args -> Check args

min :: Check args -> Check args -> Check args

Show args => Show (Check args) Source # 
Instance details

Defined in Language.Docker.Syntax

Methods

showsPrec :: Int -> Check args -> ShowS

show :: Check args -> String

showList :: [Check args] -> ShowS

data CheckArgs args Source #

Constructors

CheckArgs 

Fields

Instances

Instances details
Functor CheckArgs Source # 
Instance details

Defined in Language.Docker.Syntax

Methods

fmap :: (a -> b) -> CheckArgs a -> CheckArgs b

(<$) :: a -> CheckArgs b -> CheckArgs a

Eq args => Eq (CheckArgs args) Source # 
Instance details

Defined in Language.Docker.Syntax

Methods

(==) :: CheckArgs args -> CheckArgs args -> Bool

(/=) :: CheckArgs args -> CheckArgs args -> Bool

Ord args => Ord (CheckArgs args) Source # 
Instance details

Defined in Language.Docker.Syntax

Methods

compare :: CheckArgs args -> CheckArgs args -> Ordering

(<) :: CheckArgs args -> CheckArgs args -> Bool

(<=) :: CheckArgs args -> CheckArgs args -> Bool

(>) :: CheckArgs args -> CheckArgs args -> Bool

(>=) :: CheckArgs args -> CheckArgs args -> Bool

max :: CheckArgs args -> CheckArgs args -> CheckArgs args

min :: CheckArgs args -> CheckArgs args -> CheckArgs args

Show args => Show (CheckArgs args) Source # 
Instance details

Defined in Language.Docker.Syntax

Methods

showsPrec :: Int -> CheckArgs args -> ShowS

show :: CheckArgs args -> String

showList :: [CheckArgs args] -> ShowS

data Image Source #

Constructors

Image 

Fields

Instances

Instances details
Eq Image Source # 
Instance details

Defined in Language.Docker.Syntax

Methods

(==) :: Image -> Image -> Bool

(/=) :: Image -> Image -> Bool

Ord Image Source # 
Instance details

Defined in Language.Docker.Syntax

Methods

compare :: Image -> Image -> Ordering

(<) :: Image -> Image -> Bool

(<=) :: Image -> Image -> Bool

(>) :: Image -> Image -> Bool

(>=) :: Image -> Image -> Bool

max :: Image -> Image -> Image

min :: Image -> Image -> Image

Show Image Source # 
Instance details

Defined in Language.Docker.Syntax

Methods

showsPrec :: Int -> Image -> ShowS

show :: Image -> String

showList :: [Image] -> ShowS

IsString Image Source # 
Instance details

Defined in Language.Docker.Syntax

Methods

fromString :: String -> Image

newtype Registry Source #

Constructors

Registry 

Fields

Instances

Instances details
Eq Registry Source # 
Instance details

Defined in Language.Docker.Syntax

Methods

(==) :: Registry -> Registry -> Bool

(/=) :: Registry -> Registry -> Bool

Ord Registry Source # 
Instance details

Defined in Language.Docker.Syntax

Methods

compare :: Registry -> Registry -> Ordering

(<) :: Registry -> Registry -> Bool

(<=) :: Registry -> Registry -> Bool

(>) :: Registry -> Registry -> Bool

(>=) :: Registry -> Registry -> Bool

max :: Registry -> Registry -> Registry

min :: Registry -> Registry -> Registry

Show Registry Source # 
Instance details

Defined in Language.Docker.Syntax

Methods

showsPrec :: Int -> Registry -> ShowS

show :: Registry -> String

showList :: [Registry] -> ShowS

IsString Registry Source # 
Instance details

Defined in Language.Docker.Syntax

Methods

fromString :: String -> Registry

newtype ImageAlias Source #

Constructors

ImageAlias 

Fields

Instances

Instances details
Eq ImageAlias Source # 
Instance details

Defined in Language.Docker.Syntax

Methods

(==) :: ImageAlias -> ImageAlias -> Bool

(/=) :: ImageAlias -> ImageAlias -> Bool

Ord ImageAlias Source # 
Instance details

Defined in Language.Docker.Syntax

Show ImageAlias Source # 
Instance details

Defined in Language.Docker.Syntax

Methods

showsPrec :: Int -> ImageAlias -> ShowS

show :: ImageAlias -> String

showList :: [ImageAlias] -> ShowS

IsString ImageAlias Source # 
Instance details

Defined in Language.Docker.Syntax

Methods

fromString :: String -> ImageAlias

newtype Tag Source #

Constructors

Tag 

Fields

Instances

Instances details
Eq Tag Source # 
Instance details

Defined in Language.Docker.Syntax

Methods

(==) :: Tag -> Tag -> Bool

(/=) :: Tag -> Tag -> Bool

Ord Tag Source # 
Instance details

Defined in Language.Docker.Syntax

Methods

compare :: Tag -> Tag -> Ordering

(<) :: Tag -> Tag -> Bool

(<=) :: Tag -> Tag -> Bool

(>) :: Tag -> Tag -> Bool

(>=) :: Tag -> Tag -> Bool

max :: Tag -> Tag -> Tag

min :: Tag -> Tag -> Tag

Show Tag Source # 
Instance details

Defined in Language.Docker.Syntax

Methods

showsPrec :: Int -> Tag -> ShowS

show :: Tag -> String

showList :: [Tag] -> ShowS

IsString Tag Source # 
Instance details

Defined in Language.Docker.Syntax

Methods

fromString :: String -> Tag

newtype Digest Source #

Constructors

Digest 

Fields

Instances

Instances details
Eq Digest Source # 
Instance details

Defined in Language.Docker.Syntax

Methods

(==) :: Digest -> Digest -> Bool

(/=) :: Digest -> Digest -> Bool

Ord Digest Source # 
Instance details

Defined in Language.Docker.Syntax

Methods

compare :: Digest -> Digest -> Ordering

(<) :: Digest -> Digest -> Bool

(<=) :: Digest -> Digest -> Bool

(>) :: Digest -> Digest -> Bool

(>=) :: Digest -> Digest -> Bool

max :: Digest -> Digest -> Digest

min :: Digest -> Digest -> Digest

Show Digest Source # 
Instance details

Defined in Language.Docker.Syntax

Methods

showsPrec :: Int -> Digest -> ShowS

show :: Digest -> String

showList :: [Digest] -> ShowS

IsString Digest Source # 
Instance details

Defined in Language.Docker.Syntax

Methods

fromString :: String -> Digest

data Ports Source #

Instances

Instances details
IsList Ports Source # 
Instance details

Defined in Language.Docker.Syntax

Associated Types

type Item Ports

Methods

fromList :: [Item Ports] -> Ports

fromListN :: Int -> [Item Ports] -> Ports

toList :: Ports -> [Item Ports]

Eq Ports Source # 
Instance details

Defined in Language.Docker.Syntax

Methods

(==) :: Ports -> Ports -> Bool

(/=) :: Ports -> Ports -> Bool

Ord Ports Source # 
Instance details

Defined in Language.Docker.Syntax

Methods

compare :: Ports -> Ports -> Ordering

(<) :: Ports -> Ports -> Bool

(<=) :: Ports -> Ports -> Bool

(>) :: Ports -> Ports -> Bool

(>=) :: Ports -> Ports -> Bool

max :: Ports -> Ports -> Ports

min :: Ports -> Ports -> Ports

Show Ports Source # 
Instance details

Defined in Language.Docker.Syntax

Methods

showsPrec :: Int -> Ports -> ShowS

show :: Ports -> String

showList :: [Ports] -> ShowS

type Item Ports Source # 
Instance details

Defined in Language.Docker.Syntax

type Item Ports = Port

type Directory = Text Source #

data Arguments args Source #

Instances

Instances details
Functor Arguments Source # 
Instance details

Defined in Language.Docker.Syntax

Methods

fmap :: (a -> b) -> Arguments a -> Arguments b

(<$) :: a -> Arguments b -> Arguments a

IsList (Arguments Text) Source # 
Instance details

Defined in Language.Docker.Syntax

Associated Types

type Item (Arguments Text)

Methods

fromList :: [Item (Arguments Text)] -> Arguments Text

fromListN :: Int -> [Item (Arguments Text)] -> Arguments Text

toList :: Arguments Text -> [Item (Arguments Text)]

Eq args => Eq (Arguments args) Source # 
Instance details

Defined in Language.Docker.Syntax

Methods

(==) :: Arguments args -> Arguments args -> Bool

(/=) :: Arguments args -> Arguments args -> Bool

Ord args => Ord (Arguments args) Source # 
Instance details

Defined in Language.Docker.Syntax

Methods

compare :: Arguments args -> Arguments args -> Ordering

(<) :: Arguments args -> Arguments args -> Bool

(<=) :: Arguments args -> Arguments args -> Bool

(>) :: Arguments args -> Arguments args -> Bool

(>=) :: Arguments args -> Arguments args -> Bool

max :: Arguments args -> Arguments args -> Arguments args

min :: Arguments args -> Arguments args -> Arguments args

Show args => Show (Arguments args) Source # 
Instance details

Defined in Language.Docker.Syntax

Methods

showsPrec :: Int -> Arguments args -> ShowS

show :: Arguments args -> String

showList :: [Arguments args] -> ShowS

IsString (Arguments Text) Source # 
Instance details

Defined in Language.Docker.Syntax

Methods

fromString :: String -> Arguments Text

Pretty (Arguments Text) 
Instance details

Defined in Language.Docker.PrettyPrint

Methods

pretty :: Arguments Text -> Doc ann

prettyList :: [Arguments Text] -> Doc ann

type Item (Arguments Text) Source # 
Instance details

Defined in Language.Docker.Syntax

type Item (Arguments Text) = Text

type Pairs = [(Text, Text)] Source #

type Filename = Text Source #

type Platform = Text Source #

type Linenumber = Int Source #