summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-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;