@@ -25,7 +25,6 @@ import Data.Foldable (toList)
2525import Data.Set qualified
2626import Data.Some
2727import Data.Text (Text )
28- import Data.Text qualified
2928import Data.Text.Lazy qualified
3029import Data.Text.Lazy.Builder qualified
3130import Deriving.Aeson
@@ -41,7 +40,7 @@ import System.Nix.Realisation (DerivationOutput(..), Realisation, RealisationWit
4140import System.Nix.Realisation qualified
4241import System.Nix.Signature (Signature )
4342import System.Nix.Signature qualified
44- import System.Nix.StorePath (StorePath , StorePathName , StorePathHashPart , storePathHash , storePathName , mkStorePathName , unStorePathName , parseBasePathFromText )
43+ import System.Nix.StorePath (StorePath , StorePathName , StorePathHashPart , mkStorePathName , unStorePathName , parseBasePathFromText )
4544import System.Nix.StorePath qualified
4645
4746instance ToJSON StorePathName where
@@ -68,19 +67,8 @@ instance FromJSON StorePathHashPart where
6867 )
6968
7069instance ToJSON StorePath where
71- toJSON sp =
72- toJSON $ Data.Text. concat
73- [ System.Nix.StorePath. storePathHashPartToText (storePathHash sp)
74- , " -"
75- , System.Nix.StorePath. unStorePathName (storePathName sp)
76- ]
77-
78- toEncoding sp =
79- toEncoding $ Data.Text. concat
80- [ System.Nix.StorePath. storePathHashPartToText (storePathHash sp)
81- , " -"
82- , System.Nix.StorePath. unStorePathName (storePathName sp)
83- ]
70+ toJSON = toJSON . System.Nix.StorePath. storePathBaseToText
71+ toEncoding = toEncoding . System.Nix.StorePath. storePathBaseToText
8472
8573instance FromJSON StorePath where
8674 parseJSON =
@@ -92,12 +80,7 @@ instance FromJSON StorePath where
9280 )
9381
9482instance ToJSONKey StorePath where
95- toJSONKey = Data.Aeson.Types. toJSONKeyText $ \ sp ->
96- Data.Text. concat
97- [ System.Nix.StorePath. storePathHashPartToText (storePathHash sp)
98- , " -"
99- , System.Nix.StorePath. unStorePathName (storePathName sp)
100- ]
83+ toJSONKey = Data.Aeson.Types. toJSONKeyText System.Nix.StorePath. storePathBaseToText
10184
10285instance FromJSONKey StorePath where
10386 fromJSONKey = FromJSONKeyTextParser $
@@ -243,33 +226,19 @@ instance FromJSON SingleDerivedPath where
243226instance ToJSON DerivedPath where
244227 toJSON (DerivedPath_Opaque path) = toJSON path
245228 toJSON (DerivedPath_Built drvPath outputs) =
246- case outputs of
247- OutputsSpec_Names names | Data.Set. size names == 1 ->
248- object
249- [ " drvPath" .= toJSON drvPath
250- , " output" .= Data.Set. elemAt 0 names
251- ]
252- _ ->
253- object
254- [ " drvPath" .= toJSON drvPath
255- , " outputs" .= outputs
256- ]
229+ object
230+ [ " drvPath" .= toJSON drvPath
231+ , " outputs" .= outputs
232+ ]
257233
258234instance FromJSON DerivedPath where
259235 parseJSON v = parseOpaque v <|> parseBuilt v
260236 where
261237 parseOpaque = fmap DerivedPath_Opaque . parseJSON
262- parseBuilt = withObject " DerivedPath_Built" $ \ obj -> do
263- drvPath <- obj .: " drvPath"
264- -- Try single output first, then multiple outputs
265- mOutput <- obj .:? " output"
266- mOutputs <- obj .:? " outputs"
267- case (mOutput, mOutputs) of
268- (Just output, Nothing ) ->
269- pure $ DerivedPath_Built drvPath (OutputsSpec_Names (Data.Set. singleton output))
270- (Nothing , Just outputs) ->
271- pure $ DerivedPath_Built drvPath outputs
272- _ -> fail " Expected either 'output' or 'outputs' field"
238+ parseBuilt = withObject " DerivedPath_Built" $ \ obj ->
239+ DerivedPath_Built
240+ <$> obj .: " drvPath"
241+ <*> obj .: " outputs"
273242
274243data LowerLeading
275244instance StringModifier LowerLeading where
0 commit comments