diff options
author | Marc Cornellà <marc.cornella@live.com> | 2016-08-29 10:05:17 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2016-08-29 10:05:17 +0200 |
commit | 3c8a33364f64975970839eeded921c3ed85ad507 (patch) | |
tree | ef473a0d466647ab75daf1fe6f1599fcc91bb524 /plugins/rake-fast/rake-fast.plugin.zsh | |
parent | 2ab67382e7b6892a745f02ec4c8f84e6ac632204 (diff) | |
parent | abf73bb626cbe645e23f205583631330c9fbabd4 (diff) | |
download | zsh-3c8a33364f64975970839eeded921c3ed85ad507.tar.gz zsh-3c8a33364f64975970839eeded921c3ed85ad507.tar.bz2 zsh-3c8a33364f64975970839eeded921c3ed85ad507.zip |
Merge pull request #5343 from mcornella/rake-fast-plugin-refactor
Repost of #5319 and refactor of rake-fast plugin
Diffstat (limited to 'plugins/rake-fast/rake-fast.plugin.zsh')
-rw-r--r-- | plugins/rake-fast/rake-fast.plugin.zsh | 42 |
1 files changed, 22 insertions, 20 deletions
diff --git a/plugins/rake-fast/rake-fast.plugin.zsh b/plugins/rake-fast/rake-fast.plugin.zsh index 57d699abc..ca80d86e1 100644 --- a/plugins/rake-fast/rake-fast.plugin.zsh +++ b/plugins/rake-fast/rake-fast.plugin.zsh @@ -1,26 +1,22 @@ -_rake_refresh () { - if [ -f .rake_tasks ]; then - rm .rake_tasks - fi - echo "Generating .rake_tasks..." > /dev/stderr - _rake_generate - cat .rake_tasks -} - _rake_does_task_list_need_generating () { - [[ ! -f .rake_tasks ]] || [[ Rakefile -nt .rake_tasks ]] || (_is_rails_app && _tasks_changed) + [[ ! -f .rake_tasks ]] || [[ Rakefile -nt .rake_tasks ]] || { _is_rails_app && _tasks_changed } } _is_rails_app () { - [[ -e "bin/rails" ]] || [ -e "script/rails" ] + [[ -e "bin/rails" ]] || [[ -e "script/rails" ]] } _tasks_changed () { - local is_changed=1 - for file in lib/tasks/**/*.rake; do - if [[ $file -nt .rake_tasks ]]; then is_changed=0; fi + local -a files + files=(lib/tasks lib/tasks/**/*(N)) + + for file in $files; do + if [[ "$file" -nt .rake_tasks ]]; then + return 0 + fi done - return is_changed + + return 1 } _rake_generate () { @@ -28,14 +24,20 @@ _rake_generate () { } _rake () { - if [ -f Rakefile ]; then + if [[ -f Rakefile ]]; then if _rake_does_task_list_need_generating; then - echo "\nGenerating .rake_tasks..." > /dev/stderr + echo "\nGenerating .rake_tasks..." >&2 _rake_generate fi - compadd `cat .rake_tasks` + compadd $(cat .rake_tasks) fi } - compdef _rake rake -alias rake_refresh='_rake_refresh' + +rake_refresh () { + [[ -f .rake_tasks ]] && rm -f .rake_tasks + + echo "Generating .rake_tasks..." >&2 + _rake_generate + cat .rake_tasks +} |