packages feed

autonix-deps-0.3.0.0: src/Autonix/Src.hs

{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE TemplateHaskell #-}

module Autonix.Src (Src, mkSrc, url, sha256, name) where

import Control.Lens
import Data.Aeson
import Data.Aeson.Types
import Data.Text (Text)
import GHC.Generics

data Src =
  Src { _url :: FilePath
      , _sha256 :: Text
      , _name :: Text
      }
  deriving Generic
makeLenses ''Src

srcOptions :: Options
srcOptions = defaultOptions { fieldLabelModifier = tail }

instance FromJSON Src where
  parseJSON = genericParseJSON srcOptions

instance ToJSON Src where
  toJSON = genericToJSON srcOptions

mkSrc :: FilePath -> Text -> Text -> Src
mkSrc = Src