@@ -41,35 +41,41 @@ data Package = Package
4141
4242getPackage :: Bool
4343 -- ^ Whether hpack should regenerate the cabal file.
44+ -> Bool
45+ -- ^ Whether to fetch submodules if fetching from git
4446 -> Maybe FilePath
4547 -- ^ The path to the Hackage database.
4648 -> Maybe UTCTime
4749 -- ^ If we have hackage-snapshot time.
4850 -> Source
4951 -> IO Package
50−getPackage optHpack optHackageDB optHackageSnapshot =
51− getPackage' optHpack (loadHackageDB optHackageDB optHackageSnapshot)
52+getPackage optHpack optSubmodules optHackageDB optHackageSnapshot =
53+ getPackage' optHpack optSubmodules (loadHackageDB optHackageDB optHackageSnapshot)
5254
5355getPackage' :: Bool
5456 -- ^ Whether hpack should regenerate the cabal file.
57+ -> Bool
58+ -- ^ Whether to fetch submodules if fetching from git
5559 -> IO DB.HackageDB
5660 -> Source
5761 -> IO Package
58−getPackage' optHpack hackageDB source = do
59− (derivSource, ranHpack, pkgDesc) <- fetchOrFromDB optHpack hackageDB source
62+getPackage' optHpack optSubmodules hackageDB source = do
63+ (derivSource, ranHpack, pkgDesc) <- fetchOrFromDB optHpack optSubmodules hackageDB source
6064 (\s -> Package s ranHpack pkgDesc) <$> maybe (sourceFromHackage (sourceHash source) (showPackageIdentifier pkgDesc) $ sourceCabalDir source) return derivSource
6165
6266fetchOrFromDB :: Bool
6367 -- ^ Whether hpack should regenerate the cabal file
68+ -> Bool
69+ -- ^ Whether to fetch submodules if fetching from git
6470 -> IO DB.HackageDB
6571 -> Source
6672 -> IO (Maybe DerivationSource, Bool, Cabal.GenericPackageDescription)
67−fetchOrFromDB optHpack hackageDB src
73+fetchOrFromDB optHpack optSubmodules hackageDB src
6874 | "cabal://" `isPrefixOf` sourceUrl src = do
6975 (msrc, pkgDesc) <- fromDB hackageDB . drop (length "cabal://") $ sourceUrl src
7076 return (msrc, False, pkgDesc)
7177 | otherwise = do
72− r <- fetch (\dir -> cabalFromPath optHpack (dir </> sourceCabalDir src)) src
78+ r <- fetch optSubmodules (\dir -> cabalFromPath optHpack (dir </> sourceCabalDir src)) src
7379 case r of
7480 Nothing -> fail $ "Failed to fetch source. Does this source exist? " ++ show src
7581 Just (derivSource, (externalSource, ranHpack, pkgDesc)) ->