Skip to content
This repository was archived by the owner on Nov 6, 2025. It is now read-only.

Commit 3f23dca

Browse files
committed
Require user to initiate rake task menu
Running rake -T takes time and can potentially run malicious code. Let's require the user intervention for this to happen.
1 parent 81b1995 commit 3f23dca

1 file changed

Lines changed: 10 additions & 6 deletions

File tree

plugin/rails.vim

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -261,12 +261,16 @@ function! s:menuBufEnter()
261261
silent! exe 'aunmenu '.menu.'.Rake\ tasks'
262262
silent! exe 'aunmenu '.menu.'.Generate'
263263
silent! exe 'aunmenu '.menu.'.Destroy'
264-
let i = 0
265-
while i < len(rails#app().rake_tasks())
266-
let task = rails#app().rake_tasks()[i]
267-
exe s:menucmd(300).g:rails_installed_menu.'.Rake\ &tasks\ :Rake.'.s:sub(task,':',':.').' :Rake '.task.'<CR>'
268-
let i += 1
269-
endwhile
264+
if rails#app().cache.needs('rake_tasks') || empty(rails#app().rake_tasks())
265+
exe substitute(s:menucmd(300),'<script>','<script> <silent>','').g:rails_installed_menu.'.Rake\ &tasks\ :Rake.Fill\ this\ menu :call rails#app().rake_tasks()<Bar>call <SID>menuBufEnter()<CR>'
266+
else
267+
let i = 0
268+
while i < len(rails#app().rake_tasks())
269+
let task = rails#app().rake_tasks()[i]
270+
exe s:menucmd(300).g:rails_installed_menu.'.Rake\ &tasks\ :Rake.'.s:sub(task,':',':.').' :Rake '.task.'<CR>'
271+
let i += 1
272+
endwhile
273+
endif
270274
let i = 0
271275
let menucmd = substitute(s:menucmd(400),'<script>','<script> <silent>','').g:rails_installed_menu
272276
while i < len(rails#app().generators())

0 commit comments

Comments
 (0)