package Net::RabbitFoot::Cmd::Command::delete_queue; use Moose; extends qw(MooseX::App::Cmd::Command); with qw(Net::RabbitFoot::Cmd::Role::Config Net::RabbitFoot::Cmd::Role::Command); has queue => ( isa => 'Str', is => 'rw', required => 1, metaclass => 'MooseX::Getopt::Meta::Attribute', cmd_aliases => 'q', documentation => 'queue name', ); has if_unused => ( isa => 'Bool', is => 'rw', default => 0, metaclass => 'MooseX::Getopt::Meta::Attribute', cmd_aliases => 'U', documentation => 'delete only if unused', ); has if_empty => ( isa => 'Bool', is => 'rw', default => 0, metaclass => 'MooseX::Getopt::Meta::Attribute', cmd_aliases => 'e', documentation => 'delete only if empty', ); __PACKAGE__->meta->make_immutable; no Moose; sub abstract { return 'delete a queue'; } sub _validate_queue { my ($self,) = @_; $self->_check_queue(); return; } sub _run { my ($self, $client, $opt, $args,) = @_; my $method_frame = $client->delete_queue( (map {$_ => $self->$_} qw(queue if_unused if_empty)) )->method_frame; print 'Deleted queue', "\n"; print 'message_count: ', $method_frame->message_count, "\n"; return; } 1;