Refactoring
- Remove dead code - Extract method
This commit is contained in:
parent
b36fd34da0
commit
25afdf138c
1 changed files with 18 additions and 19 deletions
37
plug.vim
37
plug.vim
|
@ -73,7 +73,7 @@ let s:plug_buf = -1
|
||||||
let s:mac_gui = has('gui_macvim') && has('gui_running')
|
let s:mac_gui = has('gui_macvim') && has('gui_running')
|
||||||
let s:is_win = has('win32') || has('win64')
|
let s:is_win = has('win32') || has('win64')
|
||||||
let s:me = expand('<sfile>:p')
|
let s:me = expand('<sfile>:p')
|
||||||
let s:base_spec = { 'branch': 'master', 'frozen': 0, 'local': 0 }
|
let s:base_spec = { 'branch': 'master', 'frozen': 0 }
|
||||||
let s:TYPE = {
|
let s:TYPE = {
|
||||||
\ 'string': type(''),
|
\ 'string': type(''),
|
||||||
\ 'list': type([]),
|
\ 'list': type([]),
|
||||||
|
@ -341,7 +341,7 @@ endfunction
|
||||||
function! s:infer_properties(name, repo)
|
function! s:infer_properties(name, repo)
|
||||||
let repo = a:repo
|
let repo = a:repo
|
||||||
if s:is_local_plug(repo)
|
if s:is_local_plug(repo)
|
||||||
let properties = { 'dir': s:dirpath(expand(repo)), 'local': 1 }
|
let properties = { 'dir': s:dirpath(expand(repo)) }
|
||||||
else
|
else
|
||||||
if repo =~ ':'
|
if repo =~ ':'
|
||||||
let uri = repo
|
let uri = repo
|
||||||
|
@ -562,7 +562,6 @@ function! s:update_impl(pull, args) abort
|
||||||
if !isdirectory(g:plug_home)
|
if !isdirectory(g:plug_home)
|
||||||
call mkdir(g:plug_home, 'p')
|
call mkdir(g:plug_home, 'p')
|
||||||
endif
|
endif
|
||||||
let len = len(g:plugs)
|
|
||||||
let s:prev_update = { 'errors': [], 'pull': a:pull, 'new': {}, 'threads': threads }
|
let s:prev_update = { 'errors': [], 'pull': a:pull, 'new': {}, 'threads': threads }
|
||||||
if has('ruby') && threads > 1
|
if has('ruby') && threads > 1
|
||||||
try
|
try
|
||||||
|
@ -594,9 +593,6 @@ function! s:update_impl(pull, args) abort
|
||||||
call s:update_serial(a:pull, todo)
|
call s:update_serial(a:pull, todo)
|
||||||
endif
|
endif
|
||||||
call s:do(a:pull, filter(copy(todo), 'has_key(v:val, "do")'))
|
call s:do(a:pull, filter(copy(todo), 'has_key(v:val, "do")'))
|
||||||
if len(g:plugs) > len
|
|
||||||
call plug#end()
|
|
||||||
endif
|
|
||||||
call s:finish(a:pull)
|
call s:finish(a:pull)
|
||||||
call setline(1, 'Updated. Elapsed time: ' . split(reltimestr(reltime(st)))[0] . ' sec.')
|
call setline(1, 'Updated. Elapsed time: ' . split(reltimestr(reltime(st)))[0] . ' sec.')
|
||||||
endfunction
|
endfunction
|
||||||
|
@ -674,6 +670,20 @@ function! s:update_parallel(pull, todo, threads)
|
||||||
%["#{arg.gsub('"', '\"')}"]
|
%["#{arg.gsub('"', '\"')}"]
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def killall pid
|
||||||
|
pids = [pid]
|
||||||
|
unless `which pgrep`.empty?
|
||||||
|
children = pids
|
||||||
|
until children.empty?
|
||||||
|
children = children.map { |pid|
|
||||||
|
`pgrep -P #{pid}`.lines.map { |l| l.chomp }
|
||||||
|
}.flatten
|
||||||
|
pids += children
|
||||||
|
end
|
||||||
|
end
|
||||||
|
pids.each { |pid| Process.kill 'TERM', pid.to_i rescue nil }
|
||||||
|
end
|
||||||
|
|
||||||
require 'thread'
|
require 'thread'
|
||||||
require 'fileutils'
|
require 'fileutils'
|
||||||
require 'timeout'
|
require 'timeout'
|
||||||
|
@ -681,7 +691,7 @@ function! s:update_parallel(pull, todo, threads)
|
||||||
iswin = VIM::evaluate('s:is_win').to_i == 1
|
iswin = VIM::evaluate('s:is_win').to_i == 1
|
||||||
pull = VIM::evaluate('a:pull').to_i == 1
|
pull = VIM::evaluate('a:pull').to_i == 1
|
||||||
base = VIM::evaluate('g:plug_home')
|
base = VIM::evaluate('g:plug_home')
|
||||||
all = VIM::evaluate('copy(a:todo)')
|
all = VIM::evaluate('a:todo')
|
||||||
limit = VIM::evaluate('get(g:, "plug_timeout", 60)')
|
limit = VIM::evaluate('get(g:, "plug_timeout", 60)')
|
||||||
tries = VIM::evaluate('get(g:, "plug_retries", 2)') + 1
|
tries = VIM::evaluate('get(g:, "plug_retries", 2)') + 1
|
||||||
nthr = VIM::evaluate('a:threads').to_i
|
nthr = VIM::evaluate('a:threads').to_i
|
||||||
|
@ -756,17 +766,7 @@ function! s:update_parallel(pull, todo, threads)
|
||||||
[$? == 0, data.chomp]
|
[$? == 0, data.chomp]
|
||||||
rescue Timeout::Error, Interrupt => e
|
rescue Timeout::Error, Interrupt => e
|
||||||
if fd && !fd.closed?
|
if fd && !fd.closed?
|
||||||
pids = [fd.pid]
|
killall fd.pid
|
||||||
unless `which pgrep`.empty?
|
|
||||||
children = pids
|
|
||||||
until children.empty?
|
|
||||||
children = children.map { |pid|
|
|
||||||
`pgrep -P #{pid}`.lines.map { |l| l.chomp }
|
|
||||||
}.flatten
|
|
||||||
pids += children
|
|
||||||
end
|
|
||||||
end
|
|
||||||
pids.each { |pid| Process.kill 'TERM', pid.to_i rescue nil }
|
|
||||||
fd.close
|
fd.close
|
||||||
end
|
end
|
||||||
if e.is_a?(Timeout::Error) && tried < tries
|
if e.is_a?(Timeout::Error) && tried < tries
|
||||||
|
@ -1028,7 +1028,6 @@ endfunction
|
||||||
function! s:upgrade_specs()
|
function! s:upgrade_specs()
|
||||||
for spec in values(g:plugs)
|
for spec in values(g:plugs)
|
||||||
let spec.frozen = get(spec, 'frozen', 0)
|
let spec.frozen = get(spec, 'frozen', 0)
|
||||||
let spec.local = get(spec, 'local', 0)
|
|
||||||
endfor
|
endfor
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue