{-# LANGUAGE OverloadedStrings #-} {-| This module is just for parsing and generating gipeda.yaml files. It should probably replaced by a reference to gipeda, but it works for now. The raison d'ĂȘtre is @settingsForRepo@. -} module FeedGipeda.Gipeda ( GipedaSettings (..) , BenchmarkSettings (..) , settingsForRepo , determineBenchmarkScript ) where import Control.Applicative import qualified Control.Logging as Logging import Control.Monad (liftM2, when) import Data.Aeson (withArray, withObject) import Data.Either (either) import Data.Functor import Data.Maybe (catMaybes, fromMaybe, isJust, isNothing) import Data.String (fromString) import qualified Data.Text as Text import Data.Yaml (FromJSON (..), ToJSON (..), (.:), (.=)) import qualified Data.Yaml as Yaml import FeedGipeda.GitShell (SHA) import qualified FeedGipeda.GitShell as GitShell import FeedGipeda.Prelude import FeedGipeda.Repo (Repo) import qualified FeedGipeda.Repo as Repo import System.Directory (doesFileExist) import Text.Printf (printf) {-| Models the possible settings in a @gipeda.yaml@ file, as expected to be present by @gipeda@. -} data GipedaSettings = GipedaSettings { title :: String -- ^ Sets the repo-specific