@@ -74,23 +74,23 @@ parseCabalPackage
7474 => FilePath -- ^ package directory
7575 -> m (Maybe CabalPackageInfo)
7676parseCabalPackage dir = do
77− let hpackFp = dir </> "package.yaml"
78− cabalFp = dir </> (takeBaseName dir <> ".cabal")
77+ let cabalFp = dir </> (takeBaseName dir <> ".cabal")
78+ hpackFp = dir </> "package.yaml"
79+ hasCabal <- liftIO $ doesFileExist cabalFp
7980 hasHpack <- liftIO $ doesFileExist hpackFp
80− mCabalContents <- if hasHpack
81− then do
82− let decodeOptions = DecodeOptions hpackFp Nothing decodeYaml
83− liftIO (readPackageConfig decodeOptions) >>= \case
84− Left err -> do
85− putLog Error $ T.pack $ "Failed to parse " <> hpackFp <> ": " <> err
86− return Nothing
87− Right (DecodeResult hpackPackage _ _) -> do
88− return $ Just $ renderPackage [] hpackPackage
89− else do
90− hasCabal <- liftIO $ doesFileExist cabalFp
91− if hasCabal
92− then Just <$> liftIO (readUTF8File cabalFp)
93− else return Nothing
81+
82+ mCabalContents <- if hasCabal
83+ then Just <$> liftIO (readUTF8File cabalFp)
84+ else if hasHpack
85+ then do
86+ let decodeOptions = DecodeOptions hpackFp Nothing decodeYaml
87+ liftIO (readPackageConfig decodeOptions) >>= \case
88+ Left err -> do
89+ putLog Error $ T.pack $ "Failed to parse " <> hpackFp <> ": " <> err
90+ return Nothing
91+ Right (DecodeResult hpackPackage _ _) -> do
92+ return $ Just $ renderPackage [] hpackPackage
93+ else return Nothing
9494
9595 fmap join $ forM mCabalContents $ \cabalContents -> do
9696 let (warnings, result) = runParseResult $ parseGenericPackageDescription $