diff options
author | maralorn <mail@maralorn.de> | 2023-05-01 02:36:37 +0200 |
---|---|---|
committer | maralorn <mail@maralorn.de> | 2023-05-01 02:36:37 +0200 |
commit | 05e9a22322e6570a6650d1bf0e135d727780e206 (patch) | |
tree | f1994ac7ed26ef72bb4017c5faeaee93bafde124 /maintainers/scripts/haskell | |
parent | 1737266d2b983646be29e186d940b032166f6223 (diff) |
maintainers/scripts/haskell/regenerate-transitive-broken-packages.sh: Make more robust against eval errors
Diffstat (limited to 'maintainers/scripts/haskell')
-rwxr-xr-x | maintainers/scripts/haskell/regenerate-transitive-broken-packages.sh | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/maintainers/scripts/haskell/regenerate-transitive-broken-packages.sh b/maintainers/scripts/haskell/regenerate-transitive-broken-packages.sh index 5a17b05183571..df9e6918ac565 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 jq nix -I nixpkgs=. +set -euo pipefail + +TMP_TEMPLATE=transitive-broken.XXXXXXX +readonly TMP_TEMPLATE + +tmpfile=$(mktemp "$TMP_TEMPLATE") + +trap 'rm "${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,4 +20,6 @@ cat > $config_file << EOF dont-distribute-packages: EOF -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 >> $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 |