Mercurial > bins
comparison 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 |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:a84c32f131df |
---|---|
1 #!/bin/sh | |
2 | |
3 # This program creates a image files tree for each image size from a BINS album. | |
4 # Edit the variables in the configuration section and run it. | |
5 | |
6 # (c) 2003 Jérôme SAUTRET <jerome@sautret.org> | |
7 # This script is distributed under GNU GPL. Ask Stallman for details. | |
8 | |
9 # $Id: anti_bins,v 1.1 2004/05/08 20:02:39 jerome Exp $ | |
10 | |
11 set -o nounset | |
12 | |
13 #################################################################### | |
14 # Configuration section | |
15 | |
16 ALBUM="Album" | |
17 | |
18 # Path of the HTML album directory | |
19 HTML_ALBUM="$HOME/Photos/$ALBUM/html" | |
20 # Path of the destination images directory | |
21 IMAGE_ALBUM="$HOME/Photos/$ALBUM/Images" | |
22 | |
23 # size names in the image file, | |
24 # followed by the names of the directories that will be created for each picture sizes | |
25 # separated by a colon | |
26 IMAGE_SIZES="Sm:Small Images,Med:Medium Images,Lg:Large Images" | |
27 #IMAGE_SIZES="Pt:Petites images,Moy:Images moyennes,Gd:Grandes images" | |
28 | |
29 # Copy command | |
30 COPY="ln -f" # use this to create hard links, works only if source & dest are on same partition | |
31 #COPY="ln -sf" # use this to create symbolic links | |
32 #COPY="cp -f" # use this to copy images | |
33 | |
34 # Image extensions | |
35 IMAGE_TYPES="jpg|png" | |
36 | |
37 # Set this to 1 when configuration is done. | |
38 CONFIGURATION_IS_OK=0 | |
39 | |
40 # End of configuration section | |
41 ##################################################################### | |
42 | |
43 ls --ignore-backups --file-type >/dev/null 2>/dev/null | |
44 if [ $? != 0 ] ; then | |
45 echo "This program runs only with a 'ls' supporting the '--file-type' option" | |
46 echo "Install GNU ls or send me a patch..." | |
47 exit 2 | |
48 fi | |
49 | |
50 if [[ $CONFIGURATION_IS_OK == 0 ]] ; then | |
51 echo "Edit this script to set configuration variables." | |
52 exit 1 | |
53 fi | |
54 | |
55 IMAGE_SIZES="$IMAGE_SIZES," | |
56 SIZES="`echo "$IMAGE_SIZES" | sed "s/\([^:]*\):[^,]*,/\1 /g"`" | |
57 | |
58 size_name() | |
59 { | |
60 echo "$IMAGE_SIZES" | sed "s/^.*$1:\([^,]*\),.*$/\1/" | |
61 } | |
62 | |
63 copy_dir() | |
64 { | |
65 local SOURCE DEST F | |
66 SOURCE="$1" | |
67 DEST="$2" | |
68 | |
69 echo "Traitement du répertoire $1" | |
70 | |
71 cd "$SOURCE" | |
72 for SIZE in $SIZES | |
73 do | |
74 SIZE_NAME="`size_name $SIZE`" | |
75 mkdir -p "$IMAGE_ALBUM/$SIZE_NAME/$DEST" >/dev/null | |
76 for F in `ls --ignore-backups|grep -E "_$SIZE.($IMAGE_TYPES)$"` | |
77 do | |
78 DEST_FILE="`echo "$F" | sed "s/_$SIZE\\././"`" | |
79 DEST_FILE="$IMAGE_ALBUM/$SIZE_NAME/$DEST$DEST_FILE" | |
80 if [ ! -f "$DEST_FILE" ] ; then | |
81 echo "copie de" "$SOURCE$F" vers "$DEST_FILE" | |
82 $COPY "$SOURCE$F" "$DEST_FILE" | |
83 fi | |
84 done | |
85 done | |
86 for F in `ls --ignore-backups --file-type | grep "/$"` | |
87 do | |
88 # Decode URL | |
89 DEST_DIR="`echo "$F"|sed 's/%\([A-F0-9][A-F0-9]\)/\\\\x\\1/g'`" | |
90 DEST_DIR="`printf "$DEST_DIR"`" | |
91 # _ to spaces | |
92 DEST_DIR=`echo "$DEST_DIR"|sed 's/_/ /g'` | |
93 copy_dir "$SOURCE$F" "$DEST$DEST_DIR" | |
94 done | |
95 # Remove dir if empty | |
96 rmdir "$IMAGE_ALBUM/"*"/$DEST" 2>/dev/null | |
97 } | |
98 | |
99 copy_dir "$HTML_ALBUM/" ./ |