@@ -7,6 +7,8 @@ module Plan2Nix
7
7
) where
8
8
9
9
import Data.Aeson
10
+ import qualified Data.Aeson.Key as Key
11
+ import qualified Data.Aeson.KeyMap as KeyMap
10
12
import Data.Char ( isDigit )
11
13
import Data.HashMap.Strict ( HashMap )
12
14
import qualified Data.HashMap.Strict as Map
@@ -198,13 +200,15 @@ value2plan plan = Plan { packages, components, extras, compilerVersion, compiler
198
200
(_, " global" ) -> Just $ Package
199
201
{ packageVersion = pkg ^. key " pkg-version" . _String
200
202
, packageRevision = Nothing
201
- , packageFlags = Map. mapKeys VarName $ Map. mapMaybe (^? _Bool) $ pkg ^. key " flags" . _Object
203
+ , packageFlags = Map. fromList . fmap (\ (k, v) -> (VarName (Key. toText k), v))
204
+ . KeyMap. toList $ KeyMap. mapMaybe (^? _Bool) $ pkg ^. key " flags" . _Object
202
205
, packageSrc = Nothing
203
206
}
204
207
(_, " inplace" ) -> Just $ Package
205
208
{ packageVersion = pkg ^. key " pkg-version" . _String
206
209
, packageRevision = Nothing
207
- , packageFlags = Map. mapKeys VarName $ Map. mapMaybe (^? _Bool) $ pkg ^. key " flags" . _Object
210
+ , packageFlags = Map. fromList . fmap (\ (k, v) -> (VarName (Key. toText k), v))
211
+ . KeyMap. toList $ KeyMap. mapMaybe (^? _Bool) $ pkg ^. key " flags" . _Object
208
212
, packageSrc = Nothing
209
213
}
210
214
-- Until we figure out how to force Cabal to reconfigure just about any package
@@ -226,13 +230,15 @@ value2plan plan = Plan { packages, components, extras, compilerVersion, compiler
226
230
(" local" , " local" ) -> Just $ Package
227
231
{ packageVersion = pkg ^. key " pkg-version" . _String
228
232
, packageRevision = Nothing
229
- , packageFlags = Map. mapKeys VarName $ Map. mapMaybe (^? _Bool) $ pkg ^. key " flags" . _Object
233
+ , packageFlags = Map. fromList . fmap (\ (k, v) -> (VarName (Key. toText k), v))
234
+ . KeyMap. toList $ KeyMap. mapMaybe (^? _Bool) $ pkg ^. key " flags" . _Object
230
235
, packageSrc = Just . LocalPath . Text. unpack $ pkg ^. key " pkg-src" . key " path" . _String
231
236
}
232
237
(_, " source-repo" ) -> Just $ Package
233
238
{ packageVersion = pkg ^. key " pkg-version" . _String
234
239
, packageRevision = Nothing
235
- , packageFlags = Map. mapKeys VarName $ Map. mapMaybe (^? _Bool) $ pkg ^. key " flags" . _Object
240
+ , packageFlags = Map. fromList . fmap (\ (k, v) -> (VarName (Key. toText k), v))
241
+ . KeyMap. toList $ KeyMap. mapMaybe (^? _Bool) $ pkg ^. key " flags" . _Object
236
242
, packageSrc = Just . flip DVCS [ Text. unpack $ fromMaybe " ." $ pkg ^? key " pkg-src" . key " source-repo" . key " subdir" . _String ] $
237
243
Git ( Text. unpack $ pkg ^. key " pkg-src" . key " source-repo" . key " location" . _String )
238
244
( Text. unpack $ pkg ^. key " pkg-src" . key " source-repo" . key " tag" . _String )
@@ -270,7 +276,7 @@ value2plan plan = Plan { packages, components, extras, compilerVersion, compiler
270
276
-- If it does not exist then look for `component-name` instead.
271
277
maybe
272
278
[nixComponentAttr $ pkg ^. key " component-name" . _String]
273
- (map nixComponentAttr . Map . keys)
279
+ (map ( nixComponentAttr . Key. toText) . KeyMap . keys)
274
280
(pkg ^? key " components" . _Object))
275
281
$ Vector. toList (plan ^. key " install-plan" . _Array)
276
282
0 commit comments