From: Brett Parker Date: Sun, 16 Apr 2006 12:05:50 +0000 (+0000) Subject: Clean up thumbnail generation code X-Git-Tag: release-1.0.2~1 X-Git-Url: https://git.sommitrealweird.co.uk/bpgallery.git/commitdiff_plain/a67b3abbb4fd9278ad09525f0b85de4c28ab4633 Clean up thumbnail generation code Stop duplication of code and wrap thumbnail code in a nice function git-archimport-id: arch@sommitrealweird.co.uk--2005-desktop/bpgallery--mainline--1.0--patch-13 --- diff --git a/bpgallery.sh b/bpgallery.sh index 9e4b64c..abcfafa 100755 --- a/bpgallery.sh +++ b/bpgallery.sh @@ -117,7 +117,7 @@ function bpgallery_escape_url() { temp=${temp//\?/%3F} temp=${temp//@/%40} temp=${temp//\"/%22} - echo $temp + $ECHOCOMMAND $temp } declare -rf bpgallery_escape_url @@ -268,8 +268,28 @@ Version: $VERSION END } +function generate_thumbs() { + $ECHOCOMMAND "Generating Thumbnails" + currentimage=0 + totalimages=$($FINDCOMMAND . $FINDIMAGESOPTIONS | $XARGSCOMMAND -0 --replace $ECHOCOMMAND {} | $WCCOMMAND); + imagestoupdate=$($FINDCOMMAND . $FINDIMAGESOPTIONS | $XARGSCOMMAND -0 --replace $ECHOCOMMAND {} | while read filename; do filename=${filename//\"/\\\"}; if [ ! -r "icons/$filename" ] || [ "$filename" -nt "icons/$filename" ] || [ $($IDENTIFYCOMMAND -format "%w" "icons/$filename") -ne $WIDTH ]; then $ECHOCOMMAND $filename; fi; done | $WCCOMMAND) + + if [ $totalimages -eq $imagestoupdate ]; then + $ECHOCOMMAND "Regenerating all thumbnails" + elif [ $imagestoupdate -eq 0 ]; then + $ECHOCOMMAND "No Updated Thumbs, not regenerating" + return + else + $ECHOCOMMAND "Generating $imagestoupdate of $totalimages thumbnails" + fi + + $FINDCOMMAND . $FINDIMAGESOPTIONS | $XARGSCOMMAND -0 --replace $ECHOCOMMAND {} | while read filename; do tempfilename=${filename//\"/\\\"/}; if [ ! -r "icons/$tempfilename" ] || [ "$tempfilename" -nt "icons/$tempfilename" ] || [ $($IDENTIFYCOMMAND -format "%w" "icons/$filename") -ne $WIDTH ]; then $ECHOCOMMAND -n $filename; $ECHOCOMMAND -n -e "\000"; fi; done | $XARGSCOMMAND -0 --verbose --max-procs=4 --replace $CONVERTTOOL -resize $WIDTH '{}' 'icons/{}' 2>&1 | while read throwout; do $ECHOCOMMAND done: $currentimage/$imagestoupdate images; currentimage=$((currentimage+1)); done + $ECHOCOMMAND done: $imagestoupdate/$imagestoupdate images + $ECHOCOMMAND "Completed generating thumbs for $totalimages images" +} + if [[ -z $1 ]]; then - echo "No path given" + $ECHOCOMMAND "No path given" usage exit 1 fi @@ -285,7 +305,7 @@ if [[ "$1" == "--version" || "$1" == "-v" ]]; then fi if [[ ! -d $1 ]]; then - echo "$1 is not a directory" + $ECHOCOMMAND "$1 is not a directory" usage exit 2 fi @@ -293,33 +313,16 @@ fi cd "$1" if ( ! $FINDCOMMAND . $FINDIMAGESOPTIONS > /dev/null 2>/dev/null ); then - echo "$1 does not contain any images. Quitting." + $ECHOCOMMAND "$1 does not contain any images. Quitting." exit 4 fi if [ ! -d icons ]; then mkdir icons - - totalimages=$($FINDCOMMAND . $FINDIMAGESOPTIONS | $XARGSCOMMAND -0 --replace echo {} | $WCCOMMAND); - currentimage=0 - - $FINDCOMMAND . $FINDIMAGESOPTIONS | $XARGSCOMMAND -0 --verbose --max-procs=4 --replace $CONVERTTOOL -resize $WIDTH '{}' 'icons/{}' 2>&1 | while read throwout; do $ECHOCOMMAND done: $currentimage/$totalimages images; currentimage=$((currentimage+1)); done - - echo done: $totalimages/$totalimages images -else - echo "$1 already contains an icons folder, updating." - - imagestoupdate=$($FINDCOMMAND . $FINDIMAGESOPTIONS | $XARGSCOMMAND -0 --replace $ECHOCOMMAND {} | while read filename; do filename=${filename//\"/\\\"}; if [ ! -r "icons/$filename" ] || [ "$filename" -nt "icons/$filename" ] || [ $($IDENTIFYCOMMAND -format "%w" "icons/$filename") -ne $WIDTH ]; then $ECHOCOMMAND $filename; fi; done | $WCCOMMAND) - - echo "images to update: $imagestoupdate" - - - currentimage=0 - - $FINDCOMMAND . $FINDIMAGESOPTIONS | $XARGSCOMMAND -0 --replace $ECHOCOMMAND {} | while read filename; do tempfilename=${filename//\"/\\\"/}; if [ ! -r "icons/$tempfilename" ] || [ "$tempfilename" -nt "icons/$tempfilename" ] || [ $($IDENTIFYCOMMAND -format "%w" "icons/$filename") -ne $WIDTH ]; then $ECHOCOMMAND -n $filename; $ECHOCOMMAND -n -e "\000"; fi; done | $XARGSCOMMAND -0 --verbose --max-procs=4 --replace $CONVERTTOOL -resize $WIDTH '{}' 'icons/{}' 2>&1 | while read throwout; do $ECHOCOMMAND done: $currentimage/$imagestoupdate images; currentimage=$((currentimage+1)); done - echo done: $imagestoupdate/$imagestoupdate images fi +generate_thumbs + if [ -r description.txt ] ; then DESCRIPTION=$($SEDCOMMAND -e '1 { s/^/

/; }; /^$/ { s,$,

,; }; $ { s,$,

, };' description.txt) else