88module Dhall.Freeze
99 ( -- * Freeze
1010 freeze
11+ , freezeWithManager
1112 , freezeExpression
13+ , freezeExpressionWithManager
1214 , freezeImport
15+ , freezeImportWithManager
1316 , freezeRemoteImport
17+ , freezeRemoteImportWithManager
1418
1519 -- * Types
1620 , Scope (.. )
@@ -57,7 +61,15 @@ freezeImport
5761 -- ^ Current working directory
5862 -> Import
5963 -> IO Import
60- freezeImport directory import_ = do
64+ freezeImport = freezeImportWithManager Dhall.Import. defaultNewManager
65+
66+ -- | See 'freezeImport'.
67+ freezeImportWithManager
68+ :: IO Dhall.Import. Manager
69+ -> FilePath
70+ -> Import
71+ -> IO Import
72+ freezeImportWithManager newManager directory import_ = do
6173 let unprotectedImport =
6274 import_
6375 { importHashed =
@@ -66,7 +78,7 @@ freezeImport directory import_ = do
6678 }
6779 }
6880
69- let status = Dhall.Import. emptyStatus directory
81+ let status = Dhall.Import. emptyStatusWithManager newManager directory
7082
7183 expression <- State. evalStateT (Dhall.Import. loadWith (Embed unprotectedImport)) status
7284
@@ -93,9 +105,17 @@ freezeRemoteImport
93105 -- ^ Current working directory
94106 -> Import
95107 -> IO Import
96- freezeRemoteImport directory import_ =
108+ freezeRemoteImport = freezeRemoteImportWithManager Dhall.Import. defaultNewManager
109+
110+ -- | See 'freezeRemoteImport'.
111+ freezeRemoteImportWithManager
112+ :: IO Dhall.Import. Manager
113+ -> FilePath
114+ -> Import
115+ -> IO Import
116+ freezeRemoteImportWithManager newManager directory import_ =
97117 case importType (importHashed import_) of
98- Remote {} -> freezeImport directory import_
118+ Remote {} -> freezeImportWithManager newManager directory import_
99119 _ -> return import_
100120
101121-- | Specifies which imports to freeze
@@ -125,7 +145,19 @@ freeze
125145 -> CharacterSet
126146 -> Censor
127147 -> IO ()
128- freeze outputMode input0 scope intent characterSet censor = go input0
148+ freeze = freezeWithManager Dhall.Import. defaultNewManager
149+
150+ -- | See 'freeze'.
151+ freezeWithManager
152+ :: IO Dhall.Import. Manager
153+ -> OutputMode
154+ -> PossiblyTransitiveInput
155+ -> Scope
156+ -> Intent
157+ -> CharacterSet
158+ -> Censor
159+ -> IO ()
160+ freezeWithManager newManager outputMode input0 scope intent characterSet censor = go input0
129161 where
130162 go input = do
131163 let directory = case input of
@@ -134,7 +166,7 @@ freeze outputMode input0 scope intent characterSet censor = go input0
134166 PossiblyTransitiveInputFile file _ ->
135167 System.FilePath. takeDirectory file
136168
137- let status = Dhall.Import. emptyStatus directory
169+ let status = Dhall.Import. emptyStatusWithManager newManager directory
138170
139171 (originalText, transitivity) <- case input of
140172 PossiblyTransitiveInputFile file transitivity -> do
@@ -160,7 +192,7 @@ freeze outputMode input0 scope intent characterSet censor = go input0
160192 NonTransitive ->
161193 return ()
162194
163- frozenExpression <- freezeExpression directory scope intent parsedExpression
195+ frozenExpression <- freezeExpressionWithManager newManager directory scope intent parsedExpression
164196
165197 let doc = Pretty. pretty header
166198 <> Dhall.Pretty. prettyCharacterSet characterSet frozenExpression
@@ -213,13 +245,23 @@ freezeExpression
213245 -> Intent
214246 -> Expr s Import
215247 -> IO (Expr s Import )
216- freezeExpression directory scope intent expression = do
248+ freezeExpression = freezeExpressionWithManager Dhall.Import. defaultNewManager
249+
250+ -- | See 'freezeExpression'.
251+ freezeExpressionWithManager
252+ :: IO Dhall.Import. Manager
253+ -> FilePath
254+ -> Scope
255+ -> Intent
256+ -> Expr s Import
257+ -> IO (Expr s Import )
258+ freezeExpressionWithManager newManager directory scope intent expression = do
217259 let freezeScope =
218260 case scope of
219- AllImports -> freezeImport
220- OnlyRemoteImports -> freezeRemoteImport
261+ AllImports -> freezeImportWithManager
262+ OnlyRemoteImports -> freezeRemoteImportWithManager
221263
222- let freezeFunction = freezeScope directory
264+ let freezeFunction = freezeScope newManager directory
223265
224266 let cache
225267 -- This case is necessary because `transformOf` is a bottom-up
0 commit comments