summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorPaul Buetow (mars.fritz.box) <paul@buetow.org>2013-12-29 17:57:36 +0100
committerPaul Buetow (mars.fritz.box) <paul@buetow.org>2013-12-29 17:57:36 +0100
commit448f785c5fba56ab3e5bf01b05e7827ed4321e6a (patch)
tree80ae5a03f1c3ab30fa126677277898c516cb7df3 /src
parent9bf8f9ba9f5e957f77a894fb08235e3fe0904646 (diff)
theoretically i can include tarballs in photoalbums now
Diffstat (limited to 'src')
-rw-r--r--src/photoalbum.default.conf7
-rwxr-xr-xsrc/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}" \