X-Git-Url: https://git.sommitrealweird.co.uk/bpgallery.git/blobdiff_plain/db2e93451feb68956ecdf00cf3bb33ebca015173..77556ba866fa3f51a4ae229f92f853c3242d4533:/bpgallery.sh diff --git a/bpgallery.sh b/bpgallery.sh index f4aa372..d98805f 100755 --- a/bpgallery.sh +++ b/bpgallery.sh @@ -17,6 +17,7 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +set -e set -f VERSION="1.1+arch" @@ -136,15 +137,15 @@ function bpgallery_default_page() {
block + + GENERATEPAGESFORMEDIUMSIZE + generate medium sized images and pages + + GENERATEPAGESFORFULLSIZE + decide wether to generate pages for the full size images or not + + INDEXDOCUMENT + name of the index page (e.g. index.html) + +Example: + TITLE="My Funky Gallery" WIDTH=200 INDEXDOCUMENT="welcome.html" GENERATEPAGESFORFULLSIZE=1 GENERATEPAGESFORMEDIUMSIZE=1 MEDIUMWIDTH=400 $0 /path/to/image/folder END } @@ -365,6 +398,22 @@ function generate_resized_images() { totalimages=$($FINDCOMMAND . $FINDIMAGESOPTIONS | $XARGSCOMMAND -0 -I {} $ECHOCOMMAND {} | $WCCOMMAND); imagestoupdate=$($FINDCOMMAND . $FINDIMAGESOPTIONS | $XARGSCOMMAND -0 -I {} $ECHOCOMMAND {} | while read filename; do filename=${filename//\"/\\\"}; if [ ! -r "$2/$filename" ] || [ "$filename" -nt "$2/$filename" ] || [ $($IDENTIFYCOMMAND -format "%w" "$2/$filename") -ne $1 ]; then $ECHOCOMMAND $filename; fi; done | $WCCOMMAND) + if [ $totalimages -eq 0 ]; then + # might as well exit at this point - there are no pictures + $ECHOCOMMAND "No images for the gallery - exiting." + exit 64 + else + # check if the directory exists and create it other wise + if [ ! -d $2 ]; then + mkdir $2 + fi + + if [ ! -w $2 ]; then + $ECHOCOMMAND "Can't write to $2 directory, exiting" + exit 16 + fi + fi + if [ $totalimages -eq $imagestoupdate ]; then $ECHOCOMMAND "Regenerating all $2" elif [ $imagestoupdate -eq 0 ]; then @@ -380,28 +429,10 @@ function generate_resized_images() { } function generate_thumbs() { - if [ ! -d icons ]; then - mkdir icons - fi - - if [ ! -w icons ]; then - $ECHOCOMMAND "Can't write to icons directory, exiting" - exit 16 - fi - generate_resized_images $WIDTH icons } function generate_medium() { - if [ ! -d medium ]; then - mkdir medium - fi - - if [ ! -w medium ]; then - $ECHOCOMMAND "Can't write to medium directory, exiting" - exit 32 - fi - generate_resized_images $MEDIUMWIDTH medium } @@ -426,10 +457,10 @@ function generate_pages() { addlinks=1 fi - if [ -z $1 ] && [ -z $2 ] && [[ $GENERATEPAGESFORMEDIUMSIZE != 0 ]]; then + if [ -z $2 ] && [[ $GENERATEPAGESFORMEDIUMSIZE != 0 ]]; then addlinks=2 fi - + $FINDCOMMAND . $FINDIMAGESOPTIONS | \ $XARGSCOMMAND -0 -I {} $ECHOCOMMAND {} | \ $SORTCOMMAND -g | \ @@ -438,45 +469,54 @@ function generate_pages() { currentimage=$nextimage nextimage=${imagefilename#./} addlink="" + + if [[ $GENERATEPAGESFORFULLSIZE != 0 ]]; then + addlink=${currentimage}${extra}.html + else + addlink=${currentimage} + fi if [[ $addlinks == 1 ]]; then - if [[ $GENERATEPAGESFORFULLSIZE != 0 ]]; then - addlink=${currentimage}.html - else - addlink=${currentimage} - fi + addlink=${currentimage}.html + else + addlink=${currentimage}${extra}.html fi - if [[ $addlinks == 2 ]]; then - addlink=${currentimage}__medium.html - fi - previouspage=$currentpage currentpage=$nextpage - nextpage=${imagefilename}${extra}.html + if [[ $addlinks == 1 ]]; then + nextpage=${nextimage}${extra}.html + else + nextpage=${nextimage}.html + fi filename=${extradir}${currentimage} generate_general_page "$previouspage" "$currentpage" "$nextpage" $addlink - echo $nextimage + $ECHOCOMMAND $nextimage done | tail -n 2 | ( read previouspage read currentpage addlink="" - if [[ $addlinks == 1 ]]; then - if [[ $GENERATEPAGESFORFULLSIZE ]]; then - addlink=${currentpage}.html - else - addlink=${currentpage} - fi + if [[ $GENERATEPAGESFORFULLSIZE != 0 ]]; then + addlink=${currentpage}.html + else + addlink=${currentpage} fi - if [[ $addlinks == 2 ]]; then - addlink=${nextimage}__medium.html + if [[ $addlinks == 1 ]]; then + addlink=${currentpage}.html + else + addlink=${currentpage}${extra}.html fi filename=${extradir}${currentpage} - currentpage=${currentpage}${extra}.html - previouspage=${previouspage}${extra}.html + if [[ $addlinks == 1 ]]; then + currentpage=${currentpage}${extra}.html + previouspage=${previouspage}${extra}.html + else + currentpage=${currentpage}.html + previouspage=${previouspage}.html + fi nextpage="" generate_general_page "$previouspage" "$currentpage" "" $addlink ) @@ -510,7 +550,7 @@ function generate_general_page() { else caption="" fi - + $BPGALLERY_PAGE_FUNCTION > "$currentpage" } @@ -570,7 +610,11 @@ if [ $GENERATEPAGESFORMEDIUMSIZE != 0 ]; then fi if [ $GENERATEPAGESFORFULLSIZE != 0 ]; then - generate_pages + if [ $GENERATEPAGESFORMEDIUMSIZE != 0 ]; then + generate_pages __medium + else + generate_pages + fi fi if [ -r description.txt ] ; then @@ -592,7 +636,7 @@ if [ $GENERATEPAGESFORMEDIUMSIZE != 0 ]; then extra=__medium fi -$FINDCOMMAND . $FINDIMAGESOPTIONS | $XARGSCOMMAND -0 -I {} $ECHOCOMMAND {} |$SORTCOMMAND -g | while read filename; do filename=${filename#./}; if [ -r captions.txt ]; then caption=$($GREPCOMMAND -E "^$filename " captions.txt); caption=${caption#* }; else caption=""; fi; if [ $GENERATEPAGESFORFULLSIZE != 0 ]; then link=$(bpgallery_escape_url "${filename}${extra}.html"); else link=$(bpgallery_escape_url "$filename"); fi; filename=$(bpgallery_escape_url "$filename"); $BPGALLERY_THUMBSLINE_FUNCTION; done >> ${INDEXDOCUMENT} +$FINDCOMMAND . $FINDIMAGESOPTIONS | $XARGSCOMMAND -0 -I {} $ECHOCOMMAND {} | $SORTCOMMAND -g | while read filename; do filename=${filename#./}; if [ -r captions.txt ]; then caption=$($GREPCOMMAND -E "^$filename " captions.txt); caption=${caption#* }; else caption=""; fi; if [ $GENERATEPAGESFORMEDIUMSIZE != 0 ]; then link=$(bpgallery_escape_url "${filename}${extra}.html"); elif [ $GENERATEPAGESFORFULLSIZE != 0 ]; then link=$(bpgallery_escape_url "${filename}.html"); else link=$(bpgallery_escape_url "$filename"); fi; filename=$(bpgallery_escape_url "$filename"); $BPGALLERY_THUMBSLINE_FUNCTION; done >> ${INDEXDOCUMENT} $BPGALLERY_TAIL_FUNCTION >> ${INDEXDOCUMENT}