From 2a1574165691495d21b3f243f50e1b655b361d9b Mon Sep 17 00:00:00 2001 From: Oleg Grigoriev Date: Wed, 20 Dec 2023 22:52:27 +0300 Subject: [PATCH] fix(rake-fast): make `.rake_tasks` write atomic (#12108) --- plugins/rake-fast/rake-fast.plugin.zsh | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/plugins/rake-fast/rake-fast.plugin.zsh b/plugins/rake-fast/rake-fast.plugin.zsh index 86e5ed586..082f02f29 100644 --- a/plugins/rake-fast/rake-fast.plugin.zsh +++ b/plugins/rake-fast/rake-fast.plugin.zsh @@ -43,14 +43,17 @@ _tasks_changed () { } _rake_generate () { - echo "version:$_rake_tasks_version" > .rake_tasks - - rake --silent --tasks --all \ + local rake_tasks_content="version:$_rake_tasks_version\n" + rake_tasks_content+=$(rake --silent --tasks --all \ | sed "s/^rake //" | sed "s/\:/\\\:/g" \ | sed "s/\[[^]]*\]//g" \ | sed "s/ *# /\:/" \ - | sed "s/\:$//" \ - >> .rake_tasks + | sed "s/\:$//") + + local rake_tasks_file="$(mktemp -t .rake_tasks.XXXXXX)" + echo $rake_tasks_content > $rake_tasks_file + + mv $rake_tasks_file .rake_tasks } _rake () {