[ Index ] |
PHP Cross Reference of Unnamed Project |
[Summary view] [Print] [Text view]
1 #!/bin/bash 2 # 3 ##### Script de configuration de fonds ##### 4 # 5 # Auteur: Stéphane Boireau (A.S. - Relais de Bernay/Pont-Audemer (27)) 6 # 7 ## $Id: genere_fond.sh 8003 2013-12-27 17:10:13Z crob $ ## 8 # 9 # /usr/share/se3/scripts/genere_fond.sh 10 # Dernière modification: 23/05/2006 11 12 if [ "$1" = "--help" -o "$1" = "-h" ]; then 13 echo "Script permettant de configurer les fonds d'écran..." 14 echo "" 15 echo "Usage : plein d'options (### A PRECISER ###)" 16 exit 17 fi 18 19 20 #Couleurs 21 COLTITRE="\033[1;35m" # Rose 22 COLPARTIE="\033[1;34m" # Bleu 23 24 COLTXT="\033[0;37m" # Gris 25 COLCHOIX="\033[1;33m" # Jaune 26 COLDEFAUT="\033[0;33m" # Brun-jaune 27 COLSAISIE="\033[1;32m" # Vert 28 29 COLCMD="\033[1;37m" # Blanc 30 31 COLERREUR="\033[1;31m" # Rouge 32 COLINFO="\033[0;36m" # Cyan 33 34 # Chemin de stockage des paramètres: 35 chemin_param_fond="/etc/se3/fonds_ecran" 36 # On y trouve/génère un fichier de couleurs par défaut. 37 # On y précise si tel groupe obtient un fond annoté ou non. 38 39 # Création au besoin du dossier: 40 mkdir -p "$chemin_param_fond" 41 42 # Dossier de stockage des fonds communs: 43 dossier_base_fond="/var/se3/Docs/media/fonds_ecran" 44 mkdir -p "$dossier_base_fond" 45 46 # Dossier d'upload des images: 47 #dossier_upload_images="/var/remote_adm" 48 dossier_upload_images="/etc/se3/www-tools" 49 50 # Valeur tmp 51 ladate=$(date +"%Y.%m.%d-%H.%M.%S") 52 53 nom_du_script=$(basename $0) 54 55 if [ -z "$1" -o ! -e "/usr/bin/convert" ]; then 56 echo -e "" 57 echo -e "$COLTITRE}INFO:$COLINFO}" 58 echo -e "Ce script permet de générer un $COLCMD}fond.jpg$COLINFO} lors du login sur SE3." 59 echo -e "Il est possible de définir des fonds différents sont proposés pour:" 60 echo -e " - $COLCMD}admin$COLINFO}" 61 echo -e " - $COLCMD}Profs$COLINFO}" 62 echo -e " - $COLCMD}Eleves$COLINFO}" 63 echo -e " - $COLCMD}Classe_XXX$COLINFO}" 64 echo -e " - $COLCMD}Administratifs$COLINFO}" 65 echo -e " - $COLCMD}overfill$COLINFO}" 66 echo -e "Le fond peut ou non être annoté avec les informations suivantes:" 67 echo -e " - le nom de l'utilisateur" 68 echo -e " - le prénom de l'utilisateur" 69 echo -e " - la classe de l'utilisateur" 70 echo -e "L'annotation peut n'être activée que pour certains groupes." 71 echo -e "" 72 73 echo -e "$COLTXT" 74 exit 0 75 fi 76 77 if [ ! -e "$chemin_param_fond/actif.txt" ]; then 78 exit 0 79 fi 80 81 t=$(cat $chemin_param_fond/actif.txt 2>/dev/null) 82 if [ "$t" != "1" ]; then 83 exit 0 84 fi 85 86 # Paramètres communs: 87 generer_parametres_generation_fonds="non" 88 if [ -e "$chemin_param_fond/parametres_generation_fonds.sh" ]; then 89 chmod +x "$chemin_param_fond/parametres_generation_fonds.sh" 90 91 # Récupération des variables communes: 92 source "$chemin_param_fond/parametres_generation_fonds.sh" 93 94 if [ -z "$largeur" ]; then 95 generer_parametres_generation_fonds="oui" 96 fi 97 fi 98 99 if [ ! -e "$chemin_param_fond/parametres_generation_fonds.sh" -o "$generer_parametres_generation_fonds" = "oui" ]; then 100 echo " 101 # Dossier contenant les trames 102 # (image de fond commune à un des utilisateurs/groupes admin, profs, eleves) 103 dossier_base_fond="/var/se3/Docs/media/fonds_ecran" 104 mkdir -p $dossier_base_fond} 105 # Woody ou Sarge: 106 # Pour Sarge, il faut spécifier 'bmp3:' pour le format BMP 107 prefixe=jpeg: 108 109 # Couleurs et dimensions par défaut: 110 largeur=800 111 hauteur=600 112 couleur1=silver 113 couleur2=white 114 # Ces valeurs seront outrepassées par les re-définitions ultérieures." >> "$chemin_param_fond/parametres_generation_fonds.sh" 115 116 chmod +x "$chemin_param_fond/parametres_generation_fonds.sh" 117 118 # Récupération des variables communes: 119 source "$chemin_param_fond/parametres_generation_fonds.sh" 120 fi 121 122 if [ "$1" = "variable_bidon" ]; then 123 case $2 in 124 "nettoyer") 125 if [ "$3" == "admin" ] 126 then 127 rm -f "$dossier_base_fond}/Adminse3.jpg" 128 else 129 rm -f "$dossier_base_fond}/$3.jpg" 130 fi 131 # Il s'agit ici de générer un nouveau fond 132 source "$chemin_param_fond/parametres_$3}.sh" 133 ;; 134 "image_fournie") 135 # Passer en $3 le nom de l'image (sans le .jpg) 136 if [ -e "$dossier_upload_images/$3.jpg" ]; then 137 rm -f "$dossier_base_fond}/$3.jpg" 138 139 # Lorsque l'image est uploadée, le nom est forcé à $groupe.jpg, 140 # même si l'image n'est pas de type JPG 141 # Les lignes qui suivent assurent la conversion. 142 if ! file $dossier_upload_images/$3.jpg | grep "JPEG" > /dev/null; then 143 mv $dossier_upload_images/$3.jpg $dossier_upload_images/$3.tmp 144 convert $dossier_upload_images/$3.tmp $prefixe}$dossier_upload_images}/$3.jpg 145 fi 146 if [ "$3" == "admin" ] 147 then 148 mv $dossier_upload_images/$3.jpg "$dossier_base_fond}/Adminse3.jpg" 149 chown admin:root "$dossier_base_fond}/Adminse3.jpg" 150 else 151 mv $dossier_upload_images/$3.jpg "$dossier_base_fond}/$3.jpg" 152 chown admin:root "$dossier_base_fond}/$3.jpg" 153 fi 154 fi 155 #source "$chemin_param_fond/annotations_${3}.sh" 156 temoin="" 157 # NOTE: Dans le cas où $1=variable_bidon, on se moque des annotations... 158 # Et si le fichier annotations_${3}.sh n'existe pas, le script s'arrête là sur une erreur. 159 ;; 160 "supprimer") 161 for file in /var/se3/Docs/media/fonds_ecran/[a-z]*.jpg 162 do 163 id="$(basename $file|sed -s 's/\.jpg//g')" 164 if [ "$id" != "overfill" ] 165 then 166 rm -f "$file" 167 fi 168 done 169 for file in /var/se3/Docs/media/fonds_ecran/[a-z]*.bmp 170 do 171 id="$(basename $file|sed -s 's/\.bmp//g')" 172 if [ "$id" != "overfill" ] 173 then 174 rm -f "$file" 175 fi 176 done 177 ;; 178 "genere_base") 179 180 # Ou alors, mettre un témoin dans Consultation des paramétrages pour annoncer que tant que personne ne s'est connecté, on n'a pas le modèle? 181 # C'est embêtant pour faire les réglages. 182 183 temoin="" 184 185 if [ -z "$3" ]; then 186 echo "ERREUR : \$3 est vide : $*" 187 exit 188 fi 189 190 t=$(echo "$3"|sed -e "s/[A-Za-z0-9_]//g") 191 if [ -n "$t" ]; then 192 echo "ERREUR : La chaine '$3' comporte des caratères invalides: '$t'" 193 exit 194 fi 195 196 if [ -e "$chemin_param_fond/fond_$3.txt" ]; then 197 if [ $(cat "$chemin_param_fond/fond_$3.txt") = "actif" ]; then 198 source "$chemin_param_fond/parametres_$3.sh" 199 temoin=$3 200 fi 201 fi 202 203 204 # Si aucune generation de fond n'est prevue pour l'utilisateur courant, on quitte: 205 if [ -z "$temoin" ]; then 206 echo " Pas de fond pour $3" 207 # Suppression du fichier de lock s'il existe: 208 rm -f "/tmp/$3.fond.lck" 209 exit 0 210 fi 211 212 213 # Passage de variable: 214 base=$temoin 215 if [ "$base" == "admin" ] 216 then 217 orig="Adminse3" 218 else 219 orig="$base" 220 fi 221 222 /usr/bin/convert -size $largeur}x$hauteur} gradient:$couleur1}-$couleur2} jpeg:$dossier_base_fond}/$orig.jpg 223 #echo "/usr/bin/convert -size ${largeur}x${hauteur} gradient:${couleur1}-${couleur2} jpeg:${dossier_base_fond}/$orig.jpg" >> /var/log/se3_mkwall_debug.log 224 225 ;; 226 esac 227 fi 228 if [ "$3" = "admin" ]; then 229 rm -f $dossier_base_fond/admin.jpg 230 else 231 ldapsearch -xLLL cn=$3 memberUid | grep "^memberUid: " | sed -e "s/^memberUid: //" | while read A 232 do 233 if [ -e "$dossier_base_fond/$A.jpg" ]; then 234 rm -f $dossier_base_fond/$A.jpg 235 fi 236 if [ -e "$dossier_base_fond/$A.bmp" ]; then 237 rm -f $dossier_base_fond/$A.bmp 238 fi 239 240 done 241 fi
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated: Tue Mar 17 22:47:18 2015 | Cross-referenced by PHPXref 0.7.1 |