Skip to content

Commit 227791f

Browse files
committed
Use new json format
1 parent fccf6b2 commit 227791f

File tree

1 file changed

+14
-6
lines changed

1 file changed

+14
-6
lines changed

lib/call-cabal-project-to-nix.nix

+14-6
Original file line numberDiff line numberDiff line change
@@ -518,22 +518,30 @@ let
518518
json_cabal_file=$(mktemp)
519519
cabal2json $fixed_cabal_file > $json_cabal_file
520520
521-
exposed_modules="$(jq -r '.library."exposed-modules"//[]|.[]|select(type=="array")[]' $json_cabal_file)"
522-
reexported_modules="$(jq -r '.library."reexported-modules"//[]|.[]|select(type=="array")[]' $json_cabal_file | sed 's/.* as //g')"
521+
exposed_modules="$(jq -r '.components.lib."exposed-modules"//[]|.[]|select(type=="string")' $json_cabal_file)"
522+
reexported_modules="$(jq -r '.components.lib."reexported-modules"//[]|.[]|select(type=="string")' $json_cabal_file | sed 's/.* as //g')"
523523
524524
# FIXME This is a bandaid. Rather than doing this, conditionals should be interpreted.
525525
${pkgs.lib.optionalString pkgs.stdenv.targetPlatform.isGhcjs ''
526-
exposed_modules+=" $(jq -r '.library."exposed-modules"//[]|.[]|select(type=="object" and .if.arch == "javascript")|.then[]' $json_cabal_file)"
526+
exposed_modules+=" $(jq -r '.components.lib."exposed-modules"//[]|.[]|select(type=="object" and ._if.arch == "javascript")|._then[]' $json_cabal_file)"
527527
''}
528528
${pkgs.lib.optionalString pkgs.stdenv.targetPlatform.isWindows ''
529-
exposed_modules+=" $(jq -r '.library."exposed-modules"//[]|.[]|select(type=="object" and .if.os == "windows")|.then[]' $json_cabal_file)"
529+
exposed_modules+=" $(jq -r '.components.lib."exposed-modules"//[]|.[]|select(type=="object" and ._if.os == "windows")|._then[]' $json_cabal_file)"
530530
''}
531531
${pkgs.lib.optionalString (!pkgs.stdenv.targetPlatform.isWindows) ''
532-
exposed_modules+=" $(jq -r '.library."exposed-modules"//[]|.[]|select(type=="object" and .if.not.os == "windows")|.then[]' $json_cabal_file)"
532+
exposed_modules+=" $(jq -r '.components.lib."exposed-modules"//[]|.[]|select(type=="object" and ._if.not.os == "windows")|._then[]' $json_cabal_file)"
533533
''}
534534
535535
EXPOSED_MODULES_${varname name}="$(tr '\n' ' ' <<< "$exposed_modules $reexported_modules")"
536-
DEPS_${varname name}="$(jq -r '.library."build-depends"[]|select(type=="array")[],select(type=="object" and .if.not.flag != "vendor-filepath").then[]' $json_cabal_file | sed 's/^\([A-Za-z0-9-]*\).*$/\1/g' | sort -u | tr '\n' ' ')"
536+
deps="$(jq -r '.components.lib."build-depends"[]|select(.package)|.package' $json_cabal_file)"
537+
deps+=" $(jq -r '.components.lib."build-depends"[]|select((.if.flag or ._if.not.flag) and ._if.not.flag != "vendor-filepath")._then[]|.package' $json_cabal_file)"
538+
${pkgs.lib.optionalString pkgs.stdenv.targetPlatform.isWindows ''
539+
deps+=" $(jq -r '.components.lib."build-depends"[]|select(._if.os == "windows")|._then[]|.package' $json_cabal_file)"
540+
''}
541+
${pkgs.lib.optionalString (!pkgs.stdenv.targetPlatform.isWindows) ''
542+
deps+=" $(jq -r '.components.lib."build-depends"[]|select(._if.not.os == "windows")|._then[]|.package' $json_cabal_file)"
543+
''}
544+
DEPS_${varname name}="$(tr '\n' ' ' <<< "$deps")"
537545
VER_${varname name}="$(jq -r '.version' $json_cabal_file)"
538546
PKGS+=" ${name}"
539547
LAST_PKG="${name}"

0 commit comments

Comments
 (0)