Add a very rough progress meter
[bpgallery.git] / bpgallery.sh
index d95049eedff19d546feddab4da5799c086603e52..a088ebfed5a51c4fb0a97c44a1b00fed70858d33 100755 (executable)
@@ -26,19 +26,31 @@ if [[ -z $TITLE ]]; then
 fi
 
 if [[ -z $CONVERTTOOL ]]; then
-       CONVERTTOOL="/usr/bin/convert"
+       CONVERTTOOL=convert
 fi
 
 if [[ -z $FINDCOMMAND ]]; then
-       FINDCOMMAND=/usr/bin/find
+       FINDCOMMAND=find
 fi
 
 if [[ -z $XARGSCOMMAND ]]; then
-       XARGSCOMMAND=/usr/bin/xargs
+       XARGSCOMMAND=xargs
 fi
 
 if [[ -z $ECHOCOMMAND ]]; then
-       ECHOCOMMAND=/bin/echo
+       ECHOCOMMAND=echo
+fi
+
+if [[ -z $SORTCOMMAND ]]; then
+       SORTCOMMAND=sort
+fi
+
+if [[ -z $IDENTIFYCOMMAND ]]; then
+       IDENTIFYCOMMAND=identify
+fi
+
+if [[ -z $HEADCOMMAND ]]; then
+       HEADCOMMAND=head
 fi
 
 if [[ -z $WIDTH ]]; then
@@ -46,7 +58,11 @@ if [[ -z $WIDTH ]]; then
 fi
 
 if [[ -z $IMAGEEXTENSIONS ]]; then
-       IMAGEEXTENSIONS="jpg gif png";
+       IMAGEEXTENSIONS="jpeg jpg gif png";
+fi
+
+if [[ -z $WCCOMMAND ]]; then
+       WCCOMMAND="wc -l"
 fi
 
 FINDIMAGESOPTIONS=""
@@ -112,7 +128,12 @@ else
        exit 3
 fi
 
-$FINDCOMMAND . $FINDIMAGESOPTIONS | $XARGSCOMMAND -0 --replace $CONVERTTOOL -resize $WIDTH '{}' '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 echo done: $currentimage/$totalimages images; currentimage=$((currentimage+1)); done
+
+echo done: $totalimages/$totalimages images
 
 cat <<END > index.html
 <?xml version="1.0"?>
@@ -126,7 +147,7 @@ cat <<END > index.html
 END
 
 
-$FINDCOMMAND . $FINDIMAGESOPTIONS | $XARGSCOMMAND -0 --replace $ECHOCOMMAND {} |sort -g | sed -e 's#^./\(.*\)$#<div class="thumbnail"><a href="\1"><img src="icons/\1" /></a></div>#' >> index.html
+$FINDCOMMAND . $FINDIMAGESOPTIONS | $XARGSCOMMAND -0 --replace $ECHOCOMMAND {} |$SORTCOMMAND -g | sed -e 's#^./\(.*\)$#<div class="thumbnail"><a href="\1"><img src="icons/\1" /></a></div>#' >> index.html
 
 cat <<END >> index.html
 </body>
@@ -138,7 +159,7 @@ cd icons
 
 for imageext in $IMAGEEXTENSIONS; do
        if ( ls "*.$imageext" > /dev/null 2>/dev/null ); then
-               TEMPMAX=$(identify *.jpg | grep "Geometry:" | sed -r 's#^.*Geometry:.*?[0-9]+x([0-9]+)\+.*$#\1#' | sort -g -r | head -n 1)
+               TEMPMAX=$($IDENTIFYCOMMAND *.$imageext | grep "Geometry:" | sed -r 's#^.*Geometry:.*?[0-9]+x([0-9]+)\+.*$#\1#' | $SORTCOMMAND -g -r | $HEADCOMMAND -n 1)
                if [[ $TEMPMAX -gt $MAXHEIGHT ]]; then
                        MAXHEIGHT=$TEMPMAX
                fi