module Boots.Factory.Salak( HasSalak(..) , buildSalak -- ** Configuration Functions , MonadSalak(..) ) where import Boots.App.Internal import Boots.Factory import Lens.Micro import Lens.Micro.Extras import Salak import Salak.Yaml class HasSalak env where askSalak :: Lens' env Salak instance HasSalak Salak where askSalak = id {-# INLINE askSalak #-} instance (HasSalak env, Monad m) => MonadSalak (Factory m env) where askSourcePack = asks (view askSalak) {-# INLINE askSourcePack #-} instance (HasSalak env, Monad m) => MonadSalak (AppT env m) where askSourcePack = asks (view askSalak) {-# INLINE askSourcePack #-} buildSalak :: (MonadIO m, MonadCatch m) => String -> Factory m () Salak buildSalak name = offer $ runSalakWithYaml name askSourcePack