language-docker-13.0.0: Dockerfile parser, pretty-printer and embedded DSL
Safe HaskellNone
LanguageGHC2021

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 :: (VisualStream s, ShowErrorComponent e) => ParseError s e -> String #

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

Pretty-printing Dockerfiles (Language.Docker.PrettyPrint)

prettyPrint :: Dockerfile -> Text Source #

Pretty print a Dockerfile to a Text

Types (Language.Docker.Syntax)

data Instruction args Source #

All commands available in Dockerfiles

Constructors

From !BaseImage 
Add !AddArgs !AddFlags 
User !Text 
Label !Pairs 
Stopsignal !Text 
Copy !CopyArgs !CopyFlags 
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) 
Pragma !PragmaDirective 
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

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

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

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

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

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

data BaseImage Source #

Constructors

BaseImage 

Fields

Instances

Instances details
Show BaseImage Source # 
Instance details

Defined in Language.Docker.Syntax

Methods

showsPrec :: Int -> BaseImage -> ShowS

show :: BaseImage -> String

showList :: [BaseImage] -> ShowS

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

newtype SourcePath Source #

Constructors

SourcePath 

Fields

Instances

Instances details
IsString SourcePath Source # 
Instance details

Defined in Language.Docker.Syntax

Methods

fromString :: String -> SourcePath

Show SourcePath Source # 
Instance details

Defined in Language.Docker.Syntax

Methods

showsPrec :: Int -> SourcePath -> ShowS

show :: SourcePath -> String

showList :: [SourcePath] -> ShowS

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

newtype TargetPath Source #

Constructors

TargetPath 

Fields

Instances

Instances details
IsString TargetPath Source # 
Instance details

Defined in Language.Docker.Syntax

Methods

fromString :: String -> TargetPath

Show TargetPath Source # 
Instance details

Defined in Language.Docker.Syntax

Methods

showsPrec :: Int -> TargetPath -> ShowS

show :: TargetPath -> String

showList :: [TargetPath] -> ShowS

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

data Chown Source #

Constructors

Chown !Text 
NoChown 

Instances

Instances details
IsString Chown Source # 
Instance details

Defined in Language.Docker.Syntax

Methods

fromString :: String -> Chown

Show Chown Source # 
Instance details

Defined in Language.Docker.Syntax

Methods

showsPrec :: Int -> Chown -> ShowS

show :: Chown -> String

showList :: [Chown] -> ShowS

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

data CopySource Source #

Constructors

CopySource !Text 
NoSource 

Instances

Instances details
IsString CopySource Source # 
Instance details

Defined in Language.Docker.Syntax

Methods

fromString :: String -> CopySource

Show CopySource Source # 
Instance details

Defined in Language.Docker.Syntax

Methods

showsPrec :: Int -> CopySource -> ShowS

show :: CopySource -> String

showList :: [CopySource] -> ShowS

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

data CopyArgs Source #

Constructors

CopyArgs 

Fields

Instances

Instances details
Show CopyArgs Source # 
Instance details

Defined in Language.Docker.Syntax

Methods

showsPrec :: Int -> CopyArgs -> ShowS

show :: CopyArgs -> String

showList :: [CopyArgs] -> ShowS

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

data AddArgs Source #

Constructors

AddArgs 

Fields

Instances

Instances details
Show AddArgs Source # 
Instance details

Defined in Language.Docker.Syntax

Methods

showsPrec :: Int -> AddArgs -> ShowS

show :: AddArgs -> String

showList :: [AddArgs] -> ShowS

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

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

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

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

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

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

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

data Image Source #

Constructors

Image 

Fields

Instances

Instances details
IsString Image Source # 
Instance details

Defined in Language.Docker.Syntax

Methods

fromString :: String -> Image

Show Image Source # 
Instance details

Defined in Language.Docker.Syntax

Methods

showsPrec :: Int -> Image -> ShowS

show :: Image -> String

showList :: [Image] -> ShowS

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

newtype Registry Source #

Constructors

Registry 

Fields

Instances

Instances details
IsString Registry Source # 
Instance details

Defined in Language.Docker.Syntax

Methods

fromString :: String -> Registry

Show Registry Source # 
Instance details

Defined in Language.Docker.Syntax

Methods

showsPrec :: Int -> Registry -> ShowS

show :: Registry -> String

showList :: [Registry] -> ShowS

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

newtype ImageAlias Source #

Constructors

ImageAlias 

Fields

Instances

Instances details
IsString ImageAlias Source # 
Instance details

Defined in Language.Docker.Syntax

Methods

fromString :: String -> ImageAlias

Show ImageAlias Source # 
Instance details

Defined in Language.Docker.Syntax

Methods

showsPrec :: Int -> ImageAlias -> ShowS

show :: ImageAlias -> String

showList :: [ImageAlias] -> ShowS

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

newtype Tag Source #

Constructors

Tag 

Fields

Instances

Instances details
IsString Tag Source # 
Instance details

Defined in Language.Docker.Syntax

Methods

fromString :: String -> Tag

Show Tag Source # 
Instance details

Defined in Language.Docker.Syntax

Methods

showsPrec :: Int -> Tag -> ShowS

show :: Tag -> String

showList :: [Tag] -> ShowS

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

newtype Digest Source #

Constructors

Digest 

Fields

Instances

Instances details
IsString Digest Source # 
Instance details

Defined in Language.Docker.Syntax

Methods

fromString :: String -> Digest

Show Digest Source # 
Instance details

Defined in Language.Docker.Syntax

Methods

showsPrec :: Int -> Digest -> ShowS

show :: Digest -> String

showList :: [Digest] -> ShowS

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

data Ports Source #

Instances

Instances details
IsList Ports Source # 
Instance details

Defined in Language.Docker.Syntax

Associated Types

type Item Ports 
Instance details

Defined in Language.Docker.Syntax

type Item Ports = PortSpec

Methods

fromList :: [Item Ports] -> Ports

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

toList :: Ports -> [Item Ports]

Show Ports Source # 
Instance details

Defined in Language.Docker.Syntax

Methods

showsPrec :: Int -> Ports -> ShowS

show :: Ports -> String

showList :: [Ports] -> ShowS

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

type Item Ports Source # 
Instance details

Defined in Language.Docker.Syntax

type Item Ports = PortSpec

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

IsString (Arguments Text) Source # 
Instance details

Defined in Language.Docker.Syntax

Methods

fromString :: String -> Arguments Text

IsList (Arguments Text) Source # 
Instance details

Defined in Language.Docker.Syntax

Associated Types

type Item (Arguments Text) 
Instance details

Defined in Language.Docker.Syntax

type Item (Arguments Text) = Text

Methods

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

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

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

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

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

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 #