Dynamic menu
Feature: +all Sonos device are automatically discover and have an entrie in principal menu.
This commit is contained in:
@@ -12,10 +12,13 @@ set -u
|
|||||||
list="local"
|
list="local"
|
||||||
if [ "$list" = "discovery" ]; then loc="";
|
if [ "$list" = "discovery" ]; then loc="";
|
||||||
else loc=" -l"; fi
|
else loc=" -l"; fi
|
||||||
echo "$loc"
|
#echo "$loc"
|
||||||
#sleep 3
|
#sleep 3
|
||||||
GITHUB_TOKEN=GITHUB_TOKEN
|
GITHUB_TOKEN=GITHUB_TOKEN
|
||||||
|
|
||||||
|
discover=$(sonos-discover -p)
|
||||||
|
dev=$(echo "$discover" | grep -E "([0-9]{1,3}[\.]){3}[0-9]{1,3}")
|
||||||
|
|
||||||
italic="\033[3m"
|
italic="\033[3m"
|
||||||
underline="\033[4m"
|
underline="\033[4m"
|
||||||
bgd="\033[1;4;31m"
|
bgd="\033[1;4;31m"
|
||||||
@@ -40,35 +43,55 @@ main() {
|
|||||||
echo -e ""
|
echo -e ""
|
||||||
echo -e "${bold} 🔈 SoCo-Cli GUI${reset}"
|
echo -e "${bold} 🔈 SoCo-Cli GUI${reset}"
|
||||||
echo -e ""
|
echo -e ""
|
||||||
|
|
||||||
echo -e " "
|
echo -e " "
|
||||||
echo -e "---------------------------------"
|
echo -e "---------------------------------"
|
||||||
echo -e " Main Menu "
|
echo -e " Main Menu "
|
||||||
echo -e "---------------------------------"
|
echo -e "---------------------------------"
|
||||||
echo -e " 1) ${bgd}A${reset}bout "
|
echo -e " 1) ${bgd}A${reset}bout "
|
||||||
echo -e " 2) ${bgd}H${reset}elp "
|
echo -e " 2) ${bgd}H${reset}elp "
|
||||||
echo -e " 3) ➔ ${bgd}C${reset}hambre "
|
|
||||||
echo -e " 4) ➔ ${bgd}S${reset}alon "
|
j=3
|
||||||
echo -e " 5) ➔ A${bgd}l${reset}l devices "
|
while IFS= read -r line; do
|
||||||
echo -e " 6) ${bgd}Q${reset}uit "
|
name=$(echo "${line}" | awk '{print $1}')
|
||||||
|
model=$(echo "${line}" | awk '{print $3}')
|
||||||
|
|
||||||
|
echo -e " $j) ➔ Sonos $model device: $name "
|
||||||
|
((j++))
|
||||||
|
done <<< "$dev"
|
||||||
|
|
||||||
|
l=$j # All devices entrie
|
||||||
|
k=$((j+1)) # Quit entrie
|
||||||
|
|
||||||
|
echo -e " $j) ➔ A${bgd}l${reset}l devices "
|
||||||
|
echo -e " $k) ${bgd}Q${reset}uit "
|
||||||
echo -e "================================="
|
echo -e "================================="
|
||||||
echo -e "Enter your menu choice [1-6]: \c "
|
echo -e "Enter your menu choice [1-$k]: \c "
|
||||||
|
|
||||||
read main_menu
|
read main_menu
|
||||||
|
|
||||||
case "$main_menu" in
|
|
||||||
|
|
||||||
1|a|A) about
|
if [ $main_menu == "3" ] || [ $main_menu == "4" ]; then
|
||||||
read -p ""
|
|
||||||
;;
|
nth=$(($main_menu - 2))
|
||||||
2|h|H) help;;
|
nth_device=$(echo "$dev" | sed -n "${nth}p")
|
||||||
3|c|C) soco "Chambre";;
|
name=$(echo "${nth_device}" | awk '{print $1}')
|
||||||
4|s|S) soco "Salon";;
|
|
||||||
5|l|L) all;;
|
soco $name
|
||||||
6|q|Q) exit 0;;
|
|
||||||
*) echo -e "\n${red}Oops!!! Please Select Correct Choice${reset}";
|
elif [ $main_menu == "1" ] || [[ $main_menu == "a" ]] || [[ $main_menu == "A" ]]; then
|
||||||
echo -e "Press ${bold}ENTER${reset} To Continue..." ; read ;;
|
about
|
||||||
esac
|
elif [ $main_menu == "2" ] || [[ $main_menu == "h" ]] || [[ $main_menu == "H" ]]; then
|
||||||
|
help
|
||||||
|
elif [ $main_menu == "$j" ] || [[ $main_menu == "l" ]] || [[ $main_menu == "L" ]]; then
|
||||||
|
all
|
||||||
|
elif [ $main_menu == "$k" ] || [[ $main_menu == "q" ]] || [[ $main_menu == "Q" ]]; then
|
||||||
|
exit 0
|
||||||
|
else
|
||||||
|
echo -e "\n${red}Oops!!! Please Select Correct Choice${reset}";
|
||||||
|
echo -e "Press ${bold}ENTER${reset} To Continue..." ;
|
||||||
|
read -p ""
|
||||||
|
fi
|
||||||
|
|
||||||
done
|
done
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -105,6 +128,7 @@ about() {
|
|||||||
|
|
||||||
echo -e "\n$vers\n"
|
echo -e "\n$vers\n"
|
||||||
echo "<Press Enter to quit>"
|
echo "<Press Enter to quit>"
|
||||||
|
read -p ""
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -223,11 +247,11 @@ soco() {
|
|||||||
echo -e "------------------------|-------------------------|--------------------"
|
echo -e "------------------------|-------------------------|--------------------"
|
||||||
echo -e " Sonos $device Menu : $playing "
|
echo -e " Sonos $device Menu : $playing "
|
||||||
echo -e "------------------------|-------------------------|--------------------"
|
echo -e "------------------------|-------------------------|--------------------"
|
||||||
echo -e " 1) France In${bgd}f${reset}o " " | " "11) volume ${bgd}11${reset} " " | " "21) ➔ ${bgd}I${reset}nfos "
|
echo -e " 1) France In${bgd}f${reset}o " " | " "11) volume ${bgd}11${reset} " " | " "21) ➔ ${bgd}I${reset}nfos "
|
||||||
echo -e " 2) France Int${bgd}e${reset}r " " | " "12) ${bgd}m${reset}ute ON " " | " "22) ➔ ${bgd}L${reset}ists "
|
echo -e " 2) France Int${bgd}e${reset}r " " | " "12) ${bgd}m${reset}ute ON " " | " "22) ➔ ${bgd}L${reset}ists "
|
||||||
echo -e " 3) ${bgd}K${reset}6 FM " " | " "13) volume ${bgd}13${reset} " " | " "23) Play al${bgd}b${reset}ums "
|
echo -e " 3) ${bgd}K${reset}6 FM " " | " "13) volume ${bgd}13${reset} " " | " "23) Play al${bgd}b${reset}ums "
|
||||||
echo -e " 4) Rires et ${bgd}C${reset}hansons " " | " "14) m${bgd}u${reset}te OFF " " | " "24) Play artists (${bgd}x${reset}) "
|
echo -e " 4) Rires et ${bgd}C${reset}hansons " " | " "14) m${bgd}u${reset}te OFF " " | " "24) Play artists (${bgd}x${reset}) "
|
||||||
echo -e " 5) ${bgd}R${reset}TL " " | " "15) volume ${bgd}15${reset} " " | " "25) Play tracks (${bgd}y${reset}) "
|
echo -e " 5) ${bgd}R${reset}TL " " | " "15) volume ${bgd}15${reset} " " | " "25) Play tracks (${bgd}y${reset}) "
|
||||||
echo -e " 6) ${bgd}D${reset}eezer Flow " " | " "16) ${bgd}s${reset}tart $device " " | " "26) Sleeep (${bgd}j${reset}) "
|
echo -e " 6) ${bgd}D${reset}eezer Flow " " | " "16) ${bgd}s${reset}tart $device " " | " "26) Sleeep (${bgd}j${reset}) "
|
||||||
echo -e " 7) " " | " "17) s${bgd}t${reset}op $device " " | " "27) Sha${bgd}z${reset}aaaam "
|
echo -e " 7) " " | " "17) s${bgd}t${reset}op $device " " | " "27) Sha${bgd}z${reset}aaaam "
|
||||||
echo -e " 8) " " | " "18) pause ${bgd}o${reset}n $device " " | " "28) S${bgd}w${reset}itch Status Light "
|
echo -e " 8) " " | " "18) pause ${bgd}o${reset}n $device " " | " "28) S${bgd}w${reset}itch Status Light "
|
||||||
|
|||||||
Reference in New Issue
Block a user