summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Buetow (mars.fritz.box) <paul@buetow.org>2013-12-22 11:51:37 +0100
committerPaul Buetow (mars.fritz.box) <paul@buetow.org>2013-12-22 11:51:37 +0100
commitc16001b2d91006a576d8a91e16aa52d72f208ca1 (patch)
tree4240927020ef2a6a33903ac8bf79520a87d3f489
parent4f4c64c15fed606a74cd6abaa7d04f60c39576ea (diff)
add photoalbum.conf
-rw-r--r--README4
-rwxr-xr-xgenerate_album.sh161
-rw-r--r--photoalbum.conf9
3 files changed, 90 insertions, 84 deletions
diff --git a/README b/README
index 9106855..6453ea2 100644
--- a/README
+++ b/README
@@ -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