#!/bin/bash

# Skript zum Erzeugen von Genre-Tags in Album-Unterverzeichnissen
# Aufruf erfolgt im Elternordner der zuzuordnenden Album-Verzeichnisse
# Die Eingabe der Genres erfolgt interaktiv nach dem Aufruf
# Benutzung: tag-album.sh [n|e [<von> [<bis>]]]

# Name der anzulegenden Files. $Tagname kann editiert werden.
Tagname=.genre-tag

case $1 in
    n)
        Neu=ja
    ;;
    *)
        Neu=nein
    ;;
esac

IFS=$'\t\n'

# Efassen der Genres, bis Leereingabe beendet
Genres=()
i='start'
echo "Genres für $(basename $(pwd)) eingeben: (Leereingabe beendet)"
while [ "$i" ]; do
    read i
    Genres+=("${i}")
done

# Wegschneiden des letzten Elements, das ein Leerstring war
let letztes=${#Genres[@]}-1
unset Genres[$letztes]

# Im aktuellen Verzeichnis für jedes File, das ein Verzeichnis ist, Genre in genre-tag schreiben
VerzNr=1
for j in $( ls ); do
  if [ -d "$j" ]; then # test -d ... wahr, wenn Datei ein Verzeichnis ist
    if ([ ! "$2" ] || [ "$VerzNr" -ge "$2" ]) && ([ ! "$3" ] || [ "$VerzNr" -le "$3" ]); then
      if [ "$Neu" = "ja" ] && [ -e "${j}/${Tagname}" ]; then
        rm "${j}/${Tagname}"
      fi
      for g in ${Genres[@]}; do
        echo $g >> "${j}/${Tagname}"
        echo "$j --> $g"
      done
    fi
    let VerzNr+=1
  fi
done

exit
