it* Simple Justified Gallery Err codevoid.de 70 i Err codevoid.de 70 hgit clone git://git.codevoid.de/mkpicindex URL:git://git.codevoid.de/mkpicindex codevoid.de 70 1Log /git/mkpicindex/log.gph codevoid.de 70 1Files /git/mkpicindex/files.gph codevoid.de 70 1Refs /git/mkpicindex/refs.gph codevoid.de 70 1README /git/mkpicindex/file/README.gph codevoid.de 70 i--- Err codevoid.de 70 1commit c689653652b10f69f0955045bf8d860643aadb42 /git/mkpicindex/commit/c689653652b10f69f0955045bf8d860643aadb42.gph codevoid.de 70 1parent df842697639f5e796e23851e7208e5e398638747 /git/mkpicindex/commit/df842697639f5e796e23851e7208e5e398638747.gph codevoid.de 70 hAuthor: Stefan Hagen URL:mailto:sh+git[at]codevoid[dot]de codevoid.de 70 iDate: Sat, 26 Oct 2019 17:03:06 +0200 Err codevoid.de 70 i Err codevoid.de 70 iFix cache file detection Err codevoid.de 70 i Err codevoid.de 70 iDiffstat: Err codevoid.de 70 i M mkpicindex-static.sh | 34 ++++++++++++++++++------------- Err codevoid.de 70 i Err codevoid.de 70 i1 file changed, 20 insertions(+), 14 deletions(-) Err codevoid.de 70 i--- Err codevoid.de 70 1diff --git a/mkpicindex-static.sh b/mkpicindex-static.sh /git/mkpicindex/file/mkpicindex-static.sh.gph codevoid.de 70 it@@ -16,7 +16,10 @@ ROW_HEIGHT=150 # how high will the justified rows be? Err codevoid.de 70 i THUMB_QUALITY=83 # quality for thumbnails Err codevoid.de 70 i THUMB_PATH="thm" # relative path to thumbnail folder Err codevoid.de 70 i THUMB_PADDING="6" # image padding Err codevoid.de 70 i-DEBUG=$1 # debug output Err codevoid.de 70 i+ Err codevoid.de 70 i+# TECHNICAL STUFF Err codevoid.de 70 i+DEBUG=0 # debug output Err codevoid.de 70 i+THREADS=4 Err codevoid.de 70 i Err codevoid.de 70 i # GLOBAL TMP VARIABLES Err codevoid.de 70 i G_ROW_WIDTH=0 # combined pic width < WIDTH @ ROW_HEIGHT Err codevoid.de 70 it@@ -43,9 +46,9 @@ get_width_by_height() { Err codevoid.de 70 i debug "get_width_by_height: FILE=$F TARGET_HEIGHT=$TH FILE_WxH=$WH RET_WIDTH=$R" Err codevoid.de 70 i } Err codevoid.de 70 i # TOO MANY CONVERT PROCSSES => WAIT Err codevoid.de 70 i-bg_check() { Err codevoid.de 70 i- while [ $(pgrep convert | wc -l | awk '{ print $1 }') -gt 4 ]; Err codevoid.de 70 i- do console "More than 4 convert threads. Waiting..."; sleep 2; done Err codevoid.de 70 i+thread_check() { Err codevoid.de 70 i+ while [ $(pgrep convert | wc -l | awk '{ print $1 }') -gt $THREADS ]; Err codevoid.de 70 i+ do console "More than $THREADS convert threads. Waiting..."; sleep 2; done Err codevoid.de 70 i } Err codevoid.de 70 i Err codevoid.de 70 i # CREATE THUMBNAIL Err codevoid.de 70 it@@ -54,9 +57,12 @@ create_thumb() { Err codevoid.de 70 i local W="$2" # width Err codevoid.de 70 i local H="$3" # height Err codevoid.de 70 i local T="${F%%.*}-$H" Err codevoid.de 70 i- if ! [ -f "$THUMB_PATH/$T.gif" ] && ! [ -f "$THUMB_PATH/$T.jpeg" ]; Err codevoid.de 70 i- bg_check Err codevoid.de 70 i- then Err codevoid.de 70 i+ if [ -f "$THUMB_PATH/$T.gif" ]; Err codevoid.de 70 i+ then printf '%s' "$THUMB_PATH/$T.gif" Err codevoid.de 70 i+ elif [ -f "$THUMB_PATH/$T.jpeg" ]; Err codevoid.de 70 i+ then printf '%s' "$THUMB_PATH/$T.jpeg" Err codevoid.de 70 i+ else Err codevoid.de 70 i+ thread_check Err codevoid.de 70 i case $(printf '%s' "${F##*.}" | tr '[:upper:]' '[:lower:]') in Err codevoid.de 70 i gif) console "Creating Thumbnail: $THUMB_PATH/$T.gif" Err codevoid.de 70 i nohup convert -quality $THUMB_QUALITY -sharpen 2x2 \ Err codevoid.de 70 it@@ -87,7 +93,7 @@ add_image() { Err codevoid.de 70 i debug "add_image: max width reached with F=$F @ $G_ROW_WIDTH" Err codevoid.de 70 i Err codevoid.de 70 i # we're building a row now Err codevoid.de 70 i- printf "
\n"; Err codevoid.de 70 i+ printf "
\n"; Err codevoid.de 70 i Err codevoid.de 70 i # calculate how much we need to stretch images to fill the Err codevoid.de 70 i # whole row. Err codevoid.de 70 it@@ -107,15 +113,15 @@ add_image() { Err codevoid.de 70 i Err codevoid.de 70 i # output HTML for image Err codevoid.de 70 i console "Adding Image: $RF" Err codevoid.de 70 i- printf '
\n' Err codevoid.de 70 i- printf ' \n' Err codevoid.de 70 i- printf ' ' Err codevoid.de 70 i- printf ' \n' Err codevoid.de 70 i- printf '
\n' Err codevoid.de 70 i+ printf '
\n' Err codevoid.de 70 i+ printf ' \n' Err codevoid.de 70 i+ printf ' \n' Err codevoid.de 70 i+ printf ' \n' Err codevoid.de 70 i+ printf '
\n' Err codevoid.de 70 i done Err codevoid.de 70 i Err codevoid.de 70 i # we're done with this row now. Err codevoid.de 70 i- printf "
\n"; Err codevoid.de 70 i+ printf "
\n"; Err codevoid.de 70 i Err codevoid.de 70 i # set leftover file as for next iteration Err codevoid.de 70 i G_ROW_WIDTH="$NW" Err codevoid.de 70 .