X-Git-Url: https://git.sommitrealweird.co.uk/bpgallery.git/blobdiff_plain/5da939c907eff9831f8a9140b8589f51b7bbf07a..210d915d4e2f21b063ebd0f3f6d8277b4a331f93:/bpgallery.sh?ds=sidebyside diff --git a/bpgallery.sh b/bpgallery.sh index 4cc7450..ccbb328 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 +396,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,27 +427,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" - fi - generate_resized_images $MEDIUMWIDTH medium } @@ -425,10 +455,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 | \ @@ -437,45 +467,53 @@ function generate_pages() { currentimage=$nextimage nextimage=${imagefilename#./} addlink="" - - if [[ $addlinks == 1 ]]; then - if [[ $GENERATEPAGESFORFULLSIZE != 0 ]]; then + + if [[ $GENERATEPAGESFORFULLSIZE != 0 ]]; then + if [[ $addlinks == 1 ]]; then addlink=${currentimage}.html else - addlink=${currentimage} + addlink=${currentimage}${extra}.html fi + else + addlink=${currentimage} 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 + echo "'$previouspage' '$currentpage' '$nextpage' '$addlink'" >> /tmp/bpgallery-tmp.log + if [ "x$currentpage" != "x" ]; then + generate_general_page "$previouspage" "$currentpage" "$nextpage" $addlink + fi + $ECHOCOMMAND $nextimage done | tail -n 2 | ( read previouspage read currentpage addlink="" - if [[ $addlinks == 1 ]]; then - if [[ $GENERATEPAGESFORFULLSIZE ]]; then + if [[ $GENERATEPAGESFORFULLSIZE != 0 ]]; then + if [[ $addlinks == 1 ]]; then addlink=${currentpage}.html else - addlink=${currentpage} + addlink=${currentpage}${extra}.html fi + else + addlink=${currentpage} fi - if [[ $addlinks == 2 ]]; then - addlink=${nextimage}__medium.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 ) @@ -487,6 +525,8 @@ function generate_medium_pages() { function generate_general_page() { + echo 'Generating the page...' >> /tmp/bpgallery-tmp.log + if [[ -z $1 ]]; then previouspage="" fi @@ -509,7 +549,7 @@ function generate_general_page() { else caption="" fi - + $BPGALLERY_PAGE_FUNCTION > "$currentpage" } @@ -569,7 +609,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 @@ -591,7 +635,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}