@@ -77,6 +77,7 @@ import Data.List
77import Data.Char
77import Data.Char
78import Data.Version
78import Data.Version
79import Data.Word (Word)
79import Data.Word (Word)
80+import Data.Either (partitionEithers)
80import Control.DeepSeq
81import Control.DeepSeq
82import qualified Text.PrettyPrint.ANSI.Leijen as ANSI
83import qualified Text.PrettyPrint.ANSI.Leijen as ANSI
@@ -978,10 +979,15 @@ process h fn (Apropos a) =
979-- IdrisDoc
980-- IdrisDoc
980process h fn (MakeDoc s) =
981process h fn (MakeDoc s) =
981− do istate <- getIState
982+ do istate <- getIState
982− let nss = words s
983+ let names = words s
984+ parse n | Success x <- runparser name istate fn n = Right x
986+ (bad, nss) = partitionEithers $ map parse names
983− outputDir <- runIO $ getCurrentDirectory
987+ cd <- runIO $ getCurrentDirectory
988+ let outputDir = cd </> "doc"
984− result <- runIO $ generateDocs istate nss outputDir
989+ result <- if null bad then runIO $ generateDocs istate nss outputDir
990+ else return . Left $ "Illegal name: " ++ head bad
985 case result of Right _ -> iputStrLn "IdrisDoc generated"
991 case result of Right _ -> iputStrLn "IdrisDoc generated"
986 Left err -> iPrintError err
992 Left err -> iPrintError err
@@ -1070,6 +1076,7 @@ parseArgs ("--build":n:ns) = PkgBuild n : (parseArgs ns)
1070parseArgs ("--install":n:ns) = PkgInstall n : (parseArgs ns)
1076parseArgs ("--install":n:ns) = PkgInstall n : (parseArgs ns)
1071parseArgs ("--repl":n:ns) = PkgREPL n : (parseArgs ns)
1077parseArgs ("--repl":n:ns) = PkgREPL n : (parseArgs ns)
1072parseArgs ("--clean":n:ns) = PkgClean n : (parseArgs ns)
1078parseArgs ("--clean":n:ns) = PkgClean n : (parseArgs ns)
1079+parseArgs ("--mkdoc":n:ns) = PkgMkDoc n : (parseArgs ns) -- IdrisDoc
1073parseArgs ("--checkpkg":n:ns) = PkgCheck n : (parseArgs ns)
1080parseArgs ("--checkpkg":n:ns) = PkgCheck n : (parseArgs ns)
1074-- Misc Options
1081-- Misc Options
1075parseArgs ("--bytecode":n:ns) = NoREPL : BCAsm n : (parseArgs ns)
1082parseArgs ("--bytecode":n:ns) = NoREPL : BCAsm n : (parseArgs ns)
@@ -1395,6 +1402,11 @@ getPkgCheck :: Opt -> Maybe String
1395getPkgCheck (PkgCheck str) = Just str
1402getPkgCheck (PkgCheck str) = Just str
1396getPkgCheck _ = Nothing
1403getPkgCheck _ = Nothing
1406+getPkgMkDoc :: Opt -> Maybe String
1407+getPkgMkDoc (PkgMkDoc str) = Just str
1408+getPkgMkDoc _ = Nothing
1398getCodegen :: Opt -> Maybe Codegen
1410getCodegen :: Opt -> Maybe Codegen
1399getCodegen (UseCodegen x) = Just x
1411getCodegen (UseCodegen x) = Just x
1400getCodegen _ = Nothing
1412getCodegen _ = Nothing