From 77556ba866fa3f51a4ae229f92f853c3242d4533 Mon Sep 17 00:00:00 2001 From: Brett Parker Date: Sun, 13 May 2007 09:15:20 +0000 Subject: [PATCH] Fix index page generation code git-archimport-id: arch@sommitrealweird.co.uk--2005-desktop/bpgallery--mainline--1.1--patch-5 --- TODO | 1 + bpgallery.sh | 142 +++++++++++++++++++++++++++++++++------------------ 2 files changed, 94 insertions(+), 49 deletions(-) diff --git a/TODO b/TODO index 8f68901..e03eb45 100644 --- a/TODO +++ b/TODO @@ -1,3 +1,4 @@ +* Generate medium sized pages correctly when not generating full size pages. * Allow a fixed height to be specified instead or as well as a fixed width, in the latter case, resize to which ever fits the bounding box, but keep the aspect ratio. 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() {
  • Thumbnails
  • END if [[ ! -z $previouspage ]]; then - echo "
  • Previous
  • " + $ECHOCOMMAND "
  • Previous
  • " else - echo "
  • Previous
  • " + $ECHOCOMMAND "
  • Previous
  • " fi if [[ ! -z $nextpage ]]; then - echo "
  • Next
  • " + $ECHOCOMMAND "
  • Next
  • " else - echo "
  • Next
  • " + $ECHOCOMMAND "
  • Next
  • " fi cat < @@ -349,7 +350,39 @@ Usage: displays this help screen --version displays the version and exits - + +This can also takes some environment variables, these will use defaults if not +set. + + TITLE + the title of the gallery + + WIDTH + the width to make the icons + + MEDIUMWIDTH + set the width of images in the medium size pages + + BPGALLERY_THEME + set the theme to use (described below) + + BPGALLERY_THEME_DIR + set an extra location to look for themes + + OUTPUTHTML + sets the script output to be wrapped in a
     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}
     
    -- 
    2.30.2