thumbnailer.sh (raw)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
#!/bin/sh ROOT=../www SRC=../www/img SIZE=500 # transform path to /img/*/.thumb/ pathtrans() { filename=$(echo $1 | awk -F/ '{print $NF}') filename=$(echo ${filename} | awk 'BEGIN{FS=OFS="."}{NF--; print $0}') transform=$(echo $1 | awk 'BEGIN{FS=OFS="/"}{NF--; print $0}') if [ ! -d ${transform}/.thumb ]; then mkdir ${transform}/.thumb/ fi transform=${transform}/.thumb/${filename}.png echo ${transform} } # generate thumbnails in /img/*/.thumb/ resize() { output=$(pathtrans $1) if [ ! -f ${output} ]; then convert $1 -strip -auto-orient -resize ${SIZE} -dither FloydSteinberg -colors 16 ${output} fi replace $1 ${output} } # crawl through html and replace src='/img/*/*' with src='/img/*/.thumb/*' replace() { src=$(echo $1 | sed s#\.\./www##) dest=$(echo $2 | sed s#\.\./www##) src=$(echo "src='${src}'") dest=$(echo "src='${dest}'") for f in $(find ${ROOT}/*.html); do if grep ${src} ${f}; then sed -i s#${src}#${dest}# $f fi done } echo "creating new thumbnails" for x in $(find ${SRC}/*/*); do resize $x exit; done echo "done" |