about summary refs log tree commit diff
path: root/maintainers/scripts/haskell
diff options
context:
space:
mode:
authormaralorn <mail@maralorn.de>2023-05-01 02:36:37 +0200
committermaralorn <mail@maralorn.de>2023-05-01 02:36:37 +0200
commit05e9a22322e6570a6650d1bf0e135d727780e206 (patch)
treef1994ac7ed26ef72bb4017c5faeaee93bafde124 /maintainers/scripts/haskell
parent1737266d2b983646be29e186d940b032166f6223 (diff)
maintainers/scripts/haskell/regenerate-transitive-broken-packages.sh: Make more robust against eval errors
Diffstat (limited to 'maintainers/scripts/haskell')
-rwxr-xr-xmaintainers/scripts/haskell/regenerate-transitive-broken-packages.sh15
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