2a1574165691495d21b3f243f50e1b655b361d9b

Author
Oleg Grigoriev <mehanoid.ru@gmail.com>
Committer
GitHub <noreply@github.com>
Date

Message

fix(rake-fast): make `.rake_tasks` write atomic (#12108)

Diff

 1diff --git a/plugins/rake-fast/rake-fast.plugin.zsh b/plugins/rake-fast/rake-fast.plugin.zsh
 2index 86e5ed58603cbf045faa4526f021cbe902ba8f3b..082f02f29c97ed9aecda2c5bf45aa27c145775fe 100644
 3--- a/plugins/rake-fast/rake-fast.plugin.zsh
 4+++ b/plugins/rake-fast/rake-fast.plugin.zsh
 5@@ -43,14 +43,17 @@ _tasks_changed () {
 6 }
 7 
 8 _rake_generate () {
 9-  echo "version:$_rake_tasks_version" > .rake_tasks
10-
11-  rake --silent --tasks --all \
12+  local rake_tasks_content="version:$_rake_tasks_version\n"
13+  rake_tasks_content+=$(rake --silent --tasks --all \
14     | sed "s/^rake //" | sed "s/\:/\\\:/g" \
15     | sed "s/\[[^]]*\]//g" \
16     | sed "s/ *# /\:/" \
17-    | sed "s/\:$//" \
18-    >> .rake_tasks
19+    | sed "s/\:$//")
20+
21+  local rake_tasks_file="$(mktemp -t .rake_tasks.XXXXXX)"
22+  echo $rake_tasks_content > $rake_tasks_file
23+
24+  mv $rake_tasks_file .rake_tasks
25 }
26 
27 _rake () {