summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjluehrs2 <jluehrs2@uiuc.edu>2008-05-09 02:30:48 -0500
committerjluehrs2 <jluehrs2@uiuc.edu>2008-05-09 02:30:48 -0500
commit60a9efacdb5f45029638c197f4166d55366f6428 (patch)
tree5c336f7400d3c616242f7ce98330f57cc1535894
parentfee5cd9a09125b2f0c993e95f928821f77f936d6 (diff)
downloadapp-hiveminder-60a9efacdb5f45029638c197f4166d55366f6428.tar.gz
app-hiveminder-60a9efacdb5f45029638c197f4166d55366f6428.zip
add a delete command
-rw-r--r--lib/App/Hiveminder/Command/Delete.pm30
1 files changed, 30 insertions, 0 deletions
diff --git a/lib/App/Hiveminder/Command/Delete.pm b/lib/App/Hiveminder/Command/Delete.pm
new file mode 100644
index 0000000..4c105b7
--- /dev/null
+++ b/lib/App/Hiveminder/Command/Delete.pm
@@ -0,0 +1,30 @@
+#!/usr/bin/perl
+package App::Hiveminder::Command::Delete;
+use Moose;
+use App::Hiveminder::Utils qw/display_tasks/;
+extends 'App::Hiveminder::Command';
+
+=head2 NAME
+
+App::Hiveminder::Command::Delete - Delete a task by locator
+
+=cut
+
+sub command_names { qw/delete rm del/ }
+
+sub command {
+ my ($self, $args) = @_;
+ # XXX: offer an interactive mode here, possibly
+ my $ret = '';
+ for my $locator (@$args) {
+ my $desc = display_tasks($self->hm->read_task($locator));
+ $ret .= "Deleted $desc\n";
+ eval { $self->hm->delete('Task', id => $self->hm->loc2id($locator)) };
+ warn $@ unless $@ =~ /404 Not Found/;
+ }
+ chomp $ret;
+ return $ret;
+}
+
+__PACKAGE__->meta()->make_immutable();
+1;