#!/bin/bash

# Skrevet i BASH-script af Kåre Janussen.
#
# MODIFICERET UDGAVE!
#
# Dette script konverterer jpg-billeder ved hjælp af
# pakken ImageMagick til billeder med højde 600px og 75px 
# samt med bredde 160px.
# Kan også klare andre formater, som brugeren måtte angive.
# Alle filnavne i $PWD ændres til små bogstaver.

# Hvis scriptet køres uden parameter, lægges de konverterede 
# 600px- og 75px-jpg-billeder i $PWD, og 160px-jpg-billederne 
# lægges i $PWD/randompics.
#
# Angives én parameter "foo", oprettes et bibliotek "$PWD/foo",
# og de konverterede 600px- og 75px-jpg-billeder lægges deri,
# mens 160px-jpg-billederne lægges i $PWD/foo/randompics.
#
# Angives to parametre "foo" "bar", oprettes et bibliotek "$PWD/foo",
# og de konverterede filer af billedformatet "bar" (f.eks. png) 
# lægges deri.
# BEMÆRK: Ønskes et alternativt format angivet, SKAL dette gøre i 
# parameter nr. 2, og destinationsbibliotek (evt. ".") angives i 
# parameter nr. 1!

# chmod +x imgconvert.sh
# Kør scriptet fra billedbiblioteket.

# Konverterer først navne på filerne i $PWD til lowercase.
for filename in *; do
  newname=`echo "$filename/" | tr '[:upper:]' '[:lower:]'`
  newname=${newname%/}
  [[ $filename == $newname ]] || mv "$filename" "$newname"
done
echo "Filnavne konverteret til minuskler"

if [ -n "$2" ]; then
  suffix=".$2" # alternativt billedformat angivet af brugeren
else
  suffix=".jpg" # jpg er default
fi

# hvis ingen billeder af det valgte format findes:
if [ -z "`ls *$suffix 2> /dev/null`" ]; then
  echo "Ingen ${suffix#.}-filer at konvertere i dette bibliotek!"
  exit 0
fi

# hvis et destiationsbibliotek er angivet, oprettes det, såfremt
#+intet bibliotek eller fil af dette navn findes i forvejen:
if [ -n "$1" ] && [ "$1" != "." ]; then
  if [ -e "$1" ]; then
    echo "$1 eksisterer allerede. Vælg et andet navn!"
    exit 0
  fi
  mkdir "$1"
  mkdir "$1/randompics"
else 
    mkdir randompics
fi

# billeder konverteres og flyttes evt. til destinationsbibliotek:
for file in *$suffix; do
  echo "Konverterer $file"
  convert -scale x600 "$file" "${file%$suffix}-600$suffix"
  convert -scale x75 "$file" "${file%$suffix}-lille$suffix"
  convert -scale 160 "$file" "${file%$suffix}-160$suffix"
  if [ -n "$1" ] && [ "$1" != "." ]; then
    mv "${file%$suffix}-600$suffix" "$1"
    mv "${file%$suffix}-lille$suffix" "$1"
    mv "${file%$suffix}-160$suffix" "$1/randompics"
  else     
    mv "${file%$suffix}-160$suffix" "randompics"
  fi
done

echo "De konverterede billeder befinder sig nu i $PWD/$1"

exit 0