Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Menu
Open sidebar
adam.huang
Oh My Zsh
Commits
bb6ae70b
Unverified
Commit
bb6ae70b
authored
Oct 01, 2019
by
Marc Cornellà
Committed by
GitHub
Oct 01, 2019
Browse files
fzf: add support for debian packages (#8001)
parents
51f0eaad
0565251c
Changes
1
Hide whitespace changes
Inline
Side-by-side
plugins/fzf/fzf.plugin.zsh
View file @
bb6ae70b
test
-d
"
${
FZF_BASE
}
"
&&
fzf_base
=
"
${
FZF_BASE
}
"
if
[[
-z
"
${
fzf_base
}
"
]]
;
then
fzfdirs
=(
"
${
HOME
}
/.fzf"
"/usr/local/opt/fzf"
"/usr/share/fzf"
)
for
dir
in
${
fzfdirs
}
;
do
if
[[
-d
"
${
dir
}
"
]]
;
then
fzf_base
=
"
${
dir
}
"
break
fi
done
if
[[
-z
"
${
fzf_base
}
"
]]
;
then
if
((
${
+commands[brew]
}
))
&&
dir
=
"
$(
brew
--prefix
fzf 2>/dev/null
)
"
;
then
if
[[
-d
"
${
dir
}
"
]]
;
then
fzf_base
=
"
${
dir
}
"
fi
fi
fi
fi
if
[[
-n
"
${
fzf_base
}
"
]]
;
then
# Fix fzf shell directory for Archlinux package
if
[[
!
-d
"
${
fzf_base
}
/shell"
]]
&&
[[
-f
/etc/arch-release
]]
;
then
fzf_shell
=
"
${
fzf_base
}
"
else
fzf_shell
=
"
${
fzf_base
}
/shell"
fi
# Setup fzf
# ---------
if
!
((
${
+commands[fzf]
}
))
&&
[[
!
"
$PATH
"
==
*
$fzf_base
/bin
*
]]
;
then
export
PATH
=
"
$PATH
:
$fzf_base
/bin"
fi
# Auto-completion
# ---------------
if
[[
!
"
$DISABLE_FZF_AUTO_COMPLETION
"
==
"true"
]]
;
then
[[
$-
==
*
i
*
]]
&&
source
"
${
fzf_shell
}
/completion.zsh"
2> /dev/null
fi
# Key bindings
# ------------
if
[[
!
"
$DISABLE_FZF_KEY_BINDINGS
"
==
"true"
]]
;
then
source
"
${
fzf_shell
}
/key-bindings.zsh"
fi
else
print
"[oh-my-zsh] fzf plugin: Cannot find fzf installation directory.
\n
"
\
"Please add
\`
export FZF_BASE=/path/to/fzf/install/dir
\`
to your .zshrc"
>
&2
fi
unset
fzf_base fzf_shell
dir
fzfdirs
function
setup_using_base_dir
()
{
# Declare all variables local not no mess with outside env in any way
local
fzf_base
local
fzf_shell
local
fzfdirs
local dir
test
-d
"
${
FZF_BASE
}
"
&&
fzf_base
=
"
${
FZF_BASE
}
"
if
[[
-z
"
${
fzf_base
}
"
]]
;
then
fzfdirs
=(
"
${
HOME
}
/.fzf"
"/usr/local/opt/fzf"
"/usr/share/fzf"
)
for
dir
in
${
fzfdirs
}
;
do
if
[[
-d
"
${
dir
}
"
]]
;
then
fzf_base
=
"
${
dir
}
"
break
fi
done
if
[[
-z
"
${
fzf_base
}
"
]]
;
then
if
((
${
+commands[brew]
}
))
&&
dir
=
"
$(
brew
--prefix
fzf 2>/dev/null
)
"
;
then
if
[[
-d
"
${
dir
}
"
]]
;
then
fzf_base
=
"
${
dir
}
"
fi
fi
fi
fi
if
[[
-d
"
${
fzf_base
}
"
]]
;
then
# Fix fzf shell directory for Archlinux package
if
[[
!
-d
"
${
fzf_base
}
/shell"
]]
&&
[[
-f
/etc/arch-release
]]
;
then
fzf_shell
=
"
${
fzf_base
}
"
else
fzf_shell
=
"
${
fzf_base
}
/shell"
fi
# Setup fzf binary path
if
!
((
${
+commands[fzf]
}
))
&&
[[
!
"
$PATH
"
==
*
$fzf_base
/bin
*
]]
;
then
export
PATH
=
"
$PATH
:
$fzf_base
/bin"
fi
# Auto-completion
if
[[
!
"
$DISABLE_FZF_AUTO_COMPLETION
"
==
"true"
]]
;
then
[[
$-
==
*
i
*
]]
&&
source
"
${
fzf_shell
}
/completion.zsh"
2> /dev/null
fi
# Key bindings
if
[[
!
"
$DISABLE_FZF_KEY_BINDINGS
"
==
"true"
]]
;
then
source
"
${
fzf_shell
}
/key-bindings.zsh"
fi
else
return
1
fi
}
function
setup_using_debian_package
()
{
dpkg
-s
fzf &> /dev/null
if
((
$?
))
;
then
# Either not a debian based distro, or no fzf installed. In any case skip ahead
return
1
fi
# NOTE: There is no need to configure PATH for debian package, all binaries
# are installed to /usr/bin by default
local
completions
=
"/usr/share/zsh/vendor-completions/_fzf"
local
key_bindings
=
"/usr/share/doc/fzf/examples/key-bindings.zsh"
# Auto-completion
if
[[
$-
==
*
i
*
]]
&&
[[
!
"
$DISABLE_FZF_AUTO_COMPLETION
"
==
"true"
]]
;
then
source
$completions
2> /dev/null
fi
# Key bindings
if
[[
!
"
$DISABLE_FZF_KEY_BINDINGS
"
==
"true"
]]
;
then
source
$key_bindings
fi
return
0
}
function
indicate_error
()
{
print
"[oh-my-zsh] fzf plugin: Cannot find fzf installation directory.
\n
"
\
"Please add
\`
export FZF_BASE=/path/to/fzf/install/dir
\`
to your .zshrc"
>
&2
}
# Check for debian package first, because it easy to short cut
# Indicate to user that fzf installation not found if nothing worked
setup_using_debian_package
||
setup_using_base_dir
||
indicate_error
unset
-f
setup_using_debian_package setup_using_base_dir indicate_error
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment