Mercurial > genwebgallery
view genwebgallery @ 23:7f3cea97b789
"copyright notice" is known as "footer text" now
author | meillo@marmaro.de |
---|---|
date | Mon, 12 May 2008 12:37:14 +0200 |
parents | 84c08287caa1 |
children | 572f219cf0f4 |
line wrap: on
line source
#!/bin/sh # # generates a web gallery # requires: ImageMagick (convert) # # meillo@marmaro.de # PROGRAM=genwebgallery VERSION=0.5 verbose="no" targetDir="webgallery" overwrite="no" index="index.html" sizePic=800 sizeThumb=150 galleryTitle="" footer="" checkCreateDir() { remove="no" if [ -e "$targetDir" ] ; then if [ "$overwrite" = "no" ] ; then echo "output directory '$targetDir' already exists." printf "remove it? [y/n] " read remove fi if [ "$remove" = "y" -o "$overwrite" = "yes" ] ; then echo "removing '$targetDir' ..." rm -r "$targetDir" if [ $? -ne 0 ] ; then echo "ABORT" exit 4 fi else echo "keep output directory" echo "ABORT" exit 3 fi fi mkdir -p "$targetDir" } insertHeader() { echo " <?xml version=\"1.0\" encoding=\"utf-8\"?> <!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.1//EN\" \"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd\"> <html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\"> <head> <title>$titleName</title> <meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" /> <meta name=\"Generator\" content=\"genwebgallery - http://prog.marmaro.de/genwebgallery\" /> </head> <body> " } insertFooter() { echo " </body> </html> " } log() { if [ $verbose = "yes" ] ; then echo "$1"; fi } checkConvert() { log "checking convert installation" if [ ! `command -v convert` ] ; then echo "Can not find 'convert' (package imagemagick)" echo "ABORT" exit 2 fi log "convert found:" log "`convert -version`" } usage() { echo "usage: $PROGRAM [OPTIONS] PICTURES" exit 1 } help() { echo "$PROGRAM generates a web gallery consisting of html pages usage: $PROGRAM [OPTIONS] PICTURES options: --version print program version --help display this output -v be verbose ($verbose) -o DIR folder where generated files go to ($targetDir) -i FILE the name of the index file ($index) -t TEXT title of the gallery ($galleryTitle) -f TEXT footer text ($footer) -ps PIXELS size of the pictures ($sizePic) -ts PIXELS size of the thumbnails ($sizeThumb) --overwrite overwrite output directory ($overwrite) for more information see man page: $PROGRAM(1) author: meillo@marmaro.de homepage: http://prog.marmaro.de/genwebgallery " exit 0 } # option processing while [ "$#" -ge 1 ] && [ `echo "$1" | awk '{print substr($0,1,1)}'` = '-' ] ; do case $1 in '--version') echo "$PROGRAM version $VERSION" exit 0 ;; '--help') help ;; '-v' | '--verbose') verbose="yes" shift ;; '-o' | '--output') targetDir="$2" shift shift ;; '-i' | '--index') index=$2 shift shift ;; '-t' | '--title') galleryTitle="$2" shift shift ;; '-f' | '--footer') footer=$2 shift shift ;; '-ps' | '--pic-size') sizePic=$2 shift shift ;; '-ts' | '--thumb-size') sizeThumb=$2 shift shift ;; '--overwrite') overwrite="yes" shift ;; *) echo "invalid option: $1" echo "see: $PROGRAM --help" exit 1 esac done if [ $# -eq 0 ] ; then usage fi # verbose output log "verbose: $verbose" log log "output dir: $targetDir" log "index file: $index" log "gallery title: $galleryTitle" log "footer text: $footer" log "picture size: ${sizePic}px" log "thumbnail size: ${sizeThumb}px" log "overwrite output dir: $overwrite" log checkConvert log # generate web gallery checkCreateDir echo `insertHeader` > "$targetDir/$index" if [ "$galleryTitle" != "" ] ; then echo "<h1>$galleryTitle</h1>" >> "$targetDir/$index" fi for i in "$@" ; do file="`basename $i`" targetFile="$targetDir/$file.htm" log "processing file: $file" # generate pic page echo `insertHeader` > "$targetFile" if [ "$galleryTitle" != "" ] ; then echo "<h1>$galleryTitle</h1>" >> "$targetFile" fi echo "<p><a href=\"$index\"><img src=\"$file\" alt=\"$file\" /></a></p>" >> "$targetFile" if [ "$footer" != "" ] ; then echo "<p>$footer</p>" >> "$targetFile" fi echo `insertFooter` >> "$targetFile" # copy and resize pics convert "$i" -resize ${sizePic}x${sizePic} "$targetDir/$file" convert "$i" -resize ${sizeThumb}x${sizeThumb} "$targetDir/_$file" # generate content for index file echo " <a href=\"$file.htm\"><img src=\"_$file\" alt=\"$file\" /></a>" >> "$targetDir/$index" done if [ "$footer" != "" ] ; then echo "<p>$footer</p>" >> "$targetDir/$index" fi echo `insertFooter` >> "$targetDir/$index"