diff options
author | sternenseemann <sternenseemann@systemli.org> | 2022-03-20 11:08:20 +0100 |
---|---|---|
committer | sternenseemann <sternenseemann@systemli.org> | 2022-03-20 11:09:58 +0100 |
commit | 57b1c86e746152c7ec0a9660b0eb9a4d18a486f9 (patch) | |
tree | 6cbebee8f2d38fb74c2c063639b99643ad9c1295 /maintainers/scripts | |
parent | cd0ddefb4382e26c8f8f7bd0acd2c18b2fae94c3 (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')
-rwxr-xr-x | maintainers/scripts/haskell/update-stackage.sh | 13 |
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 |