packages feed

pontarius-xmpp-0.5.0: tests/Doctest.hs

-- pilfered from lens package

module Main(main) where

import Build_doctest (deps)

import Control.Applicative
import Control.Monad
import Data.List
import System.Directory
import System.FilePath
import Test.DocTest

main :: IO ()
main = doctest $
    "-isource"
  : "-itests"
  : "-w"
  : "-idist/build/autogen"
  : "-hide-all-packages"
  : "-XQuasiQuotes"
  : "-XOverloadedStrings"
  : "-DWITH_TEMPLATE_HASKELL"
  : "-optP-includedist/build/autogen/cabal_macros.h"
  : map ("-package="++) deps
    ++ sources

sources :: [String]
sources = ["Network.Xmpp.Types"] -- ["source/Network/Xmpp/Types.hs"]

getSources :: IO [FilePath]
getSources = filter (isSuffixOf ".hs") <$> go "source"
  where
    go dir = do
      (dirs, files) <- getFilesAndDirectories dir
      (files ++) . concat <$> mapM go dirs

getFilesAndDirectories :: FilePath -> IO ([FilePath], [FilePath])
getFilesAndDirectories dir = do
  c <- map (dir </>) . filter (`notElem` ["..", "."]) <$> getDirectoryContents dir
  (,) <$> filterM doesDirectoryExist c <*> filterM doesFileExist c