#!/usr/bin/bash

# Beispielloesung zu Blatt 04
#
# 11/2009

# genau ein Argument?
if [ $# -ne 1 ] 
then
   echo Usage: $0 zipArchive
   exit 1
fi

# Wir legen die Dateien aus dem ZIP-Archiv in
# einem eigenen Verzeichnis ($mediaDir) ab.
mediaDir="media"
mkdir $mediaDir
wget $1 # ZIP-Archiv holen
# den Namen der ZIP-Datei aus der gesamten URL holen
zipFile=`echo $1 | sed -e 's/.*\/\(.*\)$/\1/'`
unzip $zipFile -d $mediaDir
cd $mediaDir
# und los geht es mit dem Aufraeumen...
for myFile in *
do
  # wir stellen sicher, nur auf regulaeren Dateien zu arbeiten
  if [ -f $myFile ]
  then
     # Grossbuchstaben im Dateinamen in Kleinbuchstaben umwandeln
     newFileName=`echo $myFile | tr '[:upper:]' '[:lower:]'`
     # Dateiendung der aktuellen Datei erfahren (fuer Namen des Unterverz.)
     suffix=`echo $newFileName | sed -e "s/^.*\.\(.\{3\}\)$/\1/"`
     # mal schauen, ob ein Unterverzeichnis mit diesem Namen schon existiert
     if [ ! -e $suffix ]
     then
        # nein? Na gut, dann legen wir eines an...
        mkdir $suffix
     fi
     # Auf Kollision (Gross-/Kleinschreibung) ueberpruefen: 
     if [ -e $suffix/$newFileName ]
     then
        # Hier war wohl schon eine Datei mit Grossbuchstaben da, die vorrangig
        # behandelt wurde (dies ist abhaengig vom Betriebssystem)
        echo "Could not move $myFile to $newFileName: file already exists!"
     else
        mv $myFile $suffix/$newFileName
     fi
  fi
done
cd ..

