More command line options; fix verbosity option.
catseye
13 years ago
8 | 8 | import Test.Falderal.Reporter (report) |
9 | 9 | |
10 | 10 | -- |
11 | -- This module contains entry points to Falderal functionality intended | |
12 | -- for use by users. | |
11 | -- Main module for the `falderal` tool -- a command-line interface to | |
12 | -- `Test.Falderal`. | |
13 | 13 | -- |
14 | 14 | |
15 | 15 | -- |
17 | 17 | -- |
18 | 18 | |
19 | 19 | data Flag = ReportFormat String |
20 | | Verbosity Integer | |
20 | | ShowVersion | |
21 | | HaskellCommand String | |
22 | | ShellCommand String | |
23 | | Verbosity String | |
21 | 24 | deriving (Show, Ord, Eq) |
22 | 25 | |
23 | 26 | determineReportFormat [] = "standard" |
25 | 28 | determineReportFormat (_:rest) = determineReportFormat rest |
26 | 29 | |
27 | 30 | determineVerbosity [] = 0 |
28 | determineVerbosity (Verbosity v:_) = v | |
31 | determineVerbosity (Verbosity v:_) = (read v) :: Int | |
29 | 32 | determineVerbosity (_:rest) = determineVerbosity rest |
30 | 33 | |
31 | 34 | -- |
46 | 49 | |
47 | 50 | options :: [OptDescr Flag] |
48 | 51 | options = [ |
49 | Option ['v'] ["verbosity"] (ReqArg ReportFormat "LEVEL") "verbosity level, higher is more verbose (default: 0)", | |
50 | Option ['r'] ["report"] (ReqArg ReportFormat "FORMAT") "success/failure report format (default: standard)" | |
52 | Option ['h'] ["haskell-command"] (ReqArg HaskellCommand "CMD") "command to run Haskell tests (default: 'ghc -e testModule')", | |
53 | Option ['r'] ["report-format"] (ReqArg ReportFormat "FORMAT") "success/failure report format (default: standard)", | |
54 | Option ['s'] ["shell-command"] (ReqArg ShellCommand "CMD") "command to run shell scripts (default: 'sh')", | |
55 | Option ['v'] ["verbosity"] (ReqArg Verbosity "LEVEL") "verbosity level, higher is more verbose (default: 0)", | |
56 | Option ['V'] ["version"] (NoArg ShowVersion) "show version and exit" | |
51 | 57 | ] |
52 | 58 | |
53 | 59 | dispatch ("format":formatName:fileNames) _ = do |
76 | 82 | -- |
77 | 83 | testHaskell blocks reportFormat verbosity = |
78 | 84 | runTests blocks reportFormat verbosity |
79 | ("GeneratedFalderalTests.hs", "haskell", "ghc GeneratedFalderalTests.hs -e testModule") | |
85 | ("GeneratedFalderalTests.hs", "haskell", "ghc -e testModule GeneratedFalderalTests.hs") | |
80 | 86 | |
81 | 87 | testShell blocks reportFormat verbosity = |
82 | 88 | runTests blocks reportFormat verbosity |