Remove zcurses build-dir selector
This commit is contained in:
parent
f7bca0102a
commit
96a1272506
@ -87,7 +87,6 @@ EOF
|
|||||||
elif [[ ${#local_build_dirs} -eq 1 ]]; then
|
elif [[ ${#local_build_dirs} -eq 1 ]]; then
|
||||||
local_build_dir=${local_build_dirs[1]}
|
local_build_dir=${local_build_dirs[1]}
|
||||||
elif [[ ${#local_build_dirs} -gt 1 ]]; then
|
elif [[ ${#local_build_dirs} -gt 1 ]]; then
|
||||||
if command -v fzf &> /dev/null; then
|
|
||||||
# Use fzf to select a build directory
|
# Use fzf to select a build directory
|
||||||
local max=$(( $( tput lines ) / 2 ))
|
local max=$(( $( tput lines ) / 2 ))
|
||||||
local best=$(( ${#local_build_dirs} + 4 ))
|
local best=$(( ${#local_build_dirs} + 4 ))
|
||||||
@ -99,69 +98,6 @@ EOF
|
|||||||
if [[ $? -ne 0 ]]; then
|
if [[ $? -ne 0 ]]; then
|
||||||
return 1
|
return 1
|
||||||
fi
|
fi
|
||||||
else
|
|
||||||
# Fallback to zcurses selector when fzf is not available
|
|
||||||
zmodload zsh/curses && {
|
|
||||||
# Get the size of the terminal
|
|
||||||
local size=`stty size`
|
|
||||||
integer height=${size% *}
|
|
||||||
integer width=${size#* }
|
|
||||||
|
|
||||||
# Create the window and hide the cursor
|
|
||||||
zcurses init
|
|
||||||
zcurses addwin build-dir $height $width 0 0
|
|
||||||
|
|
||||||
# Hide the cursor for zcurses, trap SIGINT to ensure cleanup in
|
|
||||||
# always-list occurs below
|
|
||||||
tput civis; trap 'return 130' INT
|
|
||||||
|
|
||||||
# Enter display loop
|
|
||||||
local key keypad
|
|
||||||
while (( 1 )); do
|
|
||||||
zcurses clear build-dir
|
|
||||||
|
|
||||||
# Add the prompt text
|
|
||||||
zcurses move build-dir 1 1
|
|
||||||
zcurses string build-dir 'Select a build directory:'
|
|
||||||
|
|
||||||
# Add the selections text
|
|
||||||
for (( i = 0; i < ${#local_build_dirs}; i++ )); do
|
|
||||||
integer line=$i+3
|
|
||||||
zcurses move build-dir $line 1
|
|
||||||
[[ $index -eq $i ]] &&
|
|
||||||
zcurses string build-dir "* " ||
|
|
||||||
zcurses string build-dir " "
|
|
||||||
zcurses string build-dir ${local_build_dirs[$i+1]}
|
|
||||||
done
|
|
||||||
|
|
||||||
# Display the text the and wait for input
|
|
||||||
zcurses refresh build-dir
|
|
||||||
zcurses input build-dir key keypad
|
|
||||||
|
|
||||||
# Handle user input
|
|
||||||
case $key in
|
|
||||||
(UP|k|$'\C-P')
|
|
||||||
[[ $index -gt 0 ]] && index=$index-1 ;;
|
|
||||||
(DOWN|j|$'\C-N')
|
|
||||||
[[ $index -lt ${#local_build_dirs}-1 ]] && index=$index+1 ;;
|
|
||||||
(ENTER|$'\n')
|
|
||||||
break ;;
|
|
||||||
esac
|
|
||||||
done
|
|
||||||
} always {
|
|
||||||
# Restore the cursor and cleanup zcurses
|
|
||||||
tput cvvis; tput cnorm
|
|
||||||
zcurses delwin build-dir
|
|
||||||
zcurses end
|
|
||||||
}
|
|
||||||
|
|
||||||
# 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
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user