Ceci est une ancienne révision du document !
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
- config.tt2 (copier celui du modèle de liste désiré sous ~sympa/etc/create_list_templates et modifier le si besoin )
- param_constraint.conf
## No specific constraints on this list
- edit_list.conf que dans le cas où l'on veut des autorisations différentes pour les propriétaires
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 listes.grenoble-inp.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
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
