rds-data-0.0.0.3: testlib/Data/RdsData/Polysemy/Test/Workspace.hs
{-# LANGUAGE DataKinds #-}
{-# LANGUAGE FlexibleContexts #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE TypeOperators #-}
module Data.RdsData.Polysemy.Test.Workspace
( localWorkspace,
) where
import qualified Data.Text as T
import HaskellWorks.Polysemy
import HaskellWorks.Polysemy.Hedgehog
import HaskellWorks.Polysemy.Prelude
import Polysemy ()
localWorkspace :: ()
=> HasCallStack
=> Member (Embed IO) r
=> Member Hedgehog r
=> Member Log r
=> Text
-> Sem
( Reader Workspace
: Reader ProjectRoot
: Reader PackagePath
: Resource
: r)
()
-> Sem r ()
localWorkspace prefix f =
withFrozenCallStack $ do
cabalProjectDir <- findCabalProjectDir "."
f & moduleWorkspace (T.unpack prefix)
& runReader (ProjectRoot cabalProjectDir)
& runReader (PackagePath "rds-data")
& runResource