?72      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopq r s t u v w x y z { | } ~  Safe  NoneNone:Remove new line escapes and join escaped lines together on one line to simplify parsing later on. Escapes are replaced with line breaks to not alter the line numbers.  Safe     Safe P with additional location information required for creating good check messages%All commands available in Dockerfiles'Type of the Dockerfile AST&  !"#$%&'()*+,-./01&  !"#$%&'()*+,-./01&/.-,()*+'&%$# !" 01   !"#$%&'()*+,-./01None:0;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghij/;<=A?>@BCEDFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghi0BCDEF<=>?@AjG;HIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghi';<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijNonemmmmNonenopnopnop None'qrstuvwxyz{|}~'qrstuvwxyz{|}~'qrstuvwxyz{|}~'qrstuvwxyz{|}~ None)Pretty print a ' to a Pretty print a   to a  Safe2 None:<='Runs the Dockerfile EDSL and returns a  Dockerfile$ you can pretty print or manipulate'Runs the Dockerfile EDSL and returns a  using  import Language.Dockerfile main :: IO () main = writeFile "something.dockerfile" $ toDockerfileStr $ do from (tagged "fpco/stack-build" "lts-6.9") add "." "app"language-dockerfile" workdir "appklanguage-dockerfile" run (words "stack build --test --only-dependencies") cmd (words "stack test") ONBUILD Dockerfile instruction3Each nested instruction gets emitted as a separate ONBUILD block v $ do from "node" run "apt-get update" onBuild $ do run "echo more-stuff" run "echo here"  None1Quasiquoter for embedding dockerfiles on the EDSL  putStr $ y $ do from "node" run "apt-get update" [edockerfile| RUN apt-get update CMD node something.js |] NoneM  !"#$%&'()*+,-./01M' !" ()*+/.-,&%$#01 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMMNOPQRRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  " # $ %  '   * + ,  . / 0 1        2language-dockerfile-0.2.3.0-K6QFsYfX5y9EkPRVeMMswCLanguage.DockerfileLanguage.Dockerfile.BashLanguage.Dockerfile.NormalizeLanguage.Dockerfile.LexerLanguage.Dockerfile.SyntaxLanguage.Dockerfile.RulesLanguage.Dockerfile.FormatCheckLanguage.Dockerfile.Syntax.LiftLanguage.Dockerfile.ParserLanguage.Dockerfile.PrettyPrintLanguage.Dockerfile.EDSL.TypesLanguage.Dockerfile.EDSLLanguage.Dockerfile.EDSL.QuasiPaths_language_dockerfile PrettyPrint$parsec-3.1.11-37j7M1YEHqtEooY7BpJdriText.Parsec.Error ParseError shellchecknormalizeEscapedLineslexerreserved reservedOpnaturalcommaSep stringLiteralbrackets identifierlexemeInstructionPos LinenumberFilename InstructionFromAddUserLabel StopsignalCopyRunCmdWorkdirExposeVolume Entrypoint MaintainerEnvArgCommentOnBuildEOLPairs Arguments DestinationSource Dockerfile BaseImage UntaggedImage TaggedImage DigestedImage DirectoryPortTagImage instruction sourcename $fEqBaseImage$fOrdBaseImage$fShowBaseImage$fEqInstruction$fOrdInstruction$fShowInstruction$fEqInstructionPos$fOrdInstructionPos$fShowInstructionPosRuleCheckmetadatafilename linenumbersuccessMetadatacodeseveritymessagelinkmapInstructionsinstructionRuledockerfileRuleanalyzerulescommentMetadatashellcheckBash bashCommandsabsoluteWorkdir hasMaintainer usingProgram multipleCmdsmultipleEntrypoints wgetOrCurl invalidCmd noRootUsernoCdnoSudo noUpgrade noUntagged noLatestTagaptGetVersionPinnedaptGetPackages aptGetCleanupuseAdd invalidPortmaintainerAddresspipVersionPinnedisAptGetInstall aptGetYesaptGetNoRecommends isArchiveisUrlcopyInsteadAdd $fOrdCheck $fEqMetadata $fEqCheck formatCheck$fLiftBaseImage$fLiftInstruction$fLiftInstructionPoscomment taggedImage digestedImage untaggedImage baseImagefromcmdcopy stopsignal quotedValuerawValue singleValuepairpairsremainingPairslabelargenvuseraddexposerununtilEoluntilOccurrenceworkdirvolume maintainer argumentsExecargumentsShell arguments entrypointonbuildeolInstructionparseInstructioncontentseol dockerfile parseString parseFile prettyPrintprettyPrintInstructionPosprettyPrintBaseImageprettyPrintPairsprettyPrintPairprettyPrintArgumentsprettyPrintInstruction EInstruction StopSignalRunArgsCmdArgsEntrypointArgs OnBuildRawEmbed EBaseImageEUntaggedImage ETaggedImageEDigestedImage$fIsStringEBaseImage$fShowEBaseImage$fEqEBaseImage$fOrdEBaseImage$fFunctorEInstruction EInstructionM stopSignalrunArgscmdArgsentrypointArgs onBuildRawembedrunDockerWriterinstructionPos toDockerfiletoDockerfileStruntaggedtaggeddigestedonBuild edockerfile edockerfileE dockerfileE filterEOLcatchIOversionbindirlibdirdatadir libexecdir sysconfdir getBinDir getLibDir getDataDir getLibexecDir getSysconfDirgetDataFileNameescapePlaceHolder escapeSeqreplacecount trimLinesreplaceEscapeSignsremoveEscapePlaceholdercompensateLinebreaks formatPosbaseGHC.BaseString