#! /bin/sh
# Filename: imggallery.sh, html_pict_000_DIR.sh
# Version: 0.71
# Date: Thu Feb 12 21:21:28 PST 2009 (ardchoille)
# Date: Thu Oct 28 02:13:33 MSD 2010 (t-IX)
# Author: Ian MacGregor (aka ardchoille), t-IX
# License: GPL
# This script creates a web gallery from specified images (XHTML 1.0 Strict)
# !!! Usage: sh /path_to_script/html_pict.sh /path_to_picts/ !!!
DIR=$1 ;
##велосипед, убирающий "/" в конце
if [ -z "$1" ]; then "$DIR"=`pwd`;
else
TEMP=`pwd`;
cd "$DIR"; TEMP2=`pwd`;
cd "$TEMP";
DIR="$TEMP2";
echo "$TEMP2";
fi;
##remove_uppercase.[Pp][Nn][Gg].[Jj][Pp][Gg]
for i in "$DIR"/*.[Pp][Nn][Gg]; do
mv "$i" "${i/%.[Pp][Nn][Gg]/.png}";
done ;
for i in "$DIR"/*.[Jj][Pp][Gg]; do
mv "$i" "${i/%.[Jj][Pp][Gg]/.jpg}";
done ;
##find_files
for i in "$DIR"/* ; do
a=`file "$i"`;
if [[ $a =~ 'PNG' ]] ; then
echo "PNG!!! $a" ;
P=*.png ;
elif [[ $a =~ 'JPEG' ]] ; then
echo "JPEG!!! $a" ;
J=*.jpg ;
fi ;
done ;
#P=*.bmp ;
##remove_spaces_&
(cd "$DIR" &&
# Ищем объекты файлового типа
# Список объектов, удовлетворяющий критериям, итерационно обрабатывается циклом # WHILE: в текущем имени файл ищется пробел ([:space:] согласно стандарту POSIX)
#find $DIR -type f | while read file; do
# Ищем пробел в имени файла с помощью регулярного выражения
# if [[ "$file" = *[[:space:]]* ]]; then
# И заменяем его на нижнее подчеркивание
# mv "$file" `echo $file | tr ' ' '_'`
# fi;
# Конец цикла
#done ;
for i in $P $J; do
mv "$i" `echo $i | tr ' ' '_'`;
done ;
for i in $P $J; do
mv "$i" `echo $i | tr '&' 'n'`;
done ) ;
##creates_directory_for_thumbnails_and_move_files
mkdir "$DIR"/thumbs
#mv thumb_* thumbs
DIRNAME=$(cd "$DIR" && echo "${PWD##*/}") ;
HTMLNAME="$DIR"/000_folder.html ;
##generate_html
echo " $HTMLNAME
echo "\$dir_folder = \"$DIRNAME\";" >> $HTMLNAME
echo "include \"/var/www/your-domain.com/script/mg_nano.php\";" >> $HTMLNAME
echo "?>" >> $HTMLNAME
##creating_thumbnails
(cd "$DIR" &&
for img in $J $P ; do
chmod 644 $img
convert -auto-orient -resize '350x300' -quality 97% -strip $img thumbs/thumb_$img
echo "$img successfully resized";
done ) ;
##_for_gif
#(cd "$DIR" &&
#for img in *.gif *.GIF ; do
# convert -coalesce $img gif_$img
# convert -scale 350x300 gif_$img thumbs/thumb_$img
# echo "$img successfully resized";
#done ) ;