#!/bin/bash ## Cataract Gallery Generator - a simple static web photo gallery ## cgg-dirgen - Directory index.xml generator ## Copyright (C) 2008 Tomas Bzatek ## ## This program is free software; you can redistribute it and/or ## modify it under the terms of the GNU General Public License ## as published by the Free Software Foundation; either version 2 ## of the License, or any later version. ## ## This program is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ## GNU General Public License for more details. ## ## You should have received a copy of the GNU General Public License ## along with this program; if not, write to the Free Software ## Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. ## PREVIEW="no" PREVIEW_PATH="preview" NO_FULLSIZE="no" EXT_THUMB="no" EXT_THUMB_PATH="thumbnails" EXT_EXIF="no" EXT_EXIF_PATH="exif" print_help() { echo "Usage: cgg-dirgen [OPTION...] > index.xml" echo "" echo "Options:" echo " -?, --help Show help options" echo " -d, --preview [dir] Use supplied preview (web page) images" echo " - takes optional [dir] argument (default=\"preview\")" echo " -o, --nofullsize Do not copy original (full size) image" echo " - deprecated, use global tag" echo " -t, --thumbnails [dir] Use supplied thumbnails" echo " - takes optional [dir] argument (default=\"thumbnails\")" echo " -e, --exif [dir] Use external EXIF data (.exv file extension)" echo " - takes optional [dir] argument (default=\"exif\")" } # Gather arguments while [[ $1 = -* ]]; do case "$1" in -d|--preview) PREVIEW="yes" shift if [[ ! $1 == -* && ! "x$1" == "x" ]]; then PREVIEW_PATH="$1" shift fi ;; -o|--nofullsize) NO_FULLSIZE="yes" shift ;; -t|--thumbnails) EXT_THUMB="yes" shift if [[ ! $1 == -* && ! "x$1" == "x" ]]; then EXT_THUMB_PATH="$1" shift fi ;; -e|--exif) EXT_EXIF="yes" shift if [[ ! $1 == -* && ! "x$1" == "x" ]]; then EXT_EXIF_PATH="$1" shift fi ;; -h|--help|-\?) print_help; exit ;; *) echo "Error: Unknown option: $1" >&2 exit 1 ;; esac done # Write index file cat << XML_HEADER_STOP Album ID Album Title ]]> XML_HEADER_STOP for i in `find -L . -maxdepth 1 -type f -iname '*.jpg' -or -iname '*.jpeg' -or -iname '*.gif' -or -iname '*.png' | sort`; do INCL=""; INCL_AFTER=""; if [[ ${PREVIEW} == "yes" ]]; then INCL=" preview=\"${PREVIEW_PATH}/`echo $i | cut -b 3-`\""; fi if [[ ${EXT_THUMB} == "yes" ]]; then INCL+=" thumbnail=\"${EXT_THUMB_PATH}/`echo $i | cut -b 3-`\""; fi if [[ ${NO_FULLSIZE} == "yes" ]]; then INCL+=">\n \n \n"; fi echo -e " \n \n \n${INCL_AFTER} \n"; done cat << XML_FOOTER_STOP XML_FOOTER_STOP