From 3ae9204b95b743cd41a58576a59a4d0473e36c12 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Gr=C3=B6ber?= Date: Wed, 11 May 2016 15:10:00 +0200 Subject: [PATCH] Disable 'cabal' cradle when executable isn't found --- Language/Haskell/GhcMod/Cradle.hs | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/Language/Haskell/GhcMod/Cradle.hs b/Language/Haskell/GhcMod/Cradle.hs index fe2b179..ed940c8 100644 --- a/Language/Haskell/GhcMod/Cradle.hs +++ b/Language/Haskell/GhcMod/Cradle.hs @@ -69,12 +69,16 @@ fillTempDir crdl = do tmpDir <- liftIO $ newTempDir (cradleRootDir crdl) return crdl { cradleTempDir = tmpDir } -cabalCradle :: IOish m => FilePath -> MaybeT m Cradle +cabalCradle :: (IOish m, GmLog m, GmOut m) => FilePath -> MaybeT m Cradle cabalCradle wdir = do cabalFile <- MaybeT $ liftIO $ findCabalFile wdir - let cabalDir = takeDirectory cabalFile + -- If cabal doesn't exist the user probably wants to use something else + whenM (isJust <$> liftIO (findExecutable "cabal")) $ do + gmLog GmWarning "" $ text "'dist/setup-config' exists but 'cabal' executable wasn't found." + mzero + return Cradle { cradleProject = CabalProject , cradleCurrentDir = wdir