Use fzf by default for build-dir selector
This commit is contained in:
parent
f50db402af
commit
0efb635f02
@ -85,6 +85,18 @@ EOF
|
||||
if [[ ${#local_build_dirs} -eq 0 ]]; then
|
||||
error "no build directories found"; return 1
|
||||
elif [[ ${#local_build_dirs} -gt 1 ]]; then
|
||||
if command -v fzf &> /dev/null; then
|
||||
# Use fzf to select a build directory
|
||||
local_build_dir=$(
|
||||
printf '%s\n' "${local_build_dir[@]}" $local_build_dirs |
|
||||
fzf --layout=reverse --info=hidden --border=rounded \
|
||||
--height=$(( ${#local_build_dirs} + 5 ))
|
||||
)
|
||||
if [[ $? -ne 0 ]]; then
|
||||
return 1
|
||||
fi
|
||||
else
|
||||
# Fallback to zcurses selector when fzf is not available
|
||||
zmodload zsh/curses && {
|
||||
# Get the size of the terminal
|
||||
local size=`stty size`
|
||||
@ -138,14 +150,16 @@ EOF
|
||||
zcurses delwin build-dir
|
||||
zcurses end
|
||||
}
|
||||
fi
|
||||
fi
|
||||
|
||||
# On success setup the build directory for use
|
||||
if [[ $? -eq 0 ]]; then
|
||||
# Set the build directory from selection if empty
|
||||
[[ -z $local_build_dir ]] && \
|
||||
local_build_dir=${local_build_dirs[$index+1]}
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
# If `build.ninja` exists in alias `ninja`, return.
|
||||
local build
|
||||
@ -176,7 +190,6 @@ EOF
|
||||
if [[ -n $do_build ]]; then
|
||||
eval build
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
# Build then run a target residing in `~build/bin`.
|
||||
|
Loading…
x
Reference in New Issue
Block a user