Make TarDir backwardscompat
This commit is contained in:
		
							parent
							
								
									27b2d2ac7d
								
							
						
					
					
						commit
						dac64f5718
					
				@ -1,3 +1,4 @@
 | 
			
		||||
# !!! if you use RegexDir, then the version must be bumped !!!
 | 
			
		||||
---
 | 
			
		||||
toolRequirements:
 | 
			
		||||
  GHC:
 | 
			
		||||
 | 
			
		||||
@ -24,6 +24,7 @@ module GHCup.Types.JSON where
 | 
			
		||||
import           GHCup.Types
 | 
			
		||||
import           GHCup.Utils.Prelude
 | 
			
		||||
 | 
			
		||||
import           Control.Applicative            ( (<|>) )
 | 
			
		||||
import           Data.Aeson
 | 
			
		||||
import           Data.Aeson.TH
 | 
			
		||||
import           Data.Aeson.Types
 | 
			
		||||
@ -195,5 +196,16 @@ instance FromJSON (Path Rel) where
 | 
			
		||||
      Left  e -> fail $ "Failure in HPath Rel (FromJSON)" <> show e
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
deriveJSON defaultOptions{ sumEncoding = ObjectWithSingleField } ''TarDir
 | 
			
		||||
instance ToJSON TarDir where
 | 
			
		||||
  toJSON (RealDir  p) = toJSON p
 | 
			
		||||
  toJSON (RegexDir r) = object ["RegexDir" .= r]
 | 
			
		||||
 | 
			
		||||
instance FromJSON TarDir where
 | 
			
		||||
  parseJSON v = realDir v <|> regexDir v
 | 
			
		||||
   where
 | 
			
		||||
    realDir = withText "TarDir" $ \t -> do
 | 
			
		||||
      fp <- parseJSON (String t)
 | 
			
		||||
      pure (RealDir fp)
 | 
			
		||||
    regexDir = withObject "TarDir" $ \o -> do
 | 
			
		||||
      r <- o .: "RegexDir"
 | 
			
		||||
      pure $ RegexDir r
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user