Change default group from 1 (daemon) to something more sensible: 100
[mspang/plceo2.git] / ceoquery.pl.in
1 #!/usr/bin/perl -w
2
3 use lib 'MODULE_PATH';
4 use strict;
5
6 require Common;
7 require Members;
8 require Books;
9 require Terms;
10
11 sub usage {
12     print "Usage: ceoquery memberlist|booklist|allmembers|allusers|termusers\n";
13 }
14
15 $ENV{'PATH'} = "/bin:/usr/bin:/usr/local/bin";
16 &Common::DBConnect();
17
18 if ($#ARGV != 0) {
19     usage();
20     exit 1;
21 }
22
23 if ($ARGV[0] eq "memberlist") {
24     my @list = &Members::GetByTerm(&Common::CurrentTerm(),
25                                    "members.name");
26
27     my $line;
28     while ($line = shift @list) {
29         printf("%d|%s|%s|%s\n", $$line{'memberid'}, $$line{'name'},
30                $$line{'program'}, ($$line{'userid'} || ""));
31     }
32 } elsif ($ARGV[0] eq "allmembers") {
33     my @list = &Members::GetAll();
34     my $line;
35     while ($line = shift @list) {
36         my @terms = &Terms::GetByMember($$line{'memberid'});
37         my $i;
38         printf("%d|%s|%s|", $$line{'memberid'}, $$line{'name'},
39                $$line{'program'});
40         for ($i = 0; $i < $#terms; $i++) {
41             print $terms[$i];
42             if ($i < $#terms - 1) {
43                 print ",";
44             }
45         }
46         print "\n";
47     }
48 } elsif ($ARGV[0] eq "booklist") {
49     my @list = &Books::GetAll();
50     my $line;
51     while ($line = shift @list) {
52         my $title = $$line{'title'};
53         $title =~ s/\s/ /g;
54         my $author = $$line{'author'};
55         $author =~ s/\s/ /g;
56         my $edition = $$line{'edition'};
57         if (not defined $edition) { $edition = ""; }
58         my $published = $$line{'published'};
59         $published =~ s/\s/ /g;
60         if (not defined $published) { $published = ""; }
61         print $$line{'isbn'} . "|$title|$author|$edition|$published\n";
62     }
63 } elsif ($ARGV[0] eq "allusers") {
64     my @list = &Members::GetAll();
65     my $line;
66     while ($line = shift @list) {
67         if (defined($$line{'userid'})) { print $$line{'userid'} . "\n"; }
68     }
69 } elsif ($ARGV[0] eq "termusers") {
70     my @list = &Members::GetByTerm(&Common::CurrentTerm(),
71                                    "members.name");
72     my $line;
73     while ($line = shift @list) {
74         if (defined($$line{'userid'})) { print $$line{'userid'} . "\n"; }
75     }
76 } else {
77     usage();
78     exit 1;
79 }