Mercurial > bins
diff tools/anti_bins @ 0:a84c32f131df 1.1.29
Import vendor version
author | Peter Gervai <grin@grin.hu> |
---|---|
date | Wed, 15 Oct 2008 23:28:56 +0200 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tools/anti_bins Wed Oct 15 23:28:56 2008 +0200 @@ -0,0 +1,99 @@ +#!/bin/sh + +# This program creates a image files tree for each image size from a BINS album. +# Edit the variables in the configuration section and run it. + +# (c) 2003 Jérôme SAUTRET <jerome@sautret.org> +# This script is distributed under GNU GPL. Ask Stallman for details. + +# $Id: anti_bins,v 1.1 2004/05/08 20:02:39 jerome Exp $ + +set -o nounset + +#################################################################### +# Configuration section + +ALBUM="Album" + +# Path of the HTML album directory +HTML_ALBUM="$HOME/Photos/$ALBUM/html" +# Path of the destination images directory +IMAGE_ALBUM="$HOME/Photos/$ALBUM/Images" + +# size names in the image file, +# followed by the names of the directories that will be created for each picture sizes +# separated by a colon +IMAGE_SIZES="Sm:Small Images,Med:Medium Images,Lg:Large Images" +#IMAGE_SIZES="Pt:Petites images,Moy:Images moyennes,Gd:Grandes images" + +# Copy command +COPY="ln -f" # use this to create hard links, works only if source & dest are on same partition +#COPY="ln -sf" # use this to create symbolic links +#COPY="cp -f" # use this to copy images + +# Image extensions +IMAGE_TYPES="jpg|png" + +# Set this to 1 when configuration is done. +CONFIGURATION_IS_OK=0 + +# End of configuration section +##################################################################### + +ls --ignore-backups --file-type >/dev/null 2>/dev/null +if [ $? != 0 ] ; then + echo "This program runs only with a 'ls' supporting the '--file-type' option" + echo "Install GNU ls or send me a patch..." + exit 2 +fi + +if [[ $CONFIGURATION_IS_OK == 0 ]] ; then + echo "Edit this script to set configuration variables." + exit 1 +fi + +IMAGE_SIZES="$IMAGE_SIZES," +SIZES="`echo "$IMAGE_SIZES" | sed "s/\([^:]*\):[^,]*,/\1 /g"`" + +size_name() +{ + echo "$IMAGE_SIZES" | sed "s/^.*$1:\([^,]*\),.*$/\1/" +} + +copy_dir() +{ + local SOURCE DEST F + SOURCE="$1" + DEST="$2" + + echo "Traitement du répertoire $1" + + cd "$SOURCE" + for SIZE in $SIZES + do + SIZE_NAME="`size_name $SIZE`" + mkdir -p "$IMAGE_ALBUM/$SIZE_NAME/$DEST" >/dev/null + for F in `ls --ignore-backups|grep -E "_$SIZE.($IMAGE_TYPES)$"` + do + DEST_FILE="`echo "$F" | sed "s/_$SIZE\\././"`" + DEST_FILE="$IMAGE_ALBUM/$SIZE_NAME/$DEST$DEST_FILE" + if [ ! -f "$DEST_FILE" ] ; then + echo "copie de" "$SOURCE$F" vers "$DEST_FILE" + $COPY "$SOURCE$F" "$DEST_FILE" + fi + done + done + for F in `ls --ignore-backups --file-type | grep "/$"` + do + # Decode URL + DEST_DIR="`echo "$F"|sed 's/%\([A-F0-9][A-F0-9]\)/\\\\x\\1/g'`" + DEST_DIR="`printf "$DEST_DIR"`" + # _ to spaces + DEST_DIR=`echo "$DEST_DIR"|sed 's/_/ /g'` + copy_dir "$SOURCE$F" "$DEST$DEST_DIR" + done + # Remove dir if empty + rmdir "$IMAGE_ALBUM/"*"/$DEST" 2>/dev/null +} + +copy_dir "$HTML_ALBUM/" ./