diff options
| author | Paul Buetow (mars.fritz.box) <paul@buetow.org> | 2013-12-29 17:57:36 +0100 |
|---|---|---|
| committer | Paul Buetow (mars.fritz.box) <paul@buetow.org> | 2013-12-29 17:57:36 +0100 |
| commit | 448f785c5fba56ab3e5bf01b05e7827ed4321e6a (patch) | |
| tree | 80ae5a03f1c3ab30fa126677277898c516cb7df3 /src | |
| parent | 9bf8f9ba9f5e957f77a894fb08235e3fe0904646 (diff) | |
theoretically i can include tarballs in photoalbums now
Diffstat (limited to 'src')
| -rw-r--r-- | src/photoalbum.default.conf | 7 | ||||
| -rwxr-xr-x | src/photoalbum.sh (renamed from src/photoalbum) | 90 |
2 files changed, 63 insertions, 34 deletions
diff --git a/src/photoalbum.default.conf b/src/photoalbum.default.conf index 20ac490..3e8cf10 100644 --- a/src/photoalbum.default.conf +++ b/src/photoalbum.default.conf @@ -11,6 +11,13 @@ INCOMING_DIR=$(pwd)/incoming DIST_DIR=$(pwd)/dist TEMPLATE_DIR=/usr/share/photoalbum/templates +# Includes a .tar of the incoming dir in the dist, can be yes or no +declare -r TARBALL_INCLUDE=yes + +# If INCLUDETARBALL=yes, set the Name of the tarball +declare -r TARBALL_SUFFIX=.tar +declare -r TAR_OPTS='-c' + # Some debugging options #set -e #set -x diff --git a/src/photoalbum b/src/photoalbum.sh index 2418463..ffe2bf0 100755 --- a/src/photoalbum +++ b/src/photoalbum.sh @@ -6,48 +6,70 @@ declare -r ARG1="${1}" ; shift declare -r VERSION='PHOTOALBUMVERSION' -function usage () { -cat - <<USAGE >&2 -Usage: +usage () { + cat - <<USAGE >&2 + Usage: $0 [clean|init|version|generate|all] -USAGE + USAGE } -function init () { +init () { for dir in "${INCOMING_DIR}" "${DIST_DIR}/photos" "${DIST_DIR}/thumbs" "${DIST_DIR}/html"; do [ -d "${dir}" ] || mkdir -vp "${dir}" done + + if [ "${TARBALL_INCLUDE}" = yes ]; then + local -r BASE=$(basename "${INCOMING_DIR}") + local -r NOW=$(date +'%Y-%m-%d-%H%M%S') + # New global variable + TARBALL_NAME="${BASE}-${NOW}.${TARBALL_SUFFIX}" + fi } -function clean () { +clean () { echo "Not deleting ${INCOMING_DIR}" [ -d "${DIST_DIR}" ] && rm -Rf "${DIST_DIR}" } -function generate () { - if [ ! -d "${INCOMING_DIR}" ]; then - echo "ERROR: You may run init first, no such directory: ${INCOMING_DIR}" >&2 - exit 1 - fi - if [ ! -d "${DIST_DIR}" ]; then - echo "ERROR: You may run init first, no such directory: ${DIST_DIR}" >&2 - exit 1 - fi - - scale - find "${DIST_DIR}/html" -type f -name \*.html -delete - makedist 1 - template index ../index +tarball () { + # Cleanup tarball from prev run if any + find "${DIST_DIR}" -maxdepth 1 -type f -name \*.tar -delete + + if [ "${TARBALL_INCLUDE}" = yes ]; then + local -r BASE=$(basename "${INCOMING_DIR}") + + echo "Creating tarball ${DIST_DIR}/${TARBALL_NAME} from ${INCOMING_DIR}" + cd $(dirname "${INCOMING_DIR}") + tar $TAR_OPTS -f "${DIST_DIR}/${TARBALL_NAME}" "${BASE}" + cd - &>/dev/null + fi +} + +generate () { + if [ ! -d "${INCOMING_DIR}" ]; then + echo "ERROR: You may run init first, no such directory: ${INCOMING_DIR}" >&2 + exit 1 + fi + if [ ! -d "${DIST_DIR}" ]; then + echo "ERROR: You may run init first, no such directory: ${DIST_DIR}" >&2 + exit 1 + fi + + scale + find "${DIST_DIR}/html" -type f -name \*.html -delete + makedist 1 + template index ../index + tarball } -function template () { +template () { local -r template=${1} ; shift local -r html=${1} ; shift source "${TEMPLATE_DIR}/${template}.tmpl" >> "${DIST_DIR}/html/${html}.html" } -function scale () { +scale () { cd "${INCOMING_DIR}" && find ./ -type f | sort | while read photo; do if [ ! -f "${DIST_DIR}/photos/${photo}" ]; then @@ -65,15 +87,15 @@ function scale () { convert -auto-orient \ -geometry ${GEOMETRY} "${photo}" "${DIST_DIR}/photos/${destphoto}" fi - done +done - echo 'Removing spaces from file names' - find "${DIST_DIR}/photos" -type f -name '* *' | while read file; do - rename 's/ /_/g' "${file}" - done +echo 'Removing spaces from file names' +find "${DIST_DIR}/photos" -type f -name '* *' | while read file; do +rename 's/ /_/g' "${file}" +done } -function makedist () { +makedist () { local num=${1} ; shift local name=page-${num} local -i i=0 @@ -84,29 +106,29 @@ function makedist () { cd "${DIST_DIR}/photos" && find ./ -type f | sort | sed 's;^\./;;' | while read photo; 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 "${DIST_DIR}/thumbs/${photo}" ]; then echo "Creating thumb for ${photo}"; convert -geometry x${THUMBGEOMETRY} "${photo}" \ |
