#!/bin/bash
# subit - subien nimeaja by Katja (fly5.kapsi.fi)
#
# nimeaa kansion subit joissa tietty kohta tekstia tasmaa
# lisaks tarkistaa et tasmaako versionumero, jollei kayteta "nonum"
# vivun kanssa, jolloin ei teha tarkistusta et tasmaako numerotki.
# tehty helpottaa jos on monia vaarilla nimilla olevii tekstityksii,
# ettei tarvii kasin jaksaa kaikkia nimeta..
#
# voi vaatia virittelya erilailla nimettyjen tiedostojen kanssa

subipaate="srt"
videopaate="avi"

# toiminto, luultavasti cp tai mv toimii parhaiten
toiminto="mv"

# muunnos funktio
function muunna () {
	if [[ "$alkusubi" = "$uussubi" ]]; then
		echo "On jo nimetty: $alkusubi"
	else
		echo "Muunnetaan tekstitys $alkusubi"
		echo -e "\t> $uussubi"
		$toiminto "$alkusubi" "$uussubi"
#		echo "$toiminto \"$alkusubi\" \"$uussubi\""
	fi
}

for i in *.$videopaate; do
	avinimi="${i}"
	paatteeton="${i%.$videopaate}"

	# patka joka nimissa on yhteista
	yhteista="${paatteeton#*\ \-\ }"
	yhteista="${yhteista#*\ \-\ }"
	# jos tarvii parsii paatteita tunnistuksesta, lisaa ne tahan
	yhteista="${yhteista% [*}"

	alkusubi="`ls -1 | grep \"$yhteista\" | grep --max-count=1 \"$subipaate\"`"
	uussubi="$paatteeton.$subipaate"

		if [[ -z "`echo $alkusubi`" ]]; then
			echo "Ei loytynyt vastaavia subeja videolle:"
			echo -e "\t$avinimi"
		fi

# jos ei teha numerotarkistusta
if [[ "$1" = "nonum" ]]; then
	muunna
else

	## numeroiden tasmays ##

	# vaan numerot poimitaan
	videonumero="${i//[^0-9]/}"
	# tarvittaes alusta nolla pois
	[[ "$videonumero:0-1" = "0" ]] && videokolme="${videonumero#0}" || videokolme="$videonumero"

	subinumero="${alkusubi//[^0-9]/}"
	[[ "$subinumero:0:1" = "0" ]] && subikolme="${subinumero#0}" || subikolme="$subinumero"

		if [[ $videokolme -ne $subikolme ]]; then
			echo "Ei muunneta: $alkusubi"
			echo "Syy: versionumerot ei tasmaa:"
			echo -e "\tTekstityksen versio: $subikolme"
			echo -e "\tVideon versio: $videokolme"
			echo ""
		else
			muunna
		fi
fi
done
exit $?