use FindBin;
use Getopt::Long;
-use CGI qw (:standard :cgi-lib *table start_Tr end_Tr);
+use CGI qw(:standard :cgi-lib *table start_Tr end_Tr);
use CGI::Carp 'fatalsToBrowser';
use File::stat;
use Time::localtime;
my %total;
my $nbrThreshold; # Number of views threshold - think top 10
-sub GenerateRegion ($) {
+sub GenerateRegion($) {
my ($region) = @_;
verbose "Processing region $region";
verbose_nolf '.';
}# if
- my $view = Clearcase::View->new ($name, $region);
+ my $view = Clearcase::View->new($name, $region);
my $gpath;
# Note if the view server is unreachable (e.g. user puts view on laptop and
# the laptop is powered off), then these fields will be undef. Change them
# to Unknown. (Should Clearcase::View.pm do this instead?).
- my $type = $view->type;
- $type ||= 'Unknown';
+ my $type = $view->type;
+ $type ||= 'dynamic';
+ my $ownerid = $view->owner;
+ $ownerid ||= 'Unknown';
my $user;
- my $ownerid = $view->owner;
-
if ($ownerid =~ /^\w+(\\|\/)(\w+)/) {
# TODO: Handle user identification better
#$user = User->new ($ownerid);
my ($err, $msg);
my %viewRec = (
- system => $view->shost,
region => $view->region,
tag => $view->tag,
owner => $ownerid,
error "Unable to update view $name in Clearadm\n$msg", $err if $err;
} else {
- ($err, $msg) = $clearadm->AddView (%viewRec);
+ ($err, $msg) = $clearadm->AddView(%viewRec);
error "Unable to add view $name to Clearadm\n$msg", $err if $err;
} # if
sub Generate ($) {
my ($region) = @_;
- if ($region =~ /all/i) {
- for ($Clearcase::CC->regions) {
- GenerateRegion $_;
- } # for
- } else {
+ if ($region) {
GenerateRegion $region;
+ } else {
+ GenerateRegion $_ for $Clearcase::CC->regions;
} # if
return;
return;
} # Report
-sub FormatTable ($@) {
+sub FormatTable($@) {
my ($style, @views) = @_;
my $table;
my $caption;
- my $regionDropdown = start_form (
+ my $regionDropdown = start_form(
-action => $script,
);
$regionDropdown .= font {-class => 'captionLabel'}, 'Region: ';
- $regionDropdown .= popup_menu (
+ $regionDropdown .= popup_menu(
-name => 'region',
-values => [$Clearcase::CC->regions],
-default => $Clearcase::CC->region,
# TODO: Add an option to remove views older than a certain date
-sub EmailUser ($@) {
+sub EmailUser($@) {
my ($emailTo, @oldViews) = @_;
@oldViews = sort { $$b{age} <=> $$a{age} } @oldViews;
- my $msg = '<style>' . join ("\n", ReadFile 'viewager.css') . '</style>';
+ my $msg = '<style>' . join("\n", ReadFile 'viewager.css') . '</style>';
$msg .= <<"END";
<h1 align="center">You have old Clearcase Views</h1>
Your friendly Clearcase Administrator
END
- mail (
+ mail(
to => $emailTo,
# to => 'Andrew@DeFaria.com',
mode => 'html',
return
} # EmailUser
-sub EmailUsers (@) {
+sub EmailUsers(@) {
my (@views) = @_;
@views = sort { $$a{ownerName} cmp $$b{ownerName} } @views;
for (@views) {
my %view = %{$_};
- next
- unless $view{email};
+ next unless $view{email};
if ($currUser ne $view{ownerName}) {
- EmailUser $view{email}, @userViews
- if @userViews;
+ EmailUser $view{email}, @userViews if @userViews;
$currUser = $view{ownerName};
- @userViews =();
+ @userViews = ();
} else {
if ($view{age} > $opts{ageThreshold}) {
push @userViews, \%view
} # EmailUsers
# Main
-GetOptions (
+GetOptions(
\%opts,
'usage' => sub { Usage },
'verbose' => sub { set_verbose },
$clearadm = Clearadm->new;
if ($opts{action} and $opts{action} eq 'generate') {
- $opts{region} ||= 'all';
-
Generate $opts{region};
Stats \%total if $opts{verbose};
} else {
$opts{region} ||= $Clearcase::CC->region;
- my @views = $clearadm->FindView (
- 'all',
- $opts{region},
+ my @views = $clearadm->FindView(
$opts{tag},
+ $opts{region},
$opts{user}
);