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/" ./