Removed /usr/local from CDPATH
[clearscm.git] / cc / findview
1 #!/usr/bin/perl
2 ################################################################################
3 #
4 # File:         findview,v
5 # Revision:     1.1.1.1
6 # Description:  This script will locate a view by searching through the various
7 #               regions.
8 # Author:       Andrew@DeFaria.com
9 # Created:      Mon May  3 09:06:55 PDT 2004
10 # Modified:     2007/05/17 07:45:48
11 # Language:     Perl
12 #
13 # (c) Copyright 2004, Andrew@DeFaria.com, all rights reserved.
14 #
15 ################################################################################
16 use strict;
17 use warnings;
18
19 use FindBin;
20 use lib "$FindBin::Bin/../lib";
21
22 use Display;
23
24 sub Usage {
25   display "Usage $FindBin::Script: [ <view tag>... | -u ]";
26   display "\nWhere:";
27   display "\t<view tag>\tName of the view to find (can be partial name)";
28
29   exit 1;
30 } # Usage
31
32 sub SearchRegions {
33   my $view = shift;
34
35   my $nbr_views = 0;
36
37   # Get a list of regions
38   my @regions   = `cleartool lsregion`;
39   my $region;
40
41   # Process each region
42   foreach $region (@regions) {
43     chomp $region;
44     chop  $region if $region =~ /\r/; # Remove carriage returns
45
46     verbose "Searching $region region...\n";
47
48     # Get a list of views in the region
49     my @lines = `cleartool lsview -region $region`;
50
51     # Parse the lines extracting view tag and storage area
52     foreach (@lines) {
53       verbose "Searching view $_";
54       if (/[\* ]\s*(\S*)\s*\S*/) {
55         my $name = $1;
56
57         if ($name =~ /$view/i) {
58           display "\t$name ($region)";
59           $nbr_views++;
60           next;
61         } # if
62       } # if
63     } # foreach @lines
64   } # foreach @regions
65
66   return $nbr_views;
67 } # SearchRegions
68
69 # Get parms
70 if (defined $ARGV [0] and $ARGV [0] =~ /^-u/) {
71   Usage;
72 } # if
73
74 foreach (@ARGV) {
75   verbose "Searching for views containing \"$_\"";
76   my $nbr_views = SearchRegions $_;
77
78   if ($nbr_views eq 0) {
79     display "No views found"
80   } elsif ($nbr_views eq 1) {
81     display "1 view found";
82   } else {
83     display "$nbr_views views found";
84   } # if
85
86   verbose " matching \"$_\"";
87 } # foreach
88
89 # All done...
90 exit 0;