mysql_liste-user-listes.pl
paramètre en entrée au minimum : nom.prenom
#!/usr/bin/perl -w # # mysql-liste-owner_liste.pl # # Catherine.Balleydier@inpg.fr # # maj : 23/09/16 # ######################################################################## # # recherche pour une personne les listes # dont il est proprietaire ou moderateur ou abonne # ######################################################################## # 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/user_"."$adresse" ; my $CLOSES = "/usr/local/SCRIPTS/sympa/RESUL/liste-fermee" ; my $REPLIST="/home/sympa/list_data/" ; # # liste des listes de la personne open (FICH, ">$RESUL") ; print FICH "personne;robot;liste;statut;source\n"; # # 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); my $execution ; # # Requete sql : recherche pour une personne les listes ou il est proprietaire ou moderateur # my $query1 = "SELECT user_admin, robot_admin, list_admin, role_admin from admin_table where user_admin like '"."$adresse"."%' "; $execution = $db->prepare($query1) ; $execution ->execute(); # # Recuperation dans un tableau des abonnes avec la liste # while ( my @result = $execution->fetchrow() ) { if ( $FERMEE !~ /$result[2]/ ) { print FICH "$result[0]".";"."$result[1]".";"."$result[2]".";"."$result[3]"."\n"; } } $execution->finish(); # # Requete sql : recherche pour une personne les listes ou il est abonne # $query1 = "SELECT user_subscriber, robot_subscriber, list_subscriber, included_subscriber from subscriber_table where user_subscriber like '"."$adresse"."%' "; $execution = $db->prepare($query1) ; $execution ->execute(); # # Recuperation dans un tableau des abonnes avec la liste # while ( my @result2 = $execution->fetchrow() ) { if ( $FERMEE !~ /$result2[2]/ ) { print FICH "$result2[0]".";"."$result2[1]".";"."$result2[2]".";membre;"."$result2[3]"."\n"; } } $execution->finish(); close (FICH) ; $db->disconnect() or warn "Error disconnecting: $DBI::errstr\n";
