X-Git-Url: https://git.sommitrealweird.co.uk/bpgallery.git/blobdiff_plain/5da939c907eff9831f8a9140b8589f51b7bbf07a..6fc8ac07fccba0afb059de263db70787f2f6042c:/bpgallery.sh diff --git a/bpgallery.sh b/bpgallery.sh index 4cc7450..678f896 100755 --- a/bpgallery.sh +++ b/bpgallery.sh @@ -19,7 +19,7 @@ set -f -VERSION="1.1+arch" +VERSION="1.1.1" function bpgallery_default_head() { cat <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 < @@ -293,12 +293,10 @@ if [[ -z $INDEXDOCUMENT ]]; then INDEXDOCUMENT=index.html fi -if [[ $GENERATEPAGESFORFULLSIZE != 0 ]]; then - if declare -F "bpgallery_${BPGALLERY_THEME}_page" > /dev/null ; then - BPGALLERY_PAGE_FUNCTION="bpgallery_${BPGALLERY_THEME}_page" - else - BPGALLERY_PAGE_FUNCTION="bpgallery_default_page" - fi +if declare -F "bpgallery_${BPGALLERY_THEME}_page" > /dev/null ; then + BPGALLERY_PAGE_FUNCTION="bpgallery_${BPGALLERY_THEME}_page" +else + BPGALLERY_PAGE_FUNCTION="bpgallery_default_page" fi if declare -F "bpgallery_${BPGALLERY_THEME}_head" > /dev/null ; then @@ -349,7 +347,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 +395,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 +426,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 +454,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 +466,52 @@ 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
    +		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
     	)
    @@ -505,11 +541,12 @@ function generate_general_page() {
     	fi
     
     	if [ -r captions.txt ]; then
    -		caption=$($GREPCOMMAND -E "^${filename}   " captions.txt); caption=${caption#*    }
    +		imagefilename=${filename##*/}
    +		caption=$($GREPCOMMAND -E "^${imagefilename}	" captions.txt); caption=${caption#*	}
     	else
     		caption=""
     	fi
    -
    +	
     	$BPGALLERY_PAGE_FUNCTION > "$currentpage"
     }
     
    @@ -569,7 +606,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 +632,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}