#!/bin/sh # Mise a jour des photos ... # -------------------------- # Script de mise a jour d'un site comptenant des photos. # (c) 2002 - Nicolas Le Scouarnec - nlsn+site@free.fr - http://nlsn.free.fr # Principe: # --------- # Il utilise ImageMagick et genethumb (un script de Samuel Hocevar) # il inclut un système de gestion des mot de passes (apache), a partir d'une # base de donnée et d'un fichier de mot de passe. # Format des fichiers: # -------------------- # Le fichier de mot de passe est: .pass/all (man htpasswd pour le créer) # (le dossier .pass doit etre protégé par un .htacess) # La base de donnée (.protect) a la forme: ##Indicateur Dossiers Utilisateurs # a Anniversaires/anniv_emilie_2002 marie emilie nlsn remi pjbou # b Anniversaires/anniv_marie_2002 marie emilie nlsn guillaume # c Anniversaires/anniv_nico_2002 marie emilie nlsn guillaume # d FHM helene remi jon nlsn # e Foobar marie emilie nlsn guillaume # j . helene nlsn remi ... (tous le monde) # Config: Dossier racine du site (racine dans apache). dbase=/home/nlsn/docs/photos_site cd $dbase mv -f .new .old # Mise a jour des mots de passe ( BDD: .protect ) while read id dossier users do echo "Création de la base de mot de passe de $dossier" cat > $dbase/$dossier/.htaccess < $dbase/.pass/$id # Création du fichier de mots de passe spécifique au dossier echo $users|tr ' ' '\n' |while read user do grep $user $dbase/.pass/all >> $dbase/.pass/$id done done < .protect # Liste les dossiers ne contenant pas de .htaccess echo Dossiers non protégés: find ./ -type d -maxdepth 1|while read d do cd $dbase if [ ! -e $d/.htaccess ] then echo $d n\'est pas protégé fi done # Création de la liste des répertoires. cd $dbase find ./ -name "*.jpg"|grep -v xvpics|sed 's,\(^.*\)/.*.jpg,\1,g'|uniq|grep -v "^.$" > .new # Passage de mogrify sur les nouveaux repertoires... # Amélioration: se baser sur une liste de fichiers plutot que des dossiers diff .old .new|grep ">"|sed "s/> //g"|while read i do cd $dbase cd $i if [ ! -e .log.mogrify ] then echo Mogrification de $i ... mogrify -size 700x700 -quality 95 -resize 700x700 *.jpg && echo Mogrification de $i achevée echo "Mogrifie: *" > .log.mogrify fi done # Mise a jour des thumbnails # Utilise Genethumb (cf http://sam.zoy.org) while read i do cd $dbase cd $i genethumb.sh > .log.genethumb 2>&1 && echo "Genethumb correctement effectué dans $i" done < .new