diff --git a/build.sh b/build.sh index aac4a04..f2de11b 100755 --- a/build.sh +++ b/build.sh @@ -27,6 +27,8 @@ cc -std=c89 -DDEBUG -Wall -Wno-unknown-pragmas -Wpedantic -Wshadow -Wuninitializ # Run ./main +./thumbnailer.sh + # Cleanup rm -f ./main diff --git a/thumbnailer.sh b/thumbnailer.sh new file mode 100755 index 0000000..d8c8c7e --- /dev/null +++ b/thumbnailer.sh @@ -0,0 +1,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"