#!/bin/bash
#
#Beschreibung: sortiert zufällig eine m3u-Liste 
#
#benötigt: 
#
#Aufruf: randomize_m3u.sh Datei
#
#Hinweise und Fehler an tuxator@tuxator.de 
#
#Status: ok
###################################################################
#
#Variablen
currentifs=${IFS}
IFS=$'\n'
retval=0
typeset -i rows=1
m3uname=${1}
#
#Prüfung auf Voraussetzungen
if [[ ! ${m3uname} ]]; then
		retval=1
fi
###################################################################
if (( ${retval} == 0 )); then
	#alle Leerzeilen löschen
	sed -i '/^$/d' ${m3uname}
	#jeder Zeile eine Raute voran stellen
	sed -i 's/^/#/g' ${m3uname}
	#Anzahl der Zeilen bestimmen und
	until (( ${rows} > $(sed -n '$=' ${m3uname}) )); do
		#Datei zeilenweise einlesen und Zufallszahl voran stellen
		sed -i "${rows}s/^#/$RANDOM#/" ${m3uname}
		rows+=1
	done
	#Datei sortieren
	cat ${m3uname} | sort > /tmp/randomize_m3u
	#Zahl und Raute entfernen
	sed -i 's/^[0-9]\+#//g' /tmp/randomize_m3u
	#Datei an ihren Ursprung verschieben
	mv /tmp/randomize_m3u ${m3uname}
fi
###################################################################
#Fehlerbehandlung
case ${retval} in
	1)
	echo "${0}: keine Datei übergeben"
	;;
esac
###################################################################
IFS=${currentifs}
exit ${retval}
