Added Path choices for go command
This commit is contained in:
parent
0335ec832a
commit
78e9854453
@ -57,17 +57,64 @@ function go() {
|
||||
return $?
|
||||
fi
|
||||
|
||||
__SFT23=0
|
||||
for ((i = 0; i < ${#LOCS[@]}; i++))
|
||||
do
|
||||
LOC=${LOCS[i]}
|
||||
LOCATION=$(ls -d "$UDEV/$SITE/$LOC/"*"$ARG3"*/ 2> /dev/null )
|
||||
if [[ -n "$LOCATION" ]]; then
|
||||
NPATHS=$( echo -n "$LOCATION" | grep -c '^' )
|
||||
if [[ $NPATHS -gt 1 ]]; then
|
||||
|
||||
# shift ARG2 ARG3
|
||||
shift; shift
|
||||
__SFT23=1
|
||||
|
||||
j=1
|
||||
CHOICES=()
|
||||
__CC=$CC
|
||||
for i in ${LOCATION[@]}; do
|
||||
__dive "test -d" "$i" $@ > /dev/null
|
||||
if [[ $? -eq 0 ]]; then
|
||||
__LOC="$i"
|
||||
CHOICES+=($i)
|
||||
j=$(( j + 1 ))
|
||||
fi
|
||||
done
|
||||
CC=$__CC
|
||||
|
||||
# No possible solution for this path
|
||||
if [[ $j -eq 1 ]]; then
|
||||
echo "Unable to trace \"$@\" under $UDEV/$SITE/*$ARG3*/"
|
||||
return 1
|
||||
elif [[ $j -eq 2 ]]; then
|
||||
LOCATION=$__LOC
|
||||
else
|
||||
echo "There are $(( j - 1 )) possible paths for ->> $@"
|
||||
j=1
|
||||
for i in ${CHOICES[@]}; do
|
||||
echo " $j. $i"
|
||||
j=$(( j + 1 ))
|
||||
done
|
||||
|
||||
echo -n "Your choice [1-$(( j - 1 ))]: "
|
||||
read num
|
||||
re="^[1-$(( j - 1 ))]+\$"
|
||||
if [[ ! $num =~ $re ]]; then
|
||||
echo "Value does not fall into expected range"
|
||||
return 1
|
||||
fi
|
||||
LOCATION=${CHOICES[$(( num - 1 ))]}
|
||||
fi
|
||||
fi
|
||||
break
|
||||
fi
|
||||
done
|
||||
|
||||
# shift ARG2 ARG3
|
||||
shift; shift
|
||||
if [[ $__SFT23 -eq 0 ]]; then
|
||||
# shift ARG2 ARG3
|
||||
shift; shift
|
||||
fi
|
||||
|
||||
if [[ -n "$LOCATION" ]]; then
|
||||
__dive $CC "$LOCATION" $@
|
||||
|
Loading…
Reference in New Issue
Block a user