Documentation sur le logiciel SYMPA

mysql_liste-abonne.pl

si robot est listes.grenoble-inp.fr :
# ./mysql_liste-abonne.pl listes

#!/usr/bin/perl -w
#
# mysql_liste-sans-abonne.pl
#
# Catherine.Balleydier@inpg.fr
#
# maj : 01/12/05
#
########################################################################
# 
#   recherche des abonnes d'une liste pour toutes les listes d'un robot
#
########################################################################
#
use DBI;
use DBD::mysql ;
use strict;
use warnings;
use Term::ReadKey;
 
my $compte = "sympa" ;
my $BASE = "sympa" ;
my $host = "localhost" ;
 
my $robot = "$ARGV[0]".".grenoble-inp.fr" ; 
my $RESUL= "/usr/local/SCRIPTS/sympa/RESUL/liste-abonnes" ;
my $REPLIST="/home/sympa/list_data/$robot" ;
 
#
#  lister le contenu du repertoire /home/sympa/list_data/$robot
#
opendir(DIR, $REPLIST) || die "Impossible de lire $REPLIST : $!\n";
my @liste = grep { /^[^\.]/ && -r "$REPLIST/$_" } readdir(DIR);
closedir(DIR);
 
open (FICH, ">$RESUL") ;
 
#
#  demande du password de la base sympa
#
my $passe;
print "Password: ";
ReadMode 2;
    $passe = <STDIN>;
ReadMode 0;
print "\n";
chomp($passe);
 
#
# Connexion a la base sympa
#
my $data_source = "DBI:mysql:database=$BASE;host=$host";
my $db;
$db = DBI->connect( $data_source , $compte, $passe);
#$db->selectdb($BASE);
 
my $table = "subscriber_table" ;
my $entree ;
my $execution ;
#
# traiter pour chaque liste le fichier config
#
foreach $entree (@liste)
{
#
# Requete sql : recherche des abonnes pour chaque liste
#
  chomp $entree;
  my $query1 = "SELECT list_subscriber,user_subscriber FROM $table where list_subscriber='"."$entree"."'" ;
  $execution = $db->prepare($query1) ;
  $execution ->execute();
#
# Recuperation dans un tableau ses abonnes avec la liste 
#
  while ( my @result = $execution->fetchrow() )
  {
    print FICH "| ".$result[0]." | ".$result[1]." |\n";
  }
$execution->finish();
}
close (FICH) ;
$db->disconnect() or warn "Error disconnecting: $DBI::errstr\n";