diff options
Diffstat (limited to 'maintainers/scripts/haskell/regenerate-transitive-broken-packages.sh')
-rwxr-xr-x | maintainers/scripts/haskell/regenerate-transitive-broken-packages.sh | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/maintainers/scripts/haskell/regenerate-transitive-broken-packages.sh b/maintainers/scripts/haskell/regenerate-transitive-broken-packages.sh index 94104e00edb81..a317dba4d4e77 100755 --- a/maintainers/scripts/haskell/regenerate-transitive-broken-packages.sh +++ b/maintainers/scripts/haskell/regenerate-transitive-broken-packages.sh @@ -1,9 +1,18 @@ #! /usr/bin/env nix-shell -#! nix-shell -i bash -p coreutils nix gnused -I nixpkgs=. +#! nix-shell -i bash -p coreutils jq nix -I nixpkgs=. + +set -euo pipefail + +TMP_TEMPLATE=transitive-broken.XXXXXXX +readonly TMP_TEMPLATE + +tmpfile=$(mktemp "$TMP_TEMPLATE") + +trap 'rm -f "${tmpfile}"' 0 config_file=pkgs/development/haskell-modules/configuration-hackage2nix/transitive-broken.yaml -cat > $config_file << EOF +cat > $tmpfile << EOF # This file is automatically generated by # maintainers/scripts/haskell/regenerate-transitive-broken-packages.sh # It is supposed to list all haskellPackages that cannot evaluate because they @@ -11,5 +20,6 @@ cat > $config_file << EOF dont-distribute-packages: EOF -echo "Regenerating list of transitive broken packages ..." -echo -e $(nix-instantiate --eval --strict maintainers/scripts/haskell/transitive-broken-packages.nix) | sed 's/\"//' | LC_ALL=C.UTF-8 sort -i >> $config_file +nix-instantiate --eval --option restrict-eval true -I . --strict --json maintainers/scripts/haskell/transitive-broken-packages.nix | jq -r . | LC_ALL=C.UTF-8 sort -i >> $tmpfile + +mv $tmpfile $config_file |