1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136
|
#!/bin/bash
if [ -z $2 ] && [ -z $3 ] #Si les paramètres 2 et 3 n'existent pas, on les initialise utomatiquement
then
hauteur=200
largeur=200
fi
if [ -n $2 ] #Si le paramètre 2 existe
then
if [ "$2" = "none" ] #Si $2 vaut none
then
if ! let $3 #Si $3 n'est pas un entier on le signal et on quitte
then
echo $3 non invalide, $3 doit être un entier. Pour plus d"'"information taper '"'galerie.sh \man'"'
exit 1
else #sinon on initialise largeur
largeur=$3
fi
hauteur=200 #hauteur est automatiquement configuré
else
if ! let $2 #Sinon si $2 n'est pas un entier on le signal et on quitte
then
echo $2 nom invalide, $2 doit être un entier. Pour plus d"'"information taper '"'galerie.sh \man'"'
exit 2
else #sinon on initialise hauteur
hauteur=$2
fi
if [ -z $3 ] #Si $3 n'existe pas on l'initialise
then
largeur=200
fi
if ! let $3 #Si $3 n'est pas un entier on le signal et on quitte
then
echo $3 non invalide, $3 doit être un entier. Pour plus d"'"information taper '"'galerie.sh \man'"'
exit 3
else #Sinon on initialise largeur
largeur=$3
fi
fi
fi
if [ -z $1 ] || [ $1 = "none" ] #si il n'y as pas de paramètre 1 ou que paramètre 1 vaut none
then
nom=galerie.html
elif [ $1 = "man" ]
then
less manuelGalerie
exit 4
else
nom=$1
if [ -e $nom ] #Si il existe alors on test si le paramètre n'existe pas deja dans le dossier courant
then
while [ -z $choix ] || [ $choix != 'y' ] #tant que l'utilisateur n'a pas entrer 'y' on ne sort pas de la boucle
do
echo Le fichier $nom existe déjà, voulez vous vraiment continuer, si oui le fichier $nom sera ecraser \(y\/n\)
read -p '> ' choix
if [ $choix != "y" ] && [ $choix != "n" ] #Si l'utilisateur a entré autre chose que 'y' ou 'n' alors on demande de recommencer sa saisie
then
echo Veuillez entrer une lettre valide, "'"y"'" pour valider "'"n"'" pour refuser
elif [ $choix = "n" ] #Si l'utilisateur entre 'n' on stop le programme
then
echo Programme abandonné
exit 5
fi
done
fi
fi
touch $nom #On créer le fichier de sortis
echo '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
<head>
<title>Galerie d image</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link rel="stylesheet" media="screen" type="text/css" title="Design" href="design.css" />
</head>
<body>
<p>' > $nom #On redirige le code minimal html dans le fichier de sortis
while [ -z $chemin ] || [ ! -e $chemin ] #tant qu'on a rien entré ou tant qu'on as pas entré un chemin valide
do
echo "Veuillez entrer le chemin absolu du dossier contenant les images à réduire"
read -p '> ' chemin
if [ ! -e $chemin ] #si le chemin est invalide on le signale
then
echo "Le chemin entrer est invalide: $chemin aucun dossier ou fichier de ce type"
fi
done
if [ -e miniatures ] #Si le dossier qui va recevoir les imagettes existe alors on le créer
then
while [ -z $choix2 ] || [ $choix2 != 'y' ]
do
echo Le dossier miniatures est déjà présents, voulez-vous vraiment continuer, si oui le dossier sera ecrasé \(y\/n\)
read -p '> ' choix2
if [ $choix2 != "y" ] && [ $choix2 != "n" ]
then
echo Veuillez entrer une lettre valide, "'"y"'" pour valider "'"n"'" pour refuser
elif [ $choix2 = "n" ]
then
echo Programme abandonné
exit 5
elif [ $choix2 = "y" ]
then
rm -r miniatures
mkdir $chemin/miniatures
fi
done
else
mkdir $chemin/miniatures
fi
for images in `ls $chemin *.jpg *.png *.gif *.jpeg 2>/dev/null` #tant qu'on a pas miniaturisé toutes les images dont on gère les extensions, on continue
do
convert $chemin/$images -thumbnail ''$hauteur'x'$largeur'>' $chemin/miniatures/$images #On miniaturise les images dans le dossier miniatures créer avant
done
mv $chemin/miniatures ./ #On deplace miniatures dans le dossier d'origine
for images in `ls miniatures *.jpg *.png *.gif *.jpeg 2>/dev/null` #Tant qu'on a pas redirigé toutes les images vers le dossier de sortis on continue
do
echo '<a href=" '$chemin/$images' "><img src="miniatures/'$images' " alt=" " /></a>' >> $nom
done
echo '</p>
</body>
</html>' >> $nom #On insère la fin du code html |
Partager