Skip to content

Commit

Permalink
[vim] Use install.ps1 to download binary on Windows
Browse files Browse the repository at this point in the history
Credits to @jiangjianshan
  • Loading branch information
junegunn committed Feb 12, 2020
1 parent f39cf6d commit 9d7480a
Showing 1 changed file with 32 additions and 13 deletions.
45 changes: 32 additions & 13 deletions plugin/fzf.vim
Original file line number Diff line number Diff line change
Expand Up @@ -119,30 +119,49 @@ let s:default_layout = { 'down': '~40%' }
let s:layout_keys = ['window', 'up', 'down', 'left', 'right']
let s:fzf_go = s:base_dir.'/bin/fzf'
let s:fzf_tmux = s:base_dir.'/bin/fzf-tmux'
let s:install = s:base_dir.'/install'
let s:installed = 0

let s:cpo_save = &cpo
set cpo&vim

function! s:download_bin()
if s:installed
return 0
endif

if s:is_win && !has('win32unix')
let script = s:base_dir.'/install.ps1'
if !filereadable(script)
return 0
endif
let script = 'powershell -ExecutionPolicy Bypass -file ' . script
else
let script = s:base_dir.'/install'
if !executable(script)
return 0
endif
let script .= ' --bin'
endif

if input('fzf executable not found. Download binary? (y/n) ') !~? '^y'
return 0
end

redraw
echo
call s:warn('Downloading fzf binary. Please wait ...')
let s:installed = 1
call system(script)
return v:shell_error == 0
endfunction

function! s:fzf_exec()
if !exists('s:exec')
if executable(s:fzf_go)
let s:exec = s:fzf_go
elseif executable('fzf')
let s:exec = 'fzf'
elseif s:is_win && !has('win32unix')
call s:warn('fzf executable not found.')
call s:warn('Download fzf binary for Windows from https://github.com/junegunn/fzf-bin/releases/')
call s:warn('and place it as '.s:base_dir.'\bin\fzf.exe')
throw 'fzf executable not found'
elseif !s:installed && executable(s:install) &&
\ input('fzf executable not found. Download binary? (y/n) ') =~? '^y'
redraw
echo
call s:warn('Downloading fzf binary. Please wait ...')
let s:installed = 1
call system(s:install.' --bin')
elseif s:download_bin()
return s:fzf_exec()
else
redraw
Expand Down

0 comments on commit 9d7480a

Please sign in to comment.