----------------------------------------------------------------------------- -- -- Module : Main -- Copyright : (c) DICOM Grid Inc. 2013 -- License : MIT -- -- Maintainer : Phillip Freeman -- Stability : experimental -- Portability : -- -- | -- ----------------------------------------------------------------------------- module Main ( main ) where import Language.TypeScript import Language.TypeScript.Docs import System.Console.CmdTheLine import Control.Applicative import System.Exit (exitSuccess, exitFailure) import System.FilePath (pathSeparator) import System.FilePath.Find import qualified System.IO.UTF8 as U docGen :: [FilePath] -> Maybe FilePath -> IO () docGen inputFiles outputFile = do tds <- fmap concat $ mapM U.readFile inputFiles case convertDeclarationsToHtml tds of Left err -> do U.putStrLn err exitFailure Right html -> do case outputFile of Just path -> U.writeFile path html Nothing -> U.putStrLn html exitSuccess inputFiles :: Term [FilePath] inputFiles = nonEmpty $ posAny [] $ posInfo { posDoc = "The input .d.ts file" } outputFile :: Term (Maybe FilePath) outputFile = value $ opt Nothing $ (optInfo [ "o", "output" ]) { optDoc = "The output .html file" } term :: Term (IO ()) term = docGen <$> inputFiles <*> outputFile termInfo :: TermInfo termInfo = defTI { termName = "typescript-docs" , version = "0.0.1" , termDoc = "Converts TypeScript Declaration files into HTML format" } main = run (term, termInfo)