module Main where

import Control.Monad
import System.Exit
import qualified ShellCheck.Checker
import qualified ShellCheck.Analytics
import qualified ShellCheck.AnalyzerLib
import qualified ShellCheck.Parser
import qualified ShellCheck.Checks.Commands
import qualified ShellCheck.Checks.ShellSupport

main = do
    putStrLn "Running ShellCheck tests..."
    results <- sequence [
        ShellCheck.Checker.runTests,
        ShellCheck.Checks.Commands.runTests,
        ShellCheck.Checks.ShellSupport.runTests,
        ShellCheck.Analytics.runTests,
        ShellCheck.AnalyzerLib.runTests,
        ShellCheck.Parser.runTests
      ]
    if and results
      then exitSuccess
      else exitFailure