dhall-nixpkgs 1.0.2 → 1.0.3
raw patch · 2 files changed
+35/−13 lines, 2 filesdep ~aesondep ~dhalldep ~hnix
Dependency ranges changed: aeson, dhall, hnix
Files
- Main.hs +32/−10
- dhall-nixpkgs.cabal +3/−3
Main.hs view
@@ -140,6 +140,7 @@ , directory :: FilePath , file :: FilePath , source :: Bool+ , document :: Bool } data Directory = Directory@@ -147,6 +148,7 @@ , directory :: FilePath , file :: FilePath , source :: Bool+ , document :: Bool } data NixPrefetchGit = NixPrefetchGit@@ -197,6 +199,13 @@ <> Options.help "Configure the Nix package to include source code" ) +parseDocument :: Parser Bool+parseDocument =+ Options.switch+ ( Options.long "document"+ <> Options.help "Generate documentation for the Nix package"+ )+ parseName :: Parser (Maybe Text) parseName = optional@@ -246,6 +255,8 @@ source <- parseSource + document <- parseDocument+ return GitHub{..} parseDirectory :: Parser Directory@@ -258,6 +269,8 @@ source <- parseSource + document <- parseDocument+ return Directory{..} parserInfoOptions :: ParserInfo Options@@ -399,7 +412,7 @@ let functionParameter = (prelude, Nothing) let dependencyExpression =- (Nix.mkSym prelude @. "override")+ (Nix.mkSym prelude @. "overridePackage") @@ Nix.attrsE [ ("file", Nix.mkStr fileArgument ) ] @@ -411,7 +424,7 @@ let functionParameter = (repo, Nothing) let dependencyExpression =- (Nix.mkSym repo @. "override")+ (Nix.mkSym repo @. "overridePackage") @@ Nix.attrsE [ ("file", Nix.mkStr fileArgument ) ] @@ -453,7 +466,7 @@ let functionParameter = (prelude, Nothing) let dependencyExpression =- (Nix.mkSym prelude @. "override")+ (Nix.mkSym prelude @. "overridePackage") @@ Nix.attrsE [ ("file", Nix.mkStr fileArgument) ]@@ -463,7 +476,7 @@ die (UnsupportedDomainDependency url authority) githubToNixpkgs :: GitHub -> IO ()-githubToNixpkgs GitHub{ name, uri, rev = maybeRev, hash, fetchSubmodules, directory, file, source } = do+githubToNixpkgs GitHub{ name, uri, rev = maybeRev, hash, fetchSubmodules, directory, file, source, document } = do URI{ uriScheme, uriAuthority = Just URIAuth{ uriUserInfo, uriRegName, uriPort }, uriPath, uriQuery, uriFragment } <- do case URI.parseAbsoluteURI (Text.unpack uri) of Nothing -> die (RepositoryIsNotAValidURI uri)@@ -569,8 +582,6 @@ let baseDirectory = Turtle.directory expressionFile - let baseDirectoryString = Turtle.encodeString baseDirectory- exists <- Turtle.testfile expressionFile if exists@@ -579,9 +590,13 @@ expressionText <- Turtle.readTextFile expressionFile - expression <- Dhall.Core.throws (Dhall.Parser.exprFromText baseDirectoryString expressionText)+ let expressionFileString = Turtle.encodeString expressionFile + expression <- Dhall.Core.throws (Dhall.Parser.exprFromText expressionFileString expressionText)+ let status = Dhall.Import.emptyStatus baseDirectoryString+ where+ baseDirectoryString = Turtle.encodeString baseDirectory dependencies <- Turtle.reduce Foldl.nub (State.evalStateT (findExternalDependencies expression) status) @@ -610,6 +625,7 @@ , ("directory", Nix.mkStr (Turtle.format fp directory)) , ("file", Nix.mkStr (Turtle.format fp file)) , ("source", Nix.mkBool source)+ , ("document", Nix.mkBool document) , ("dependencies", Nix.mkList (nub (fmap dependencyExpression nixDependencies))) ] )@@ -617,7 +633,7 @@ Prettyprint.Text.putDoc ((Nix.Pretty.prettyNix nixExpression) <> "\n") directoryToNixpkgs :: Directory -> IO ()-directoryToNixpkgs Directory{ name, directory, file, source } = do+directoryToNixpkgs Directory{ name, directory, file, source, document } = do let finalName = case name of Nothing -> Turtle.format fp (Turtle.dirname directory)@@ -634,11 +650,14 @@ expressionText <- Turtle.readTextFile expressionFile - let directoryString = Turtle.encodeString directory+ let expressionFileString = Turtle.encodeString expressionFile - expression <- Dhall.Core.throws (Dhall.Parser.exprFromText directoryString expressionText)+ expression <- Dhall.Core.throws (Dhall.Parser.exprFromText expressionFileString expressionText) let status = Dhall.Import.emptyStatus directoryString+ where+ directoryString =+ Turtle.encodeString (Turtle.directory expressionFile) dependencies <- Turtle.reduce Foldl.nub (State.evalStateT (findExternalDependencies expression) status) @@ -649,6 +668,8 @@ let src | null directoryString = directoryString | last directoryString == '/' = init directoryString | otherwise = directoryString+ where+ directoryString = Turtle.encodeString directory let nixExpression = Nix.mkFunction@@ -664,6 +685,7 @@ , ("src", Nix.mkPath False src) , ("file", Nix.mkStr (Turtle.format fp file)) , ("source", Nix.mkBool source)+ , ("document", Nix.mkBool document) , ("dependencies", Nix.mkList (nub (fmap dependencyExpression nixDependencies))) ] )
dhall-nixpkgs.cabal view
@@ -1,4 +1,4 @@-Version: 1.0.2+Version: 1.0.3 Cabal-Version: >=1.10 Name: dhall-nixpkgs Synopsis: Convert Dhall projects to Nix packages@@ -19,9 +19,9 @@ Build-Depends: base >= 4.11 && < 5 , aeson >= 1.0.0.0 && < 1.5 , data-fix- , dhall >= 1.32.0 && < 1.37+ , dhall >= 1.32.0 && < 1.38 , foldl < 1.5- , hnix >= 0.10.1 && < 0.11+ , hnix >= 0.10.1 && < 0.12 , lens-family-core >= 1.0.0 && < 2.2 , megaparsec >= 7.0.0 && < 9.1 , mmorph < 1.2