@@ -69,24 +69,38 @@ validate_station_lists() {
6969# mpv_pid=$!
7070# }
7171fade_out () {
72- for vol in {100..0..-5}; do
73- echo ' { "command": ["set_property", "volume", ' " $vol " ' ] }' | socat - /tmp/mpv_socket & > /dev/null
74- sleep 0.03
75- done
72+ if [ -S /tmp/mpv_socket ]; then
73+ for vol in {100..0..-5}; do
74+ echo ' { "command": ["set_property", "volume", ' " $vol " ' ] }' | socat - /tmp/mpv_socket & > /dev/null
75+ sleep 0.03
76+ done
77+ fi
7678}
7779
7880fade_in () {
79- for vol in {0..100..5}; do
80- echo ' { "command": ["set_property", "volume", ' " $vol " ' ] }' | socat - /tmp/mpv_socket & > /dev/null
81- sleep 0.03
82- done
81+ if [ -S /tmp/mpv_socket ]; then
82+ for vol in {0..100..5}; do
83+ echo ' { "command": ["set_property", "volume", ' " $vol " ' ] }' | socat - /tmp/mpv_socket & > /dev/null
84+ sleep 0.03
85+ done
86+ fi
8387}
8488
8589start_mpv () {
8690 if [[ -n " $mpv_pid " ]] && kill -0 " $mpv_pid " 2> /dev/null; then
8791 fade_out
8892 kill " $mpv_pid " 2> /dev/null
89- wait " $mpv_pid " 2> /dev/null
93+ # Wait up to 3 seconds for process to terminate
94+ for i in {1..30}; do
95+ if ! kill -0 " $mpv_pid " 2> /dev/null; then
96+ break
97+ fi
98+ sleep 0.1
99+ done
100+ # Force kill if still running
101+ if kill -0 " $mpv_pid " 2> /dev/null; then
102+ kill -9 " $mpv_pid " 2> /dev/null
103+ fi
90104 rm -f /tmp/mpv_socket
91105 fi
92106
@@ -109,7 +123,7 @@ start_mpv() {
109123 echo " ✗"
110124 echo " Αποτυχία σύνδεσης στον σταθμό"
111125 if kill -0 " $mpv_pid " 2> /dev/null; then
112- kill " $mpv_pid " 2> /dev/null
126+ kill -9 " $mpv_pid " 2> /dev/null
113127 fi
114128 mpv_pid=" "
115129 return 1
212226
213227# Δημιουργεί και εμφανίζει σε λίστα τους σταθμούς στο txt file που δέχεται σαν flag
214228list_stations () {
229+ num=0 # Initialize counter
215230 while IFS=' ' read -r line || [[ -n " $line " ]]; do
216231 num=$(( num + 1 ))
217232 echo [" $num " ] " $line " | cut -d " ," -f1
@@ -299,12 +314,12 @@ remove_station() {
299314 sleep 1
300315 list_stations " $my_stations "
301316 while true ; do
302- read -rp " Επέλεξε αριθμού σταθμού (Q/q για έξοδο): " remove_station
303- if [[ $remove_station = " q" ]] || [[ $remove_station = " Q" ]]; then
317+ read -rp " Επέλεξε αριθμού σταθμού (Q/q για έξοδο): " station_to_remove
318+ if [[ $station_to_remove = " q" ]] || [[ $station_to_remove = " Q" ]]; then
304319 echo " Έξοδος..."
305320 exit 0
306- elif [ " $remove_station " -gt 0 ] && [ " $remove_station " -le " $num " ]; then # έλεγχος αν το input είναι μέσα στο εύρος της λίστας των σταθμών
307- station=$( sed " ${remove_station } q;d" " $my_stations " )
321+ elif [ " $station_to_remove " -gt 0 ] && [ " $station_to_remove " -le " $num " ]; then # έλεγχος αν το input είναι μέσα στο εύρος της λίστας των σταθμών
322+ station=$( sed " ${station_to_remove } q;d" " $my_stations " )
308323 stathmos_name=$( echo " $station " | cut -d " ," -f1)
309324 grep -v " $stathmos_name " " $HOME /.shelldio/my_stations.txt" > " $HOME /.shelldio/my_stations.tmp" && mv " $HOME /.shelldio/my_stations.tmp" " $HOME /.shelldio/my_stations.txt"
310325 echo " Διαγράφηκε ο σταθμός $stathmos_name ."
@@ -595,7 +610,11 @@ while [ "$1" != "" ]; do
595610 fi
596611 echo " Γίνεται λήψη του αρχείου των σταθμών από το αποθετήριο."
597612 sleep 1
598- curl -sL https://raw.githubusercontent.com/CerebruxCode/shelldio/stable/.shelldio/all_stations.txt --output " $HOME /.shelldio/all_stations.txt"
613+ if ! curl -sL https://raw.githubusercontent.com/CerebruxCode/shelldio/stable/.shelldio/all_stations.txt --output " $HOME /.shelldio/all_stations.txt" ; then
614+ echo " Αποτυχία λήψης του αρχείου σταθμών. Ελέγξτε τη σύνδεσή σας στο διαδίκτυο."
615+ exit 1
616+ fi
617+ echo " Επιτυχής λήψη του αρχείου σταθμών."
599618 exit 0
600619 ;;
601620 -u | --update)
0 commit comments