[ Index ]

PHP Cross Reference of Unnamed Project

title

Body

[close]

/se3master/usr/share/se3/scripts/ -> genere_fond.sh (source)

   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


Generated: Tue Mar 17 22:47:18 2015 Cross-referenced by PHPXref 0.7.1