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 () {