summary refs log tree commit diff
path: root/maintainers/scripts/haskell
diff options
context:
space:
mode:
authorsternenseemann <sternenseemann@systemli.org>2022-03-20 11:08:20 +0100
committersternenseemann <sternenseemann@systemli.org>2022-03-20 11:09:58 +0100
commit57b1c86e746152c7ec0a9660b0eb9a4d18a486f9 (patch)
tree6cbebee8f2d38fb74c2c063639b99643ad9c1295 /maintainers/scripts/haskell
parentcd0ddefb4382e26c8f8f7bd0acd2c18b2fae94c3 (diff)
maintainers/haskell/update-stackage.sh: always mktemp for tmp files
In theory, another program would be free to create "$tmpfile.new".
Diffstat (limited to 'maintainers/scripts/haskell')
-rwxr-xr-xmaintainers/scripts/haskell/update-stackage.sh13
1 files changed, 8 insertions, 5 deletions
diff --git a/maintainers/scripts/haskell/update-stackage.sh b/maintainers/scripts/haskell/update-stackage.sh
index 0c41b4eec58ed..e6980333f8ec9 100755
--- a/maintainers/scripts/haskell/update-stackage.sh
+++ b/maintainers/scripts/haskell/update-stackage.sh
@@ -7,18 +7,21 @@ set -eu -o pipefail
 # Stackage solver to use, LTS or Nightly
 # (should be capitalized like the display name)
 SOLVER=Nightly
+TMP_TEMPLATE=update-stackage.XXXXXXX
 readonly SOLVER
+readonly TMP_TEMPLATE
 
 toLower() {
     printf "%s" "$1" | tr '[:upper:]' '[:lower:]'
 }
 
-tmpfile=$(mktemp "update-stackage.XXXXXXX")
+tmpfile=$(mktemp "$TMP_TEMPLATE")
+tmpfile_new=$(mktemp "$TMP_TEMPLATE")
 
 stackage_config="pkgs/development/haskell-modules/configuration-hackage2nix/stackage.yaml"
 
-trap 'rm "${tmpfile}" "${tmpfile}.new"' 0
-touch "$tmpfile" "$tmpfile.new" # Creating files here so that trap creates no errors.
+trap 'rm "${tmpfile}" "${tmpfile_new}"' 0
+touch "$tmpfile" "$tmpfile_new" # Creating files here so that trap creates no errors.
 
 curl -L -s "https://stackage.org/$(toLower "$SOLVER")/cabal.config" >"$tmpfile"
 old_version=$(grep '^# Stackage' $stackage_config | sed -e 's/.\+ \([A-Za-z]\+ [0-9.-]\+\)$/\1/g')
@@ -39,7 +42,7 @@ sed -r \
     -e 's|,$||' \
     -e '/installed$/d' \
     -e '/^$/d' \
-    < "${tmpfile}" | sort --ignore-case >"${tmpfile}.new"
+    < "${tmpfile}" | sort --ignore-case >"${tmpfile_new}"
 
 cat > $stackage_config << EOF
 # Stackage $version
@@ -55,7 +58,7 @@ sed -r \
     -e '/ jailbreak-cabal /d' \
     -e '/ language-nix /d' \
     -e '/ cabal-install /d' \
-    < "${tmpfile}.new" >> $stackage_config
+    < "${tmpfile_new}" >> $stackage_config
 
 if [[ "${1:-}" == "--do-commit" ]]; then
 git add $stackage_config