#! /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 ) ;