@@ -5,7 +5,7 @@ import System.Process
5import System.Directory
5import System.Directory
6import System.Exit
6import System.Exit
7import System.IO
7import System.IO
8−import System.FilePath ((</>), addTrailingPathSeparator, takeFileName)
8+import System.FilePath ((</>), addTrailingPathSeparator, takeFileName, takeDirectory)
9import System.Directory (createDirectoryIfMissing, copyFile)
9import System.Directory (createDirectoryIfMissing, copyFile)
11import Util.System
11import Util.System
@@ -133,17 +133,20 @@ documentPkg :: FilePath -- ^ Path to .ipkg file.
133documentPkg fp =
133documentPkg fp =
134 do pkgdesc <- parseDesc fp
134 do pkgdesc <- parseDesc fp
135 cd <- getCurrentDirectory
135 cd <- getCurrentDirectory
136+ let pkgDir = cd </> takeDirectory fp
136− let outputDir = cd </> (pkgname pkgdesc) ++ "_doc"
137+ outputDir = cd </> (pkgname pkgdesc) ++ "_doc"
138+ opts = NoREPL : Verbose : idris_opts pkgdesc
137 mods = modules pkgdesc
139 mods = modules pkgdesc
138 fs = map (foldl1' (</>) . splitOn "." . showCG) mods
140 fs = map (foldl1' (</>) . splitOn "." . showCG) mods
139− opts = NoREPL : Verbose : idris_opts pkgdesc
140− setCurrentDirectory $ cd </> sourcedir pkgdesc
141+ setCurrentDirectory $ pkgDir </> sourcedir pkgdesc
141 make (makefile pkgdesc)
142 make (makefile pkgdesc)
143+ setCurrentDirectory $ pkgDir
142 let run l = runErrorT . (execStateT l)
144 let run l = runErrorT . (execStateT l)
143 load [] = return ()
145 load [] = return ()
144 load (f:fs) = do loadModule stdout f; load fs
146 load (f:fs) = do loadModule stdout f; load fs
145 loader = do idrisMain opts; load fs
147 loader = do idrisMain opts; load fs
146 idrisInstance <- run loader idrisInit
148 idrisInstance <- run loader idrisInit
149+ setCurrentDirectory cd
147 case idrisInstance of
150 case idrisInstance of
148 Left err -> do putStrLn $ pshow idrisInit err; exitWith (ExitFailure 1)
151 Left err -> do putStrLn $ pshow idrisInit err; exitWith (ExitFailure 1)
149 Right ist ->
152 Right ist ->