packages feed

language-docker 6.0.2 → 6.0.3

raw patch · 4 files changed

+16/−10 lines, 4 files

Files

language-docker.cabal view
@@ -2,10 +2,10 @@ -- -- see: https://github.com/sol/hpack ----- hash: e09dfb596ffa0aad47ade030ba31bd3d1fc4cb6395d7abef6290649bdedff1f6+-- hash: 62fe44c8aed9783d0a7b6fee136758ea45af0c4ad6af24b6496af43df80eb3b9  name:           language-docker-version:        6.0.2+version:        6.0.3 synopsis:       Dockerfile parser, pretty-printer and embedded DSL description:    All functions for parsing, printing and writting Dockerfiles are exported through @Language.Docker@. For more fine-grained operations look for specific modules that implement a certain functionality.                 See the <https://github.com/hadolint/language-docker GitHub project> for the source-code and examples.
src/Language/Docker/Parser.hs view
@@ -15,6 +15,7 @@ import Data.Data import Data.List.NonEmpty (NonEmpty, fromList) import Data.Maybe (listToMaybe)+import Data.Semigroup ((<>)) import qualified Data.Set as S import Data.Text (Text) import qualified Data.Text as T@@ -151,9 +152,11 @@  parseRegistry :: Parser Registry parseRegistry = do-    name <- someUnless "a registry name" (== '/')+    domain <- someUnless "a domain name" (== '.')+    void $ char '.'+    tld <- someUnless "a TLD" (== '/')     void $ char '/'-    return $ Registry name+    return $ Registry (domain <> "." <> tld)  taggedImage :: Parser BaseImage taggedImage = do
src/Language/Docker/Syntax.hs view
@@ -21,12 +21,11 @@     fromString img =         if "/" `isInfixOf` img             then let parts = endBy "/" img-                 in case parts of-                        reg:rest ->-                            Image-                                (Just (Registry (Text.pack reg)))-                                (Text.pack . intercalate "/" $ rest)-                        _ -> Image Nothing (Text.pack img)+                 in if "." `isInfixOf` head parts+                        then Image+                                 (Just (Registry (Text.pack (head parts))))+                                 (Text.pack . intercalate "/" $ tail parts)+                        else Image Nothing (Text.pack img)             else Image Nothing (Text.pack img)  newtype Registry = Registry
test/Language/Docker/ParserSpec.hs view
@@ -47,6 +47,10 @@                 assertAst                 "FROM myregistry.com:5000/imagename:5.12-dev"                 [From (TaggedImage (Image (Just "myregistry.com:5000") "imagename") "5.12-dev" Nothing)]+            it "Not a registry if no TLD" $+                assertAst+                "FROM myfolder/imagename:5.12-dev"+                [From (TaggedImage (Image Nothing "myfolder/imagename") "5.12-dev" Nothing)]          describe "parse LABEL" $ do             it "parse label" $ assertAst "LABEL foo=bar" [Label[("foo", "bar")]]