diff options
| author | Paul Buetow (mars.fritz.box) <paul@buetow.org> | 2013-12-22 11:51:37 +0100 |
|---|---|---|
| committer | Paul Buetow (mars.fritz.box) <paul@buetow.org> | 2013-12-22 11:51:37 +0100 |
| commit | c16001b2d91006a576d8a91e16aa52d72f208ca1 (patch) | |
| tree | 4240927020ef2a6a33903ac8bf79520a87d3f489 | |
| parent | 4f4c64c15fed606a74cd6abaa7d04f60c39576ea (diff) | |
add photoalbum.conf
| -rw-r--r-- | README | 4 | ||||
| -rwxr-xr-x | generate_album.sh | 161 | ||||
| -rw-r--r-- | photoalbum.conf | 9 |
3 files changed, 90 insertions, 84 deletions
@@ -12,9 +12,11 @@ photoalbum is a minimal bash script for linux to generate static web photo album * Copy all images wanted to ./incoming +* Edit photoalbum.conf + * Run "make" -* Open index.html +* Distribute the ./dist directory 03. CONFIGURATION diff --git a/generate_album.sh b/generate_album.sh index ce5d00b..6265304 100755 --- a/generate_album.sh +++ b/generate_album.sh @@ -1,22 +1,17 @@ #!/bin/bash # Small quick n dirty photo album script -# 2011 (c) Dipl.-Inform (FH) Paul Buetow +# 2011, 2013 Paul Buetow -declare -i THUMBGEOMETRY=250 -declare -i GEOMETRY=800 -declare -i MAXPREVIEWS=100 +source photoalbum.conf -declare -r TITLE='Picture gallery' -declare -r INCOMING=./incoming - -createdirs () { +function createdirs () { for dir in photos thumbs html; do [ -d $dir ] || mkdir -vp $dir done } -template () { +function template () { local -r template=$1 local -r html=$2 @@ -27,18 +22,18 @@ template () { fi } -scale () { +function scale () { cd $INCOMING && find ./ -iname \*.jpg | sort | while read jpg; do - if [ ! -f ../photos/$jpg ]; then - echo Scaling $jpg + if [ ! -f "../photos/$jpg" ]; then + echo "Scaling $jpg" convert -auto-orient \ - -geometry $GEOMETRY $jpg ../photos/$jpg; + -geometry $GEOMETRY "$jpg" "../photos/$jpg;" fi -done -cd .. + done + cd .. } -generate () { +function generate () { local num=$1 local name=page-${num} local -i i=0 @@ -46,70 +41,70 @@ generate () { template header $name template header-first-add $name - cd photos && find ./ -iname \*.jpg | sort | sed 's;^\./;;' | \ - while read jpg; do - - (( i++ )) - - if [ $i -gt $MAXPREVIEWS ]; then - i=1 - (( num++ )) - - next=page-${num} - template next $name - template footer $name - - prev=$name - name=$next - template header $name - template prev $name - fi - - # Preview page - template preview $name - - # View page - template header ${num}-${i} - template view ${num}-${i} - template footer ${num}-${i} - - if [ ! -f ../thumbs/$jpg ]; then - echo Creating thumb for $jpg; - convert -geometry x$THUMBGEOMETRY $jpg \ - ../thumbs/$jpg - fi - done - cd .. - - template footer $(cd html;ls -t page-*.html | head -n 1 | sed 's/.html//') - - ls html/*.html | grep -v page- | cut -d'-' -f1 | uniq | \ - while read prefix; do - - declare page=$(ls -t ${prefix}-*.html | \ - head -n 1 | sed 's#html/\(.*\)-.*.html#\1#') - declare lastview=$(ls -t ${prefix}-*.html | \ - head -n 1 | sed 's/.*-\(.*\).html/\1/') - declare prevredirect=${page}-0 - declare nextredirect=${page}-$((lastview+1)) - - redirectpage=$(( page-1 ))-$MAXPREVIEWS - template redirect $prevredirect - - if [ $lastview -eq $MAXPREVIEWS ]; then - redirectpage=$(( page+1 ))-1 - else - redirectpage=${page}-${lastview} - template redirect 0-$MAXPREVIEWS - - redirectpage=1-1 - fi - - template redirect $nextredirect - done - } - - createdirs - scale - rm html/*.html 2>/dev/null - generate 1 + cd photos && find ./ -iname \*.jpg | sort | sed 's;^\./;;' | + while read jpg; do + + (( i++ )) + + if [ $i -gt $MAXPREVIEWS ]; then + i=1 + (( num++ )) + + next=page-${num} + template next $name + template footer $name + + prev=$name + name=$next + template header $name + template prev $name + fi + + # Preview page + template preview $name + + # View page + template header ${num}-${i} + template view ${num}-${i} + template footer ${num}-${i} + + if [ ! -f "../thumbs/$jpg" ]; then + echo "Creating thumb for $jpg"; + convert -geometry x$THUMBGEOMETRY "$jpg" \ + "../thumbs/$jpg" + fi + done + cd .. + + template footer $(cd html;ls -t page-*.html | head -n 1 | sed 's/.html//') + + ls html/*.html | grep -v page- | cut -d'-' -f1 | uniq | + while read prefix; do + + declare page=$(ls -t ${prefix}-*.html | \ + head -n 1 | sed 's#html/\(.*\)-.*.html#\1#') + declare lastview=$(ls -t ${prefix}-*.html | \ + head -n 1 | sed 's/.*-\(.*\).html/\1/') + declare prevredirect=${page}-0 + declare nextredirect=${page}-$((lastview+1)) + + redirectpage=$(( page-1 ))-$MAXPREVIEWS + template redirect $prevredirect + + if [ $lastview -eq $MAXPREVIEWS ]; then + redirectpage=$(( page+1 ))-1 + else + redirectpage=${page}-${lastview} + template redirect 0-$MAXPREVIEWS + + redirectpage=1-1 + fi + + template redirect $nextredirect + done +} + +createdirs +scale +bash -c 'rm html/*.html; exit 0' &>/dev/null +generate 1 diff --git a/photoalbum.conf b/photoalbum.conf new file mode 100644 index 0000000..e80e5d6 --- /dev/null +++ b/photoalbum.conf @@ -0,0 +1,9 @@ +set -e +set -x + +declare -i THUMBGEOMETRY=250 +declare -i GEOMETRY=800 +declare -i MAXPREVIEWS=100 + +declare -r TITLE='A simple Photoalbum' +declare -r INCOMING=./incoming |
