@@ -151,7 +151,7 @@ in let
151
151
let
152
152
suitable-index-states =
153
153
builtins . filter
154
- ( s : s >= index-state-max ) # This compare is why we need zulu time
154
+ ( s : s > index-state-max ) # This compare is why we need zulu time
155
155
( builtins . attrNames index-state-hashes ) ;
156
156
in
157
157
if builtins . length suitable-index-states == 0
@@ -518,22 +518,30 @@ let
518
518
json_cabal_file=$(mktemp)
519
519
cabal2json $fixed_cabal_file > $json_cabal_file
520
520
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')"
523
523
524
524
# FIXME This is a bandaid. Rather than doing this, conditionals should be interpreted.
525
525
${ 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)"
527
527
'' }
528
528
${ 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)"
530
530
'' }
531
531
${ 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)"
533
533
'' }
534
534
535
535
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")"
537
545
VER_${ varname name } ="$(jq -r '.version' $json_cabal_file)"
538
546
PKGS+=" ${ name } "
539
547
LAST_PKG="${ name } "
0 commit comments