8eb640f5b76134b11e57acb042245c5d02dff532
[clearscm.git] / maps / bin / domains
1 #!/usr/bin/perl
2 ################################################################################
3 #
4 # File:         $RCSfile: domains,v $
5 # Revision:     $Revision: 1.1 $
6 # Description:  Display entries from the list table where there is at least one
7 #               entry with a null pattern (nuke the domain) and yet still other
8 #               entries with the same domain name but having a pattern. We may
9 #               want to eliminate the other entries since we're nuking the
10 #               whole domain anyway.
11 # Author:       Andrew@DeFaria.com
12 # Created:      Sat Oct 20 23:28:19 MST 2007
13 # Modified:     $Date: 2013/06/12 14:05:47 $
14 # Language:     Perl
15 #
16 # (c) Copyright 2007, Andrew@DeFaria.com, all rights reserved.
17 #
18 ################################################################################
19 use strict;
20 use warnings;
21
22 use FindBin;
23 use Getopt::Long;
24
25 use lib $FindBin::Bin, '/opt/clearscm/lib';
26
27 use MAPS;
28 use MAPSDB;
29
30 use Display;
31
32 sub Usage () {
33   display <<END;
34 $FindBin::Script { -verbose } { -debug } { -usage }
35 END
36
37   exit 1;
38 } # Usage
39
40 GetOptions (
41   "verbose"     => sub { set_verbose },
42   "debug"       => sub { set_debug },
43   "usage"       => sub { Usage },
44 ) || Usage;
45
46 my $userid = $ENV{MAPS_USERNAME} ? $ENV{MAPS_USERNAME} : $ENV{USER};
47
48 # Main
49 SetContext $userid;
50
51 my $statement = "select domain from list where userid=\"$userid\" and type=\"null\" and pattern is null";
52
53 my $need_requence = 0;
54
55 foreach my $domain (sort (&MAPSDB::GetRows ($statement))) {
56   verbose "Processing domain $domain";
57   $statement = "select sequence from list where userid = \"$userid\" and domain = \"$domain\" and type = \"null\" and pattern is not null";
58
59   foreach my $sequence (MAPSDB::GetRows $statement) {
60     display "Deleting $domain ($sequence)";
61     $need_requence = 1;
62     DeleteList "null", $sequence;
63   } # foreach
64 } # foreach
65
66 if ($need_requence) {
67   verbose "Resequencing null list...";
68   ResequenceList $userid, "null";
69   verbose "done";
70 } # if
71
72 exit;