summaryrefslogtreecommitdiff
path: root/b/membres/dump.pl
diff options
context:
space:
mode:
Diffstat (limited to 'b/membres/dump.pl')
-rwxr-xr-xb/membres/dump.pl63
1 files changed, 63 insertions, 0 deletions
diff --git a/b/membres/dump.pl b/b/membres/dump.pl
new file mode 100755
index 0000000..d6227b9
--- /dev/null
+++ b/b/membres/dump.pl
@@ -0,0 +1,63 @@
+#!/usr/bin/perl -w
+#
+# Liste des membres.
+#
+use strict;
+
+our %membres;
+do 'membres.pl' or die;
+
+
+if (scalar @ARGV != 1 && scalar @ARGV != 2)
+{
+ print <<EOF;
+$0 - affiche une liste des membres.
+
+Utilisation : $0 'code perl' [année]
+
+Variables disponibles :
+ login, nom, nick, promo, adresse, tel, telparents, devise
+Variables anuelles :
+ role, taches, bureau, cotiz, dispo
+
+Exemple :
+
+Affiche une liste pour l'accés au local pour l'importer directement dans un
+format Excel demandé par l'admin :
+ $0 'print "\$nom;\$promo\\n" if \$promo >= 2006' 2006
+
+Affiche la liste des développeurs :
+ $0 'print "\$role\\t\$nom\\n" if \$role' 2006
+
+Affiche toutes les personnes qui on un jour participé au robot :
+ $0 'print "\$nom\\n"'
+
+À vous d'imaginer d'autre commandes !
+EOF
+ exit 1;
+}
+
+my ($p, $year) = @ARGV;
+
+for (keys %membres)
+{
+ # 'Décompresse' le hash.
+ my $login = $_;
+ my $m = $membres{$_};
+ next unless !defined $year || exists $$m{$year};
+ my ($nom, $nick, $promo, $adresse, $tel, $telparents, $devise) =
+ ($$m{'nom'}, $$m{'nick'}, $$m{'promo'}, $$m{'adresse'}, $$m{'tel'},
+ $$m{'telparents'}, $$m{'devise'});
+ if (defined $year)
+ {
+ my $y = $$m{$year};
+ my ($role, $taches, $bureau, $cotiz, $dispo) =
+ ($$y{'role'}, $$y{'taches'}, $$y{'bureau'}, $$y{'cotiz'},
+ $$y{'dispo'});
+ eval $p;
+ }
+ else
+ {
+ eval $p;
+ }
+}