#! /usr/bin/env bash # shellcheck disable=SC2034,SC1090 # SC2034 variables appear unsued. export if used externally # - uneeded, as this checked whether script is sourced # SC1090 Can't follow non-constant source # Helper function is_sourced() { if [ -n "$ZSH_VERSION" ]; then case $ZSH_EVAL_CONTEXT in *:file:*) return 0;; esac else # Add additional POSIX-compatible shell names here, if needed. case ${0##*/} in dash|-dash|bash|-bash|ksh|-ksh|sh|-sh) return 0;; esac fi return 1; # NOT sourced. } BASE_0=${BASE_0:-$0} BASE_SHELL=$(basename "$SHELL") if [[ "$1" == "--force" ]]; then [[ -e ~/.local/bin/fzf ]] && rm ~/.local/bin/fzf [[ -e ~/.local/share/lib/fzf ]] && rm -fR ~/.local/share/lib/fzf unset fzf fi if [[ -z "$(type -t fzf)" || ! -e "$(type -p fzf)" ]]; then curl -sS https://webi.sh/fzf | bash >&2 # shellcheck disable=SC2016 # $ inside single quotes is intentional printf '%s\n' \ 'Run the following and then try again:' \ ' exec $SHELL -l' \ '' >&2 elif is_sourced; then FZF_CTRL_T_COMMAND="command find -L . -xdev -mindepth 1 \\( \ -path '*/\\.*' \ -xdev \ -o -fstype 'sysfs' -o -fstype 'devfs' -o -fstype 'devtmpfs' -o -fstype 'proc' \ \\) -prune \ -o -type f -print \ -o -type d -print \ -o -type l -print 2> /dev/null | cut -b3- \ " # shellcheck disable=SC2034 # variable appears unsued. export if used externally # - uneeded, as script is sourced FZF_ALT_C_COMMAND="command find -L . -xdev -mindepth 1 \\( \ -path '*/\\.*' \ -xdev \ -o -fstype 'sysfs' -o -fstype 'devfs' -o -fstype 'devtmpfs' -o -fstype 'proc' \ \\) -prune \ -o -type d -print 2> /dev/null | cut -b3- \ " SRCPATH="$HOME/.local/share/lib/fzf" mkdir -p "$SRCPATH" source_code_from() { local SRCCODE="$SRCPATH/${1}" [[ -r "$SRCCODE" ]] \ || curl -sSLo "$SRCCODE" \ "https://raw.githubusercontent.com/junegunn/fzf/master/shell/${1}" \ && cat "$SRCCODE" } . <( source_code_from key-bindings.bash ) . <( source_code_from completion.bash ) unset SRCPATH elif [[ "$1" == '-' ]]; then cat "${BASH_SOURCE[0]}" else SCRIPT_NAME="$BASE_0" printf '%s\n' \ "It seems $SCRIPT_NAME was invoked as a script. It should be sourced instead." \ 'The easiest way is to call it like this:' \ " $ . <( $SCRIPT_NAME - ) # Note the '-' after the script's name" \ '' fi