-- |
-- Module : Test.DocTest.Gen
-- Copyright : (c) 2017 Hexirp
--
-- License : BSD 3-clause "New" or "Revised" License
-- Maintainer : https://github.com/Hexirp/doctest-driver-gen/issues
-- Stability : experimental
-- Portability : portable
--
-- Provide doctest-driver-gen's functions.
module Test.DocTest.Gen where
import Prelude
-- | Run doctest-driver-gen with given list of arguments.
ddgen :: [String] -> IO ()
ddgen (src : inp : out : opts) = ddgen_run src inp out opts
ddgen _ = ddgen_usage
-- | Run doctest-driver-gen with correct arguments.
ddgen_run
:: String -- ^ Name of the original source file.
-> String -- ^ Name of the file holding the input.
-> String -- ^ Name of the file where this should write its output to.
-> [String] -- ^ Options for doctest.
-> IO ()
ddgen_run _ _ out opts = ddgen_output out opts
-- | Output driver file.
ddgen_output :: String -> [String] -> IO ()
ddgen_output out opts = writeFile out $ unlines [
"import Prelude",
"import Test.DocTest",
"",
"main :: IO ()",
"main = doctest " ++ show opts]
-- | Print doctest-driver-gen's usage.
ddgen_usage :: IO ()
ddgen_usage = putStrLn $ unlines [
"Usage:",
" {-# OPTIONS_GHC -F -pgmF doctest-driver-gen [-optF DOCTEST_OPTION]... #-}",
"",
"Make your driver file with the content."]