module HIE.Bios.Cradle.Resolved
( ResolvedCradles(..)
, ResolvedCradle(..)
, ConcreteCradle(..)
) where
import HIE.Bios.Cradle.ProgramVersions
import HIE.Bios.Config
data ResolvedCradles a = ResolvedCradles
{ forall a. ResolvedCradles a -> FilePath
cradleRoot :: FilePath
, forall a. ResolvedCradles a -> [ResolvedCradle a]
resolvedCradles :: [ResolvedCradle a]
, forall a. ResolvedCradles a -> ProgramVersions
cradleProgramVersions :: ProgramVersions
}
data ResolvedCradle a = ResolvedCradle
{ forall a. ResolvedCradle a -> FilePath
prefix :: FilePath
, forall a. ResolvedCradle a -> [FilePath]
cradleDeps :: [FilePath]
, forall a. ResolvedCradle a -> ConcreteCradle a
concreteCradle :: ConcreteCradle a
} deriving Int -> ResolvedCradle a -> ShowS
[ResolvedCradle a] -> ShowS
ResolvedCradle a -> FilePath
(Int -> ResolvedCradle a -> ShowS)
-> (ResolvedCradle a -> FilePath)
-> ([ResolvedCradle a] -> ShowS)
-> Show (ResolvedCradle a)
forall a. Show a => Int -> ResolvedCradle a -> ShowS
forall a. Show a => [ResolvedCradle a] -> ShowS
forall a. Show a => ResolvedCradle a -> FilePath
forall a.
(Int -> a -> ShowS) -> (a -> FilePath) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: forall a. Show a => Int -> ResolvedCradle a -> ShowS
showsPrec :: Int -> ResolvedCradle a -> ShowS
$cshow :: forall a. Show a => ResolvedCradle a -> FilePath
show :: ResolvedCradle a -> FilePath
$cshowList :: forall a. Show a => [ResolvedCradle a] -> ShowS
showList :: [ResolvedCradle a] -> ShowS
Show
data ConcreteCradle a
= ConcreteCabal CabalType
| ConcreteStack StackType
| ConcreteBios Callable (Maybe Callable) (Maybe FilePath)
| ConcreteDirect [String]
| ConcreteNone
| ConcreteOther a
deriving Int -> ConcreteCradle a -> ShowS
[ConcreteCradle a] -> ShowS
ConcreteCradle a -> FilePath
(Int -> ConcreteCradle a -> ShowS)
-> (ConcreteCradle a -> FilePath)
-> ([ConcreteCradle a] -> ShowS)
-> Show (ConcreteCradle a)
forall a. Show a => Int -> ConcreteCradle a -> ShowS
forall a. Show a => [ConcreteCradle a] -> ShowS
forall a. Show a => ConcreteCradle a -> FilePath
forall a.
(Int -> a -> ShowS) -> (a -> FilePath) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: forall a. Show a => Int -> ConcreteCradle a -> ShowS
showsPrec :: Int -> ConcreteCradle a -> ShowS
$cshow :: forall a. Show a => ConcreteCradle a -> FilePath
show :: ConcreteCradle a -> FilePath
$cshowList :: forall a. Show a => [ConcreteCradle a] -> ShowS
showList :: [ConcreteCradle a] -> ShowS
Show