hpack-0.34.3: test/Helper.hs
{-# LANGUAGE FlexibleContexts #-}
{-# LANGUAGE ConstraintKinds #-}
{-# OPTIONS_GHC -fno-warn-orphans #-}
module Helper (
module Test.Hspec
, module Test.Mockery.Directory
, module Control.Monad
, module Control.Applicative
, withTempDirectory
, module System.FilePath
, withCurrentDirectory
, yaml
) where
import Test.Hspec
import Test.Mockery.Directory
import Data.String
import Control.Monad
import Control.Applicative
import System.Directory (getCurrentDirectory, setCurrentDirectory, canonicalizePath)
import Control.Exception
import qualified System.IO.Temp as Temp
import System.FilePath
import Data.Yaml.TH (yamlQQ)
import Language.Haskell.TH.Quote (QuasiQuoter)
import Hpack.Config
instance IsString Cond where
fromString = CondExpression
withCurrentDirectory :: FilePath -> IO a -> IO a
withCurrentDirectory dir action = do
bracket getCurrentDirectory setCurrentDirectory $ \ _ -> do
setCurrentDirectory dir
action
withTempDirectory :: (FilePath -> IO a) -> IO a
withTempDirectory action = Temp.withSystemTempDirectory "hspec" $ \dir -> do
canonicalizePath dir >>= action
yaml :: Language.Haskell.TH.Quote.QuasiQuoter
yaml = yamlQQ