|
|
|
@ -1,4 +1,4 @@ |
|
|
|
func! vundle#installer#install(bang, ...) |
|
|
|
func! vundle#installer#install(bang, ...) abort |
|
|
|
if !isdirectory(g:bundle_dir) | call mkdir(g:bundle_dir, 'p') | endif |
|
|
|
let bundles = (a:1 == '') ? |
|
|
|
\ s:reload_bundles() : |
|
|
|
@ -11,19 +11,19 @@ func! vundle#installer#install(bang, ...) |
|
|
|
call s:log("Installed bundles:\n".join((empty(installed) ? ['no new bundless installed'] : map(installed, 'v:val.name')),"\n")) |
|
|
|
|
|
|
|
let help_dirs = vundle#installer#helptags(bundles) |
|
|
|
if !empty(help_dirs) |
|
|
|
call s:log('Helptags: done. '.len(help_dirs).' bundles processed') |
|
|
|
endif |
|
|
|
endf |
|
|
|
|
|
|
|
func! vundle#installer#helptags(bundles) |
|
|
|
func! vundle#installer#helptags(bundles) abort |
|
|
|
let bundle_dirs = map(copy(a:bundles),'v:val.rtpath()') |
|
|
|
let help_dirs = filter(bundle_dirs, 's:has_doc(v:val)') |
|
|
|
call map(copy(help_dirs), 's:helptags(v:val)') |
|
|
|
if !empty(help_dirs) |
|
|
|
call s:log('Helptags: done. '.len(help_dirs).' bundles processed') |
|
|
|
endif |
|
|
|
return help_dirs |
|
|
|
endf |
|
|
|
|
|
|
|
func! vundle#installer#clean(bang) |
|
|
|
func! vundle#installer#clean(bang) abort |
|
|
|
let bundle_dirs = map(copy(g:bundles), 'v:val.path()') |
|
|
|
let all_dirs = split(globpath(g:bundle_dir, '*'), "\n") |
|
|
|
let x_dirs = filter(all_dirs, '0 > index(bundle_dirs, v:val)') |
|
|
|
@ -46,29 +46,29 @@ func! s:reload_bundles() |
|
|
|
return g:bundles |
|
|
|
endf |
|
|
|
|
|
|
|
func! s:has_doc(rtp) |
|
|
|
func! s:has_doc(rtp) abort |
|
|
|
return isdirectory(a:rtp.'/doc') |
|
|
|
\ && (!filereadable(a:rtp.'/doc/tags') || filewritable(a:rtp.'/doc/tags')) |
|
|
|
\ && !(empty(glob(a:rtp.'/doc/*.txt')) && empty(glob(a:rtp.'/doc/*.??x'))) |
|
|
|
endf |
|
|
|
|
|
|
|
func! s:helptags(rtp) |
|
|
|
func! s:helptags(rtp) abort |
|
|
|
helptags `=a:rtp.'/doc'` |
|
|
|
endf |
|
|
|
|
|
|
|
func! s:sync(bang, bundle) abort |
|
|
|
let git_dir = a:bundle.path().'/.git' |
|
|
|
let git_dir = shellescape(expand(a:bundle.path().'/.git')) |
|
|
|
if isdirectory(git_dir) |
|
|
|
if !(a:bang) | return 0 | endif |
|
|
|
let cmd = 'cd '.a:bundle.path().' && git pull' |
|
|
|
let cmd = 'cd '.shellescape(a:bundle.path()).' && git pull' |
|
|
|
else |
|
|
|
let cmd = 'git clone '.a:bundle.uri.' '.a:bundle.path() |
|
|
|
let cmd = 'git clone '.a:bundle.uri.' '.shellescape(a:bundle.path()) |
|
|
|
endif |
|
|
|
silent exec '!'.cmd |
|
|
|
return 1 |
|
|
|
endf |
|
|
|
|
|
|
|
func! s:install(bang, bundles) |
|
|
|
func! s:install(bang, bundles) abort |
|
|
|
return filter(copy(a:bundles), 's:sync(a:bang, v:val)') |
|
|
|
endf |
|
|
|
|
|
|
|
|