Skip to content

cabal path fails with cabal HEAD #485

@fendor

Description

@fendor

If you use cabal HEAD, or any local install, often you use a debug installation of cabal. In this case, cabal will output the warning:

Warning: this is a debug build of cabal-install with assertions enabled.

for each cli invocation.
This output warning can't be silenced.

With this output, the output of cabal path is unexpectedly not a valid json object.
Thus, hie-bios can't find the ghc options and renders HLS inoperable with cabal HEAD installations that have assertions enabled.

The solution is to invoke cabal path --output-format=json -vnormal+markoutput and parse the last output block:

> cabal path --output-format=json -vnormal+markoutput
-----BEGIN CABAL OUTPUT-----
Configuration is affected by the following files:
- cabal.project
-----END CABAL OUTPUT-----
-----BEGIN CABAL OUTPUT-----
{"cabal-version":"3.14.2.0","compiler":{"flavour":"ghc","id":"ghc-9.10.3","path":"/home/hugin/.ghcup/bin/ghc"},"cache-home":"/home/hugin/.cache/cabal","remote-repo-cache":"/home/hugin/.cache/cabal/packages","logs-dir":"/home/hugin/.cache/cabal/logs","store-dir":"/home/hugin/.local/state/cabal/store","config-file":"/home/hugin/.config/cabal/config","installdir":"/home/hugin/.local/bin"}
-----END CABAL OUTPUT-----

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions