on master help sign in
Merge pull request #224 from obsidiansystems/fix-hpack-cabal-order

Use cabal file if present before trying hpack for consistency with cabal2nix

commitd17f5d2a1fb826609af23ec3ad5021249271a83b authorLuigy Leon <luichi.19@gmail.com> dateThu 27 Sep 2018, 18:26 (8 years ago) parent705ad16a762a35
1 file changed+16−16
lib/command/src/Obelisk/Command/Run.hs+16−16
lib/command/src/Obelisk/Command/Run.hs+16−16
@@ -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 $