Documentation sur le logiciel SYMPA

mysql_liste-owner-editor.pl

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

#!/usr/bin/perl -w
#
# mysql-liste-owner-editor.pl
#
# Catherine.Balleydier@inpg.fr
#
# maj : 23/09/16
#
########################################################################
# 
#   recherche pour une personne les listes 
#         dont il est proprietaire ou moderateur
#
########################################################################
#
use DBI;
use DBD::mysql ;
use strict;
use warnings;
use Term::ReadKey;
 
my $adresse = $ARGV[0] ;
my $compte = "sympa" ;
my $BASE = "sympa" ;
my $host = "localhost" ;
my $RESUL= "/usr/local/SCRIPTS/sympa/RESUL/liste-owner-moderateur" ;
my $CLOSES = "/usr/local/SCRIPTS/sympa/RESUL/liste-fermee" ;
 
my $REPLIST="/home/sympa/list_data/" ;
 
#
#  liste des listes des proprietaires
#
open (FICH, ">$RESUL") ;
#
# liste fermee
# 
my $commande = "grep \"status closed\" "."$REPLIST"."*/*/config > "."$CLOSES" ;
system( $commande ) ;
 
open (CLOS, "$CLOSES") ;
my @LISTECLOS = <CLOS> ;
close (CLOS) ;
my $FERMEE = join(" ", @LISTECLOS);
 
#
# Connexion a la base sympa
#
 
#
#  demande du password de la base sympa
#
my $passe;
print "Password: ";
ReadMode 2;
    $passe = <STDIN>;
ReadMode 0;
print "\n";
chomp($passe);
 
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 ;
#
#
#
# Requete sql : recherche des abonnes pour chaque liste
#
  my $query1 = "SELECT user_admin, list_admin, role_admin from admin_table where user_admin = '"."$adresse"."' and ( role_admin='owner' or role_admin='editor' )";
  $execution = $db->prepare($query1) ;
  $execution ->execute();
#
# Recuperation dans un tableau des abonnes avec la liste 
#
  while ( my @result = $execution->fetchrow() )
  {
    if ( $FERMEE !~ /$result[1]/ )
    {
      print FICH "$result[0]".";"."$result[1]".";"."$result[2]".";\n";
    }
  }
$execution->finish();
close (FICH) ;
$db->disconnect() or warn "Error disconnecting: $DBI::errstr\n";