{-# LANGUAGE ExistentialQuantification #-}
module Pansite.Config.Types
( App (..)
, FilePathResolver
, ParserContext (..)
, Route (..)
, Target (..)
, ToolConfig (..)
, ToolConfigRunner
, ToolConfigUpdater
, ToolContext (..)
, ToolSpec (..)
) where
import Data.Default
import Data.Yaml
type FilePathResolver = FilePath -> FilePath
type ToolConfigUpdater a = ParserContext -> a -> Value -> Parser a
type ToolConfigRunner a = ToolContext -> a -> IO ()
data ParserContext = ParserContext
FilePathResolver
data ToolContext = ToolContext
FilePath
[FilePath]
[FilePath]
data ToolSpec = forall a. Default a => ToolSpec
String
(ToolConfigUpdater a)
(ToolConfigRunner a)
data App = App [Route] [Target]
data Route = Route [String] FilePath
data Target = Target FilePath ToolConfig [FilePath] [FilePath]
data ToolConfig = forall a. ToolConfig (ToolConfigUpdater a) (ToolConfigRunner a) a