#!/bin/bash
# ---------------------------------------------------------------------
# limitations: cf convert pour la conversion en .jpg
#
# dépend des scripts suivant :
# - photo_thumbCheckExist.sh
# librairies
# - convert
#
# ameliorations
# - auto-orient
# ---------------------------------------------------------------------
# ---------------------------------------------------------------------
# init/config
# ---------------------------------------------------------------------
# thumnails names
export XLname="SYNOPHOTO:THUMB_XL.jpg"
export Lname="SYNOPHOTO:THUMB_L.jpg"
export Bname="SYNOPHOTO:THUMB_B.jpg"
export Mname="SYNOPHOTO:THUMB_M.jpg"
export Sname="SYNOPHOTO:THUMB_S.jpg"
# thumnails size
export XLsize="1280x1280"
export Lsize="800x800"
export Bsize="640x640"
export Msize="320x320"
export Ssize="160x160"
# fichier temporaire crée par checkThumbExist
fileTmpDiff="/tmp/thbExist918diff"
# ---------------------------------------------------------------------
# coeur du programme
#
# rem: a ameliorer pour tenir compte de tous les formats image supportés
#
# limitations: extensions supportés jpg JPG
# ---------------------------------------------------------------------
# element a convertir
fullPathToPic=$@
# normalement cette étape du test sur @eaDir est désormais inutile car la commande find du fichier maitre l'intègre déjà
# (this step is not useful as master script with "find" command includes this test)
# test @eaDir (on le garde par robustesse au cas où...)
isNot_eaDir=`echo $fullPathToPic | grep -v "@eaDir"`
if [[ -z $isNot_eaDir ]]
then
# fichier image non traité car contient @eaDir dans le path
echo " "
echo "SKIP "$fullPathToPic" : in @eaDir thumbnail sub-folder"
else
# Recupere le noms et le dossier de l'element
picName=`echo $fullPathToPic | awk -F\/ '{print $NF}'`
picDir=`echo $fullPathToPic | sed s/"${picName}"//g | sed s/.$//`
# vérification que les miniatures n'existe pas déjà
photo_thumbCheckExist.sh "${picDir}" "${picName}"
# si diff vide alors les miniatures existent deja
isNot_thumb=`cat $fileTmpDiff`
if [[ -z $isNot_thumb ]]
then
# fichier non traité car les miniatures existent (thumbnails exist already)
echo " "
echo "SKIP "$fullPathToPic" : all thumbnails already exist"
else
echo " "
echo "TREATMENT "$fullPathToPic
# conversion en cascade (XL -> L -> B -> M -> S)
# ----------------------------------------------
# Creation du repertoire s'il n'existe pas (directory creation if not existing)
if [[ !(-d "$picDir"/"@eaDir"/"$picName") ]]
then
mkdir -p "$picDir""/@eaDir/""$picName"
# modification of rights to be readable and executable by "others" (like photostation...)
chmod 775 "$picDir"/"@eaDir"/"$picName"
fi
# si le fichier n'existe pas on le crée sinon on ne fait rien
# (creation of thumbnail if it doesn't exist)
if [[ !(-f "$picDir"/"@eaDir"/"$picName"/"$XLname") ]]
then
convert -size $XLsize "$picDir""/""$picName" -resize $XLsize -auto-orient -flatten "$picDir"/"@eaDir"/"$picName"/"$XLname"
echo " -- "$XLname" thumbnail created"
fi
if [[ !(-f "$picDir"/"@eaDir"/"$picName"/"$Lname") ]]
then
convert -size $XLsize "$picDir""/@eaDir/""$picName""/""$XLname" -auto-orient -resize $Lsize "$picDir""/@eaDir/""$picName""/""$Lname"
echo " -- "$Lname" thumbnail created"
fi
if [[ !(-f "$picDir"/"@eaDir"/"$picName"/"$Bname") ]]
then
convert -size $Lsize "$picDir""/@eaDir/""$picName""/""$Lname" -auto-orient -resize $Bsize "$picDir""/@eaDir/""$picName""/""$Bname"
echo " -- "$Bname" thumbnail created"
fi
if [[ !(-f "$picDir"/"@eaDir"/"$picName"/"$Mname") ]]
then
convert -size $Bsize "$picDir""/@eaDir/""$picName""/""$Bname" -auto-orient -resize $Msize "$picDir""/@eaDir/""$picName""/""$Mname"
echo " -- "$Mname" thumbnail created"
fi
if [[ !(-f "$picDir"/"@eaDir"/"$picName"/"$Sname") ]]
then
convert -size $Msize "$picDir""/@eaDir/""$picName""/""$Mname" -auto-orient -resize $Ssize "$picDir""/@eaDir/""$picName""/""$Sname"
echo " -- "$Sname" thumbnail created"
fi
fi
fi