@@ -29,6 +29,7 @@ module Language.PureScript.Ide
29import Prelude ()
29import Prelude ()
30import Prelude.Compat
30import Prelude.Compat
32+import Control.Monad (unless)
32import Control.Monad.Error.Class
33import Control.Monad.Error.Class
33import Control.Monad.IO.Class
34import Control.Monad.IO.Class
34import "monad-logger" Control.Monad.Logger
35import "monad-logger" Control.Monad.Logger
@@ -45,18 +46,18 @@ import Language.PureScript.Ide.Completion
45import Language.PureScript.Ide.Error
46import Language.PureScript.Ide.Error
46import Language.PureScript.Ide.Externs
47import Language.PureScript.Ide.Externs
47import Language.PureScript.Ide.Filter
48import Language.PureScript.Ide.Filter
48−import Language.PureScript.Ide.Imports hiding (Import)
49+import Language.PureScript.Ide.Imports hiding (Import)
49import Language.PureScript.Ide.Matcher
50import Language.PureScript.Ide.Matcher
50import Language.PureScript.Ide.Pursuit
51import Language.PureScript.Ide.Pursuit
52+import Language.PureScript.Ide.Rebuild
51import Language.PureScript.Ide.Reexports
53import Language.PureScript.Ide.Reexports
52import Language.PureScript.Ide.SourceFile
54import Language.PureScript.Ide.SourceFile
53import Language.PureScript.Ide.State
55import Language.PureScript.Ide.State
54import Language.PureScript.Ide.Types
56import Language.PureScript.Ide.Types
55import Language.PureScript.Ide.Util
57import Language.PureScript.Ide.Util
56−import Language.PureScript.Ide.Rebuild
57import System.Directory
58import System.Directory
58−import System.FilePath
59import System.Exit
59import System.Exit
60+import System.FilePath
61handleCommand :: (PscIde m, MonadLogger m, MonadError PscIdeError m) =>
62handleCommand :: (PscIde m, MonadLogger m, MonadError PscIdeError m) =>
62 Command -> m Success
63 Command -> m Success
@@ -215,6 +216,8 @@ loadAllModules = do
215 outputPath <- confOutputPath . envConfiguration <$> ask
216 outputPath <- confOutputPath . envConfiguration <$> ask
216 cwd <- liftIO getCurrentDirectory
217 cwd <- liftIO getCurrentDirectory
217 let outputDirectory = cwd </> outputPath
218 let outputDirectory = cwd </> outputPath
219+ liftIO (doesDirectoryExist outputDirectory)
220+ >>= flip unless (throwError (GeneralError "Couldn't locate your output directory"))
218 liftIO (getDirectoryContents outputDirectory)
221 liftIO (getDirectoryContents outputDirectory)
219 >>= liftIO . traverse (getExternsPath outputDirectory)
222 >>= liftIO . traverse (getExternsPath outputDirectory)
220 >>= traverse_ loadExtern . catMaybes
223 >>= traverse_ loadExtern . catMaybes