@@ -29,6 +29,7 @@ module Language.PureScript.Ide
2929import Prelude ()
3030import Prelude.Compat
3131
32+import Control.Monad (unless)
3233import Control.Monad.Error.Class
3334import Control.Monad.IO.Class
3435import "monad-logger" Control.Monad.Logger
@@ -45,18 +46,18 @@ import Language.PureScript.Ide.Completion
4546import Language.PureScript.Ide.Error
4647import Language.PureScript.Ide.Externs
4748import Language.PureScript.Ide.Filter
48−import Language.PureScript.Ide.Imports hiding (Import)
49+import Language.PureScript.Ide.Imports hiding (Import)
4950import Language.PureScript.Ide.Matcher
5051import Language.PureScript.Ide.Pursuit
52+import Language.PureScript.Ide.Rebuild
5153import Language.PureScript.Ide.Reexports
5254import Language.PureScript.Ide.SourceFile
5355import Language.PureScript.Ide.State
5456import Language.PureScript.Ide.Types
5557import Language.PureScript.Ide.Util
56−import Language.PureScript.Ide.Rebuild
5758import System.Directory
58−import System.FilePath
5959import System.Exit
60+import System.FilePath
6061
6162handleCommand :: (PscIde m, MonadLogger m, MonadError PscIdeError m) =>
6263 Command -> m Success
@@ -215,6 +216,8 @@ loadAllModules = do
215216 outputPath <- confOutputPath . envConfiguration <$> ask
216217 cwd <- liftIO getCurrentDirectory
217218 let outputDirectory = cwd </> outputPath
219+ liftIO (doesDirectoryExist outputDirectory)
220+ >>= flip unless (throwError (GeneralError "Couldn't locate your output directory"))
218221 liftIO (getDirectoryContents outputDirectory)
219222 >>= liftIO . traverse (getExternsPath outputDirectory)
220223 >>= traverse_ loadExtern . catMaybes