effectful-zoo-0.0.3.0: components/rds-data-test/Effectful/Zoo/RdsData/Test/Workspace.hs
{-# LANGUAGE DataKinds #-}
{-# LANGUAGE FlexibleContexts #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE TypeOperators #-}
module Effectful.Zoo.RdsData.Test.Workspace
( localWorkspace,
) where
import Data.Text qualified as T
import Effectful
import Effectful.Concurrent
import Effectful.Zoo.Core
import Effectful.Zoo.Environment
import Effectful.Zoo.Error.Static
import Effectful.Zoo.FileSystem
import Effectful.Zoo.Hedgehog.Api
import Effectful.Zoo.Hedgehog.Api.Workspace
import Effectful.Zoo.Hedgehog.Effect.Hedgehog
import Effectful.Zoo.Log.Dynamic
import Effectful.Zoo.Reader.Static
import HaskellWorks.Prelude
localWorkspace :: ()
=> HasCallStack
=> r <: Concurrent
=> r <: Environment
=> r <: Error Failure
=> r <: FileSystem
=> r <: Hedgehog
=> r <: Log Text
=> Text
-> Eff
( Reader Workspace
: Reader ProjectRoot
: Reader PackagePath
: r)
()
-> Eff r ()
localWorkspace prefix f =
withFrozenCallStack $ do
cabalProjectDir <- findCabalProjectDir "."
f & moduleWorkspace (T.unpack prefix)
& runReader (ProjectRoot cabalProjectDir)
& runReader (PackagePath "rds-data")