git.iko.soy/rowtype-yoga/purescript-native
on golang help sign in
[psc-ide] create the output folder if it's missing
commit7eab9e742a2f50f8d38c90d7078118898fa9bd5b authorChristoph Hegemann <christoph.hegemann1337@gmail.com> dateMon 18 Apr 2016, 13:37 (11 years ago) parent48e2766
2 files changed+17−4
psc-ide-server/Main.hs+11−1 src/Language/PureScript/Ide.hs+6−3
psc-ide-server/Main.hs+11−1
@@ -82,7 +82,17 @@ main = do
8282 maybe (pure ()) setCurrentDirectory dir
8383 serverState <- newTVarIO emptyPscIdeState
8484 cwd <- getCurrentDirectory
85− _ <- forkFinally (watcher serverState (cwd </> outputPath)) print
85+ let fullOutputPath = cwd </> outputPath
86+
87+ doesDirectoryExist fullOutputPath
88+ >>= flip unless
89+ (do putStrLn ("Your output directory didn't exist. I'll create it at: " <> fullOutputPath)
90+ createDirectory fullOutputPath
91+ putStrLn "This usually means you didn't compile your project yet."
92+ putStrLn "psc-ide needs you to compile your project (for example by running pulp build)"
93+ )
94+
95+ _ <- forkFinally (watcher serverState fullOutputPath) print
8696 let conf =
8797 Configuration
8898 {
src/Language/PureScript/Ide.hs+6−3
@@ -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