Skip to content

Commit

Permalink
Add broken shortcut detection to findBrokenAssets
Browse files Browse the repository at this point in the history
  • Loading branch information
perlDreamer committed Jan 19, 2012
1 parent 3c8ee71 commit 3ef66c7
Showing 1 changed file with 37 additions and 0 deletions.
37 changes: 37 additions & 0 deletions sbin/findBrokenAssets.pl
Expand Up @@ -74,6 +74,7 @@ sub progress {
##Guarantee that we get the most recent revisionDate
my $max_revision = $session->db->prepare('select max(revisionDate) from assetData where assetId=?');

print "Checking all assets\n";
my $count = 1;
my %classTables; # Cache definition lookups
while ( my %row = $sth->hash ) {
Expand Down Expand Up @@ -204,6 +205,42 @@ sub progress {
} ## end while ( my %row = $sth->hash)
$sth->finish;
$max_revision->finish;
print "\n";

my $shortcuts = $session->db->quickScalar(q!select count(*) from asset where className='WebGUI::Asset::Shortcut'!);
if ($shortcuts) {
print "Checking for broken shortcuts\n";
my $get_shortcut = WebGUI::Asset::Shortcut->getIsa($session, 0, {returnAll => 1});
$count = 0;
SHORTCUT: while (1) {
my $shortcut = eval { $get_shortcut->() };
if ( $@ || Exception::Class->caught() ) {
##Do nothing, since it would have been caught above
printf "\r%-68s", "No shortcut to check";
}
elsif (!$shortcut) {
last SHORTCUT
}
else {
my $linked_asset = eval { WebGUI::Asset->newPending($session, $shortcut->get('shortcutToAssetId')); };
if ( $@ || Exception::Class->caught() || ! $linked_asset ) {
printf "\r%-68s", "-- Broken shortcut: ".$shortcut->getId.' pointing to '.$shortcut->get('shortcutToAssetId');
if ($fix || $delete) {
my $success = $shortcut->purge;
if ($success) {
print "Purged shortcut";
}
else {
print "Could not purge shortcut";
}
}
print "\n";
}
}
progress( $shortcuts, $count++ ) unless $no_progress;
}
progress( $shortcuts, $count ) unless $no_progress;
}

finish($session);
print "\n";
Expand Down

0 comments on commit 3ef66c7

Please sign in to comment.