From 5207b33c23b0f42288bc6d1ff1b16960bdbf3d1f Mon Sep 17 00:00:00 2001
From: Brett Parker <arch@sommitrealweird.co.uk>
Date: Mon, 14 May 2007 17:11:11 +0000
Subject: [PATCH] Add ability to generate pages in a seperate directory

If PAGESDIRECTORY is set, write all pages except the index in to that directory

To accomodate this, filename in the generate page is automatically set to the right path, for anything else (e.g. linked stylesheets, or the stylesheet generated by bpgallery, use ${BASEURL} infront of the filename and it'll automatically get ../ when required.)

Also adds a (not very good) changelog - will improve that later!

git-archimport-id: arch@sommitrealweird.co.uk--2005-desktop/bpgallery--mainline--1.1--patch-10
---
 ChangeLog    | 123 +++++++++++++++++++++++++++++++++++++++++++++++++++
 bpgallery.sh |  48 ++++++++++++++++----
 2 files changed, 163 insertions(+), 8 deletions(-)
 create mode 100644 ChangeLog

diff --git a/ChangeLog b/ChangeLog
new file mode 100644
index 0000000..48c7caf
--- /dev/null
+++ b/ChangeLog
@@ -0,0 +1,123 @@
+2007-05-14 18:09:30 GMT Brett Parker <iDunno@sommitrealweird.co.uk>
+    Add in pages directory support through PAGESDIRECTORY variable
+    Up'd version number to be +arch as this is still in development
+
+2007-05-14 00:29:30 GMT	Brett Parker <arch@sommitrealweird.co.uk>	patch-9
+
+    Summary:
+      Up version for release
+    Revision:
+      bpgallery--mainline--1.1--patch-9
+
+    Up version number for release
+    
+
+    modified files:
+     bpgallery.sh
+
+
+2007-05-14 00:28:15 GMT	Brett Parker <arch@sommitrealweird.co.uk>	patch-8
+
+    Summary:
+      Fix caption generation code
+    Revision:
+      bpgallery--mainline--1.1--patch-8
+
+    * Fixes captions
+    * Removes silly logging
+
+    modified files:
+     bpgallery.sh
+
+
+2007-05-13 10:53:09 GMT	Brett Parker <arch@sommitrealweird.co.uk>	patch-7
+
+    Summary:
+      Update version number for release
+    Revision:
+      bpgallery--mainline--1.1--patch-7
+
+    Update version number for release
+
+    modified files:
+     bpgallery.sh
+
+
+2007-05-13 10:28:17 GMT	Brett Parker <arch@sommitrealweird.co.uk>	patch-6
+
+    Summary:
+      Fix medium sized page generation
+    Revision:
+      bpgallery--mainline--1.1--patch-6
+
+    Declare the function even if we're not generating fullsize pages.
+
+    modified files:
+     TODO bpgallery.sh
+
+
+2007-05-13 09:15:20 GMT	Brett Parker <arch@sommitrealweird.co.uk>	patch-5
+
+    Summary:
+      Fix index page generation code
+    Revision:
+      bpgallery--mainline--1.1--patch-5
+
+
+    modified files:
+     TODO bpgallery.sh
+
+
+2007-05-12 14:20:31 GMT	Brett Parker <arch@sommitrealweird.co.uk>	patch-4
+
+    Summary:
+      Update TODO list
+    Revision:
+      bpgallery--mainline--1.1--patch-4
+
+    Update TODO list and remove things that are already done.
+
+    modified files:
+     TODO
+
+
+2007-05-12 14:11:14 GMT	Brett Parker <arch@sommitrealweird.co.uk>	patch-3
+
+    Summary:
+      Exit on failure of being able to write medium sized images
+    Revision:
+      bpgallery--mainline--1.1--patch-3
+
+    * Exit on failure of being able to write medium sized images
+    * Fix up README to contain the new variables for medium sized images
+    
+
+    modified files:
+     README bpgallery.sh
+
+
+2006-06-12 19:09:07 GMT	Brett Parker <arch@sommitrealweird.co.uk>	patch-2
+
+    Summary:
+      Fix xargs for a BSD environment
+    Revision:
+      bpgallery--mainline--1.1--patch-2
+
+    Change --replace to -I {} so that the xargs commands work in a BSD environment.
+    
+
+    modified files:
+     bpgallery.sh
+
+
+2006-05-22 19:20:34 GMT	Brett Parker <arch@sommitrealweird.co.uk>	patch-1
+
+    Summary:
+      Preliminary addition of Medium Sized images and pages
+    Revision:
+      bpgallery--mainline--1.1--patch-1
+
+    * First draft attempt at medium sized images and the pages to go with it.
+
+    modified files:
+     bpgallery.sh
diff --git a/bpgallery.sh b/bpgallery.sh
index 678f896..e532c68 100755
--- a/bpgallery.sh
+++ b/bpgallery.sh
@@ -19,7 +19,7 @@
 
 set -f
 
-VERSION="1.1.1"
+VERSION="1.1.1+arch"
 
 function bpgallery_default_head() {
 cat <<END
@@ -28,7 +28,7 @@ cat <<END
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
 <head>
 	<title>${TITLE}</title>
-	<link rel="stylesheet" href="style.css" type="text/css" />
+	<link rel="stylesheet" href="${BASEURL}style.css" type="text/css" />
 </head>
 <body>
 END
@@ -133,7 +133,7 @@ function bpgallery_default_page() {
 <h1>${caption}</h1>
 <div class="navigation">
 	<ul>
-		<li><a href='${INDEXDOCUMENT}'>Thumbnails</a></li>
+		<li><a href='${BASEURL}${INDEXDOCUMENT}'>Thumbnails</a></li>
 END
 	if [[ ! -z $previouspage ]]; then
 		$ECHOCOMMAND "<li><a href='${previouspage}'>Previous</a></li>"
@@ -285,6 +285,15 @@ if [[ -z $GENERATEPAGESFORMEDIUMSIZE ]]; then
 	GENERATEPAGESFORMEDIUMSIZE=1
 fi
 
+if [[ -z $PAGESDIRECTORY ]]; then
+	PAGESDIRECTORY=""
+else
+	temp=${PAGESDIRECTORY:${#PAGESDIRECTORY}-1:1}
+	if [[ "x$temp" != "x/" ]] && [[ "x$temp" != "x\\" ]]; then
+		PAGESDIRECTORY=${PAGESDIRECTORY}/
+	fi
+fi
+
 if [[ -z $MEDIUMWIDTH ]]; then
 	MEDIUMWIDTH=400
 fi
@@ -484,7 +493,12 @@ function generate_pages() {
 		else
 			nextpage=${nextimage}.html
 		fi
-		filename=${extradir}${currentimage}
+
+		if [[ "x$PAGESDIRECTORY" != "x" ]]; then
+			filename=../${extradir}${currentimage}
+		else
+			filename=${extradir}${currentimage}
+		fi
 		if [ "x$currentpage" != "x" ]; then
 			generate_general_page "$previouspage" "$currentpage" "$nextpage" $addlink
 		fi
@@ -503,8 +517,12 @@ function generate_pages() {
 		else
 			addlink=${currentpage}
 		fi
-
-		filename=${extradir}${currentpage}
+		
+		if [[ "x$PAGESDIRECTORY" != "x" ]]; then
+			filename=../${extradir}${currentpage}
+		else
+			filename=${extradir}${currentpage}
+		fi
 		if [[ $addlinks == 1 ]]; then
 			currentpage=${currentpage}${extra}.html
 			previouspage=${previouspage}${extra}.html
@@ -547,7 +565,7 @@ function generate_general_page() {
 		caption=""
 	fi
 	
-	$BPGALLERY_PAGE_FUNCTION > "$currentpage"
+	$BPGALLERY_PAGE_FUNCTION > "${PAGESDIRECTORY}$currentpage"
 }
 
 if [[ $OUTPUTHTML != 0 ]]; then
@@ -600,6 +618,19 @@ fi
 
 generate_thumbs
 
+if [[ "x$PAGESDIRECTORY" != "x" ]]; then
+	if [ ! -d $PAGESDIRECTORY ]; then
+		mkdir -p $PAGESDIRECTORY
+	fi
+
+	if [ ! -w $PAGESDIRECTORY ]; then
+		$ECHOCOMMAND "Can't write to $PAGESDIRECTORY directory, exiting"
+		exit 16
+	fi
+
+	BASEURL="../"
+fi
+
 if [ $GENERATEPAGESFORMEDIUMSIZE != 0 ]; then
 	generate_medium
 	generate_medium_pages
@@ -619,6 +650,7 @@ else
 	DESCRIPTION=""
 fi
 
+BASEURL=""
 
 $ECHOCOMMAND "Starting to generate page"
 
@@ -632,7 +664,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 [ $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}
+$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=${PAGESDIRECTORY}$(bpgallery_escape_url "${filename}${extra}.html"); elif [ $GENERATEPAGESFORFULLSIZE != 0 ]; then link=${PAGESDIRECTORY}$(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.39.5