Update to current Perl
This commit is contained in:
parent
ebd46d86d4
commit
3cc88f8150
57 changed files with 11638 additions and 665 deletions
110
lib/WGDev/Command/Trash.pm
Normal file
110
lib/WGDev/Command/Trash.pm
Normal file
|
|
@ -0,0 +1,110 @@
|
|||
package WGDev::Command::Trash;
|
||||
# ABSTRACT: Trash assets by URL/assetId
|
||||
use strict;
|
||||
use warnings;
|
||||
use WGDev::Command::Ls;
|
||||
use 5.008008;
|
||||
|
||||
use parent qw(WGDev::Command::Base);
|
||||
|
||||
use WGDev ();
|
||||
|
||||
sub config_options {
|
||||
return qw(
|
||||
purge
|
||||
restore
|
||||
list
|
||||
);
|
||||
}
|
||||
|
||||
sub process {
|
||||
my $self = shift;
|
||||
my $wgd = $self->wgd;
|
||||
if ($self->option('list')) {
|
||||
return $self->list_trash;
|
||||
}
|
||||
else {
|
||||
return $self->trash;
|
||||
}
|
||||
}
|
||||
|
||||
sub trash {
|
||||
my $self = shift;
|
||||
my $wgd = $self->wgd;
|
||||
my $error;
|
||||
my $method = $self->option('purge') ? 'purge'
|
||||
: $self->option('restore') ? 'restore'
|
||||
: 'trash';
|
||||
my @asset_specs = $self->arguments;
|
||||
ASSET:
|
||||
while ( my $asset_spec = shift @asset_specs ) {
|
||||
my $asset;
|
||||
if ( !eval { $asset = $wgd->asset->find($asset_spec) } ) {
|
||||
warn "wgd trash: $asset_spec: No such asset\n";
|
||||
$error++;
|
||||
next ASSET;
|
||||
}
|
||||
my $success = $asset->$method;
|
||||
if ($method ne 'restore' && ! $success) {
|
||||
warn "wgd trash: unable to $method $asset_spec\n";
|
||||
++$error;
|
||||
}
|
||||
}
|
||||
|
||||
return (! $error);
|
||||
}
|
||||
|
||||
sub list_trash {
|
||||
my $self = shift;
|
||||
my $wgd = $self->wgd;
|
||||
my $root = $wgd->asset->root;
|
||||
my $trashed_assets = $root->getAssetsInTrash();
|
||||
my $ls = WGDev::Command::Ls->new($wgd);
|
||||
my $format = '%assetId% %url:-35% %title%';
|
||||
ASSET:
|
||||
foreach my $asset ( @{ $trashed_assets } ) {
|
||||
next ASSET unless $asset;
|
||||
my $output = $ls->format_output( $format, $asset );
|
||||
print $output . "\n";
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
1;
|
||||
|
||||
=head1 SYNOPSIS
|
||||
|
||||
wgd trash [--purge] [--restore] <asset> [<asset> ...]
|
||||
wgd trash [--list]
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
Methods for working with assets in the trash.
|
||||
|
||||
=head1 OPTIONS
|
||||
|
||||
=over 8
|
||||
|
||||
=item C<--purge>
|
||||
|
||||
Purges the assets from the system instead of putting it into the trash.
|
||||
|
||||
=item C<--restore>
|
||||
|
||||
Restores the assets that have been trashed to the regular, published state.
|
||||
|
||||
=item C<--list>
|
||||
|
||||
Lists all assets in the trash.
|
||||
|
||||
=item C<< <asset> >>
|
||||
|
||||
Either an asset URL or an ID. As many can be specified as desired.
|
||||
Prepending with a slash will force it to be interpreted as a URL.
|
||||
|
||||
=back
|
||||
|
||||
=cut
|
||||
|
||||
1;
|
||||
Loading…
Add table
Add a link
Reference in a new issue