Table des matières

SYMPA : famille

Une famille permet de générer plusieurs listes en une seule fois

Création

1 - création d'une nouvelle famille

# cd ~sympa/etc/inpg.fr/families
# mkdir <nouvelle-famille>
# chown sympa:sympa <nouvelle-famille>

Dans le dossier <nouvelle-famille> copier les fichiers

## No specific constraints on this list

2 - création d'un script perl générant les fichiers xml des listes d'une famille

Sous /usr/local/SCRIPTS/sympa/FAMILLE

Exemple : families-creation_labo-dir.pl

  #!/usr/bin/perl -w
  #
  #  families-creation_<.......>.pl
  #
  # Catherine.Balleydier@inpg.fr
  #
  # maj : 07/03/08
  #
  ########################################################################
  # 
  #  creation de famille de listes
  #
  ########################################################################
  #
 
  $REP = "/usr/local/SCRIPTS/sympa/FAMILLE/families/";
 
  #
  # categorie principale dans topics.conf
  # 
  $categorie = "composantes" ;
 
  #
  #  LABO : "<nom de l'entite>"  , "<correspondance dans topics.conf">
  #
  %LABOS = (
          "ENSEEG"        , "Enseeg" ,
          "ENSERG"        , "Enserg" ,
          ) ;
  #
  #  proprietaires des listes
  #
  @OWNERS = (
          "catherine.balleydier\@inpg.fr" ,
          "john.smith\@inpg.fr" ,
          ) ;
  #
  #   FONCTIONS : "<fonction apparaissant dans le nom de la liste>" ,
  #               "<texte pour les champs objet et description">
  #
  %FONCTIONS = (
          "ressources-humaines"   , "ressources humaines" ,
          "finances"              , "services financier"
          );
 
  $family = "ecole-rh.xml" ;
  $FAMIL = "$REP"."$family" ;
 
  open (FICH, ">$FAMIL") || die "Cannot open fichier: $!";
 
  print FICH "<?xml version=\"1.0\" ?>\n" ;
  print FICH "<family>\n" ;
 
  #
  #  script shell pour fermer l'espace documentaire
  #
  $FERM = "$REP"."fermer-esp-doc.sh" ;
  open (PART, ">$FERM") || die "Cannot open fichier: $!";
  print PART "#!/bin/sh\n" ;
 
 
  foreach $Fonction (keys %FONCTIONS)
  {
  foreach $labo (keys %LABOS)
  {
  # nom en minuscule 
    $labomin = lc("$labo") ;
  #
    $description = "Joindre les "."$FONCTIONS{$Fonction}"." "."$labo" ;
    $NomListe = "$labomin"."."."$Fonction" ;
    print FICH "  <list>\n" ;
    print FICH "    <listname>"."$NomListe"."</listname>\n" ;
    print FICH "    <topics>"."$categorie"."/"."$LABOS{$labo}"."</topics>\n" ;
    print FICH "    <subject>"."$description"."</subject>\n" ;
    print FICH "    <description>"."$description"."</description>\n" ;
    print FICH "    <status>open</status>\n" ;
    print FICH "    <shared_edit>editor</shared_edit>\n" ;
    print FICH "    <shared_read>private</shared_read>\n" ;
    print FICH "    <language>fr</language>\n" ;
 
    foreach $owner (@OWNERS)
    {
      print FICH "    <owner multiple=\"1\">\n" ;
      print FICH "      <email>"."$owner"."</email>\n" ;
      print FICH "      <profile>normal</profile>\n" ;
      print FICH "    </owner>\n" ;
    }
    print FICH "  </list>\n";
    $AdrList = "/home/sympa/expl/inpg.fr/"."$NomListe" ;
    print PART "mv "."$AdrList"."/shared "."$AdrList"."/pending.shared \n";
  }
  }
  print FICH "</family>\n";
 
  close FICH ;
  close PART ;
  chmod (0700 , "$FERM" , "/a") ;

Lancement du script qui crée un fichier xml dans le répertoire /usr/local/SCRIPTS/sympa/FAMILLE/families

# /usr/local/SCRIPTS/sympa/FAMILLE/families-creation_labo-dir.pl

3 - Génération des listes

#  ~sympa/bin/sympa.pl  --instantiate_family  laboratoire-directeur   --robot  inpg.fr 
                 --input_file  /usr/local/SCRIPTS/sympa/FAMILLE/families/laboratoires-directeurs.xml

Puis effacement de l'espace documentaire

#  /usr/local/SCRIPTS/sympa/FAMILLE/families/fermer-esp-doc.sh

Modification des paramètres d'une famille de liste

Modifier le script /usr/local/SCRIPTS/sympa/FAMILLE/families-creation_labo-dir.pl et l'éxécuter

# /usr/local/SCRIPTS/sympa/FAMILLE/families-creation_labo-dir.pl

Puis relancer l'instantiation de la famille

#  ~sympa/bin/sympa.pl  --instantiate_family  laboratoire-directeur   --robot  inpg.fr 
                 --input_file  /usr/local/SCRIPTS/sympa/FAMILLE/families/laboratoires-directeurs.xml

Suppression d'une famille

#  ~sympa/bin/sympa.pl --close_family enseignants --robot inpg.fr 
#  rm -f ~sympa/etc/inpg.fr/families/enseignants/*.xml

Puis suppression des listes correspondantes sous ~sympa/liste-data/inpg.fr

Ajout d'une liste à une famille

#  ~sympa/bin/sympa.pl  --add_list  laboratoire-directeur   --robot  inpg.fr 
                 --input_file  /usr/local/SCRIPTS/sympa/FAMILLE/families/laboratoires-directeurs-2.xml

Suppression d'une liste à une famille

Suppression de la liste biologie.directeur@inpg.fr

#  ~sympa/bin/sympa.pl  --close_list  biologie.directeur@inpg.fr 

Modification d'une liste appartenant à une famille

#  ~sympa/bin/sympa.pl  --modify_list  laboratoire-directeur   --robot  inpg.fr 
                 --input_file  /usr/local/SCRIPTS/sympa/FAMILLE/families/laboratoires-directeurs-3.xml