浏览代码

Merge pull request #46 from vheon/fix-multiple-create-directory

Do not try to create g:plug_home more than once
Junegunn Choi 11 年之前
父节点
当前提交
518f20652f
共有 1 个文件被更改,包括 9 次插入10 次删除
  1. 9 10
      plug.vim

+ 9 - 10
plug.vim

@@ -92,13 +92,6 @@ function! plug#begin(...)
     return s:err('Unable to determine plug home. Try calling plug#begin() with a path argument.')
   endif
 
-  if !isdirectory(home)
-    try
-      call mkdir(home, 'p')
-    catch
-      return s:err('Invalid plug directory: '. home)
-    endtry
-  endif
   if !executable('git')
     return s:err('`git` executable not found. vim-plug requires git.')
   endif
@@ -561,15 +554,21 @@ function! s:update_impl(pull, force, args) abort
     return
   endif
 
+  if !isdirectory(g:plug_home)
+    try
+      call mkdir(g:plug_home, 'p')
+    catch
+      return s:err(printf('Invalid plug directory: %s.'
+                        \ 'Try to call plug#begin with a valid directory', g:plug_home))
+    endtry
+  endif
+
   call s:prepare()
   call append(0, a:pull ? 'Updating plugins' : 'Installing plugins')
   call append(1, '['. s:lpad('', len(todo)) .']')
   normal! 2G
   redraw
 
-  if !isdirectory(g:plug_home)
-    call mkdir(g:plug_home, 'p')
-  endif
   let s:prev_update = { 'errors': [], 'pull': a:pull, 'force': a:force, 'new': {}, 'threads': threads }
   if has('ruby') && threads > 1
     try