summaryrefslogtreecommitdiffstatsabout
path: root/scripts/rosteredit.pl
diff options
context:
space:
mode:
authorEdward Rudd <urkle@outoforder.cc>2010-02-15 17:34:02 (GMT)
committer Edward Rudd <urkle@outoforder.cc>2010-02-15 17:34:02 (GMT)
commit20921d9f5508d74b0e3cbc314c667393251ef909 (patch)
tree8071ddf556ecf404d6647f057f4f701b24cc8866 /scripts/rosteredit.pl
import release 0.020.02
Diffstat (limited to 'scripts/rosteredit.pl')
-rwxr-xr-xscripts/rosteredit.pl62
1 files changed, 62 insertions, 0 deletions
diff --git a/scripts/rosteredit.pl b/scripts/rosteredit.pl
new file mode 100755
index 0000000..4c7132d
--- /dev/null
+++ b/scripts/rosteredit.pl
@@ -0,0 +1,62 @@
1#!/usr/bin/perl
2
3use strict;
4
5use DBI;
6
7if ($#ARGV < 0) {
8 die ("must specify database then action (list, add, del, preview)\n");
9}
10my $db = shift @ARGV;
11my $dbh = DBI->connect_cached("dbi:SQLite:dbname=$db","","", { RaiseError => 1, PrintError => 0, AutoCommit => 1 });
12
13my $action;
14my $param;
15
16if ($#ARGV < 0) {
17 die ("must specify action (list, add, del, preview)\n");
18} else {
19 $action = shift @ARGV;
20 for ($action) {
21 if (/^preview$/) {
22 if ($#ARGV < 0) {
23 die ("Must specify jabber id");
24 }
25 my $sql = "SELECT [Group], ContactID, Contact, Subscription FROM RosterPreview WHERE UserID = ?";
26 my ($jid) = @ARGV;
27 my $roster = eval {
28 $dbh->selectall_arrayref($sql,{ Slite=> {} },$jid);
29 };
30 foreach my $item ( @$roster ) {
31 print "Entry: $item->[3] $item->[2]<$item->[1]> in group $item->[0]\n";
32 }
33 } elsif (/^list$/) {
34 my $sql = "SELECT jid, fullname, groupname FROM requiredusers ORDER BY groupname, fullname";
35 my $roster = eval {
36 $dbh->selectall_arrayref($sql,{ Slite=> {} });
37 };
38 foreach my $item ( @$roster ) {
39 print "Entry: $item->[1]<$item->[0]> in group $item->[2]\n";
40 }
41 } elsif (/^add$/) {
42 if ($#ARGV < 2) {
43 die ("Must specify jabber id, fullname and groupname");
44 }
45 my $sql = "INSERT INTO requiredusers (jid, fullname, groupname) VALUES (?, ?, ?)";
46 my ($jid, $fname, $gname) = @ARGV;
47 print "Adding: $fname<$jid> to group $gname\n";
48 $dbh->do($sql,undef,$jid,$fname,$gname);
49 } elsif (/^del$/) {
50 if ($#ARGV < 0) {
51 die ("Must specify jabber id");
52 }
53 my $sql = "DELETE FROM requiredusers WHERE jid = ?";
54 my ($jid) = @ARGV;
55 print "Deleting: $jid\n";
56 $dbh->do($sql,undef,$jid);
57 } else {
58 die ("Unknown action $action\n");
59 }
60 }
61}
62