Skip to content

Include cabal-version field into cabal files generated with hpack #85

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 10 additions & 3 deletions cabal2nix/Main.hs
Original file line number Diff line number Diff line change
Expand Up @@ -92,10 +92,17 @@ findCabalFiles path = doesFileExist (path </> Hpack.packageConfig) >>= \case
Right r ->
return $ [InMemory (Just Hpack)
(Hpack.decodeResultCabalFile r)
(encodeUtf8 $ Hpack.renderPackage [] (Hpack.decodeResultPackage r))]
(encodeUtf8 $ render r)]

where encodeUtf8 :: String -> ByteString
encodeUtf8 = T.encodeUtf8 . T.pack
where
render :: Hpack.DecodeResult -> String
render r =
let body = Hpack.renderPackage [] (Hpack.decodeResultPackage r)
cabalVersion = Hpack.decodeResultCabalVersion r
in cabalVersion ++ body

encodeUtf8 :: String -> ByteString
encodeUtf8 = T.encodeUtf8 . T.pack


expr :: FilePath -> String -> String -> IO (Binding NExpr)
Expand Down
14 changes: 11 additions & 3 deletions lib/Stack2nix/Project.hs
Original file line number Diff line number Diff line change
Expand Up @@ -30,10 +30,18 @@ findCabalFiles UsePackageYamlFirst path = doesFileExist (path </> Hpack.packageC
Right r ->
return $ [InMemory (Just Hpack)
(Hpack.decodeResultCabalFile r)
(encodeUtf8 $ Hpack.renderPackage [] (Hpack.decodeResultPackage r))]
(encodeUtf8 $ render r)]

where
render :: Hpack.DecodeResult -> String
render r =
let body = Hpack.renderPackage [] (Hpack.decodeResultPackage r)
cabalVersion = Hpack.decodeResultCabalVersion r
in cabalVersion ++ body

encodeUtf8 :: String -> ByteString
encodeUtf8 = T.encodeUtf8 . T.pack

where encodeUtf8 :: String -> ByteString
encodeUtf8 = T.encodeUtf8 . T.pack

findOnlyCabalFiles :: FilePath -> IO [CabalFile]
findOnlyCabalFiles path = fmap (OnDisk . (path </>)) . filter (isSuffixOf ".cabal") <$> listDirectory path
13 changes: 10 additions & 3 deletions plan2nix/Plan2Nix/Project.hs
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,14 @@ findCabalFiles path = doesFileExist (path </> Hpack.packageConfig) >>= \case
Right r ->
return $ [InMemory (Just Hpack)
(Hpack.decodeResultCabalFile r)
(encodeUtf8 $ Hpack.renderPackage [] (Hpack.decodeResultPackage r))]
(encodeUtf8 $ render r)]

where encodeUtf8 :: String -> ByteString
encodeUtf8 = T.encodeUtf8 . T.pack
where
render :: Hpack.DecodeResult -> String
render r =
let body = Hpack.renderPackage [] (Hpack.decodeResultPackage r)
cabalVersion = Hpack.decodeResultCabalVersion r
in cabalVersion ++ body

encodeUtf8 :: String -> ByteString
encodeUtf8 = T.encodeUtf8 . T.pack