]> andersk Git - moira.git/blame - gen/confluence.gen
Include homedir, shell, and uid information.
[moira.git] / gen / confluence.gen
CommitLineData
1964ff67 1#!/moira/bin/perl -Tw
2
3# $Id$
4
5# The following exit codes are defined and MUST BE CONSISTENT with the
6# error codes the library uses:
7$MR_DBMS_ERR = 47836421;
1964ff67 8
9$ENV{PATH} = "/bin:/usr/bin:/sbin:/usr/sbin";
10
894e7731 11$outdir = '/moira/dcm/confluence';
1964ff67 12umask 022;
13
14use DBI;
15
16$dbh = DBI->connect("dbi:Oracle:moira", "moira", "moira")
17 || exit $MR_DBMS_ERR;
18
19$sth0 = $dbh->prepare("SELECT l.list_id, m.name " .
20 "FROM list l, machine m, serverhosts sh " .
894e7731 21 "WHERE sh.value3 = l.name AND sh.service = 'CONFLUENCE' " .
1964ff67 22 "AND m.mach_id = sh.mach_id") || exit $MR_DBMS_ERR;
23$sth0->execute;
24
25while (($root_list_id, $hostname) = $sth0->fetchrow_array) {
26 open(OUT, ">$outdir/$hostname");
27
5d49d820 28 $sth = $dbh->prepare("SELECT l.name, l.gid FROM list l, imembers i " .
1964ff67 29 "WHERE i.list_id = " . $dbh->quote($root_list_id) .
30 "AND i.member_type = 'LIST' " .
87a02088 31 "AND i.member_id = l.list_id AND i.direct = 1 " .
5d49d820 32 "AND l.grouplist = 1 ORDER BY l.name") || exit $MR_DBMS_ERR;
1964ff67 33 $sth->execute;
34
5d49d820 35 while (($name, $gid) = $sth->fetchrow_array) {
1964ff67 36 $sth2 = $dbh->prepare("SELECT UNIQUE i.member_type, i.member_id " .
37 "FROM imembers i, list l " .
38 "WHERE l.name = " . $dbh->quote($name) .
39 "AND i.list_id = l.list_id " .
40 "AND (i.member_type = 'USER' " .
41 "OR i.member_type = 'STRING')") ||
42 exit $MR_DBMS_ERR;
43 $sth2->execute;
44
5d49d820 45 $row = "$name:$gid:";
1964ff67 46 $row =~ s/\0//g;
47 print OUT $row;
48 $maybecomma = "";
49
50 while (($type, $id) = $sth2->fetchrow_array) {
51 if ($type eq "USER") {
52 ($member) = $dbh->selectrow_array("SELECT login FROM users " .
53 "WHERE users_id = " .
54 $dbh->quote($id)) ||
55 exit $MR_DBMS_ERR;
56 $member = $member . "\@mit.edu";
57 }
58 elsif ($type eq "STRING") {
59 ($member) = $dbh->selectrow_array("SELECT string " .
60 "FROM strings " .
61 "WHERE string_id = " .
62 $dbh->quote($id)) ||
63 exit $MR_DBMS_ERR;
64 }
65 $row = "$maybecomma$member";
66 $row =~ s/\0//g;
67 print OUT $row;
68 $maybecomma = ",";
69 }
70
71 $row = "\n";
72 $row =~ s/\0//g;
73 print OUT $row;
74 }
75 close(OUT);
76}
77
1964ff67 78$dbh->disconnect;
79
80exit 0;
This page took 0.312622 seconds and 5 git commands to generate.