summaryrefslogtreecommitdiff
path: root/.local/src/blesh/contrib/fzf-initialize.bash
diff options
context:
space:
mode:
Diffstat (limited to '.local/src/blesh/contrib/fzf-initialize.bash')
-rw-r--r--.local/src/blesh/contrib/fzf-initialize.bash52
1 files changed, 52 insertions, 0 deletions
diff --git a/.local/src/blesh/contrib/fzf-initialize.bash b/.local/src/blesh/contrib/fzf-initialize.bash
new file mode 100644
index 0000000..327c3fe
--- /dev/null
+++ b/.local/src/blesh/contrib/fzf-initialize.bash
@@ -0,0 +1,52 @@
+# ble/contrib/fzf-initialize.bash (C) 2020-2021, akinomyoga
+
+# Usage: Please write the following lines in blerc
+#
+# ```bash
+# _ble_contrib_fzf_base=/path/to/fzf-base-directory
+# ble-import -d contrib/fzf-initialize
+# ```
+
+function ble/contrib/fzf-completion/initialize {
+ if [[ $_ble_contrib_fzf_base ]]; then
+ if [[ :$PATH: != *:"$_ble_contrib_fzf_base/bin":* ]]; then
+ export PATH="${PATH:+${PATH}:}$_ble_contrib_fzf_base/bin"
+ fi
+ if ! type fzf &>/dev/null; then
+ echo 'ble/contrib/fzf-initialize: "fzf" not found.' >&2
+ return 1
+ fi
+ else
+ local ret
+ if ! ble/util/assign ret 'type -p fzf 2>/dev/null'; then
+ echo 'ble/contrib/fzf: "fzf" not found.' >&2
+ return 1
+ fi
+ ble/util/readlink "$ret"
+ ret=${ret%/*} # fzf, fzf-linux_amd64, etc.
+ ret=${ret%/bin} # repo/bin/
+ ret=${ret%/target} # repo/target (compile directory)
+ if [[ -s $ret/shell/key-bindings.bash ]]; then
+ _ble_contrib_fzf_base=$ret
+ elif [[ -d $ret/share/fzf/shell ]]; then
+ _ble_contrib_fzf_base=$ret/share/fzf
+ elif [[ -s $ret/share/fzf/key-bindings.bash ]]; then
+ # NixOS package (https://github.com/akinomyoga/blesh-contrib/pull/5#issuecomment-1019394821)
+ _ble_contrib_fzf_base=$ret/share/fzf
+ elif [[ -s $ret/share/doc/fzf/examples/key-bindings.bash ]]; then
+ # Ubuntu fzf package (https://github.com/akinomyoga/blesh-contrib/pull/5#issuecomment-1019394821)
+ _ble_contrib_fzf_base=$ret/share/doc/fzf/examples
+ elif [[ -d /usr/share/fzf/shell ]]; then
+ _ble_contrib_fzf_base=/usr/share/fzf
+ elif [[ -d /usr/share/doc/fzf/examples/key-bindings.bash ]]; then
+ # Ubuntu fzf package (https://github.com/akinomyoga/blesh-contrib/pull/5#issuecomment-1019394821)
+ _ble_contrib_fzf_base=/usr/share/doc/fzf/examples
+ else
+ echo 'ble/contrib/fzf: failed to find "fzf" base directory' >&2
+ return 1
+ fi
+ fi
+ return 0
+}
+
+ble/contrib/fzf-completion/initialize || return 1