74 lines
1.3 KiB
Bash
Executable File
74 lines
1.3 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
# --- SETTINGS --------------------------------------------
|
|
|
|
# Comando do player...
|
|
PLAYER='mpv --quiet'
|
|
# Caminho e arquivo de estações de rádio...
|
|
LIST="$HOME/.config/wr/radio"
|
|
# Mensagem de voltar...
|
|
BACK='VOLTAR PARA OS ESTILOS...'
|
|
# Mensagem de sair...
|
|
EXIT='SAIR...'
|
|
# Prompt PS3, utilizado pelo menu 'select'...
|
|
PS3='Digite o número da sua opção: '
|
|
|
|
# --- FUNCTIONS -------------------------------------------
|
|
|
|
get_styles() {
|
|
echo $(awk -F'|' '{print $1}' $LIST | sort -u)
|
|
}
|
|
|
|
get_stations() {
|
|
echo "$(awk -F'|' -v s="$SEL_STYLE" '$1==s {printf "%s\n", $2}' $LIST | sort -u)"
|
|
}
|
|
|
|
styles_menu() {
|
|
select style in $EXIT $(get_styles)
|
|
do
|
|
[[ $REPLY -eq 1 ]] || echo "$style"
|
|
break
|
|
done
|
|
return 0
|
|
}
|
|
|
|
stations_menu() {
|
|
OFS="$IFS"
|
|
IFS=$'\n'
|
|
select station in "$BACK" $(get_stations)
|
|
do
|
|
echo "$station"
|
|
break
|
|
done
|
|
IFS="$OFS"
|
|
return 0
|
|
}
|
|
|
|
play_radio() {
|
|
$PLAYER $(awk -F'|' -v s="$SEL_STATION" '$2==s {print $3}' $LIST)
|
|
}
|
|
|
|
# --- MAIN ------------------------------------------------
|
|
|
|
while :; do
|
|
|
|
clear
|
|
SEL_STYLE=$(styles_menu)
|
|
|
|
[[ $SEL_STYLE ]] || break
|
|
|
|
clear
|
|
SEL_STATION=$(stations_menu)
|
|
|
|
[[ $SEL_STATION == "$BACK" ]] || break
|
|
|
|
done
|
|
|
|
if [[ $SEL_STATION ]]; then
|
|
clear
|
|
echo "$SEL_STYLE: $SEL_STATION"
|
|
play_radio
|
|
fi
|
|
|
|
exit
|