packages feed

clash-protocols-0.1: tests/doctests.hs

module Main where

import Build_doctests (flags, module_sources, pkgs)
import System.Environment (lookupEnv)
import System.Process
import Test.DocTest (doctest)
import Prelude

getGlobalPackageDb :: IO String
getGlobalPackageDb = readProcess "ghc" ["--print-global-package-db"] ""

main :: IO ()
main = do
  inNixShell <- lookupEnv "IN_NIX_SHELL"
  extraFlags <-
    case inNixShell of
      Nothing -> pure []
      Just _ -> pure . ("-package-db=" ++) <$> getGlobalPackageDb

  let
    pluginFlags =
      [ "-fplugin"
      , "GHC.TypeLits.KnownNat.Solver"
      , "-fplugin"
      , "GHC.TypeLits.Normalise"
      , "-fplugin"
      , "GHC.TypeLits.Extra.Solver"
      ]

  doctest (flags ++ extraFlags ++ pkgs ++ pluginFlags ++ module_sources)