@@ -116,22 +116,20 @@ launchHaskellLanguageServer parsedArgs = do
116
116
#else
117
117
let Cradle { cradleOptsProg = CradleAction { runGhcCmd } } = cradle
118
118
ghcBinary <- (fmap trim <$> runGhcCmd [" -v0" , " -package-env=-" , " -e" , " putStr =<< System.Environment.getExecutablePath" ])
119
- >>= \ case
120
- CradleSuccess ghc -> do
121
- return ghc
122
- CradleFail error -> die $ " Failed to get project GHC executable path:" ++ show error
123
- CradleNone -> die " Failed get project GHC executable path, since we have a none cradle"
119
+ >>= cradleResult " Failed to get project GHC executable path"
124
120
libdir <- HieBios. getRuntimeGhcLibDir cradle
125
- >>= \ case
126
- CradleSuccess lib -> do
127
- return lib
128
- CradleFail error -> die $ " Failed to get project GHC libdir path:" ++ show error
129
- CradleNone -> die " Failed get project GHC libdir path, since we have a none cradle"
121
+ >>= cradleResult " Failed to get project GHC libdir path"
130
122
env <- Map. fromList <$> getEnvironment
131
123
let newEnv = Map. insert " GHC_BIN" ghcBinary $ Map. insert " GHC_LIBDIR" libdir env
132
124
executeFile e True args (Just (Map. toList newEnv))
133
125
#endif
134
126
127
+
128
+ cradleResult :: String -> CradleLoadResult a -> IO a
129
+ cradleResult _ (CradleSuccess a) = pure a
130
+ cradleResult str (CradleFail e) = die $ str ++ " :" ++ show e
131
+ cradleResult str CradleNone = die $ str ++ " : no cradle"
132
+
135
133
-- | Version of 'getRuntimeGhcVersion' that dies if we can't get it, and also
136
134
-- checks to see if the tool is missing if it is one of
137
135
getRuntimeGhcVersion' :: Show a => Cradle a -> IO String
@@ -145,12 +143,7 @@ getRuntimeGhcVersion' cradle = do
145
143
Direct -> checkToolExists " ghc"
146
144
_ -> pure ()
147
145
148
- ghcVersionRes <- HieBios. getRuntimeGhcVersion cradle
149
- case ghcVersionRes of
150
- CradleSuccess ver -> do
151
- return ver
152
- CradleFail error -> die $ " Failed to get project GHC version:" ++ show error
153
- CradleNone -> die " Failed get project GHC version, since we have a none cradle"
146
+ HieBios. getRuntimeGhcVersion cradle >>= cradleResult " Failed to get project GHC version"
154
147
where
155
148
checkToolExists exe = do
156
149
exists <- findExecutable exe
0 commit comments