diff options
| author | Oleg Grigoriev <mehanoid.ru@gmail.com> | 2023-12-20 22:52:27 +0300 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-12-20 20:52:27 +0100 |
| commit | 2a1574165691495d21b3f243f50e1b655b361d9b (patch) | |
| tree | caea35049aa08d24c477b7a27f904d888b785467 /plugins/rake-fast | |
| parent | 0bb00eddbbc25564b5329899fcdfcd28153da720 (diff) | |
| download | zsh-2a1574165691495d21b3f243f50e1b655b361d9b.tar.gz zsh-2a1574165691495d21b3f243f50e1b655b361d9b.tar.bz2 zsh-2a1574165691495d21b3f243f50e1b655b361d9b.zip | |
fix(rake-fast): make `.rake_tasks` write atomic (#12108)
Diffstat (limited to 'plugins/rake-fast')
| -rw-r--r-- | plugins/rake-fast/rake-fast.plugin.zsh | 13 |
1 files 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 () { |
