From f8512006c839113f1bf172b62f9f16283475f7a1 Mon Sep 17 00:00:00 2001 From: Dominik Meyer Date: Sat, 15 Sep 2018 21:25:19 +0200 Subject: [PATCH] ADD: added status command --- lib/App/Git/IssueManager/Status.pm | 46 ++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 lib/App/Git/IssueManager/Status.pm diff --git a/lib/App/Git/IssueManager/Status.pm b/lib/App/Git/IssueManager/Status.pm new file mode 100644 index 0000000..f4af116 --- /dev/null +++ b/lib/App/Git/IssueManager/Status.pm @@ -0,0 +1,46 @@ +package App::Git::IssueManager::Status; +#ABSTRACT: class implementing the status issue command of the GIT IssueManager +use strict; +use warnings; +use MooseX::App::Command; +extends qw(App::Git::IssueManager); +use Git::LowLevel; +use Git::IssueManager; +use Git::IssueManager::Issue; +use Text::ANSITable; +use Term::ANSIColor; +use Try::Tiny; +use Data::Dumper; + +command_short_description 'get the status of issues repository'; +command_usage 'git issue status'; + +sub run +{ + my $self = shift; + + my $manager = Git::IssueManager->new(repository=>Git::LowLevel->new(git_dir=> ".")); + if (!$manager->ready) + { + print("IssueManager not initialized yet. Please call \"init\" command to do so."); + exit(-1); + } + binmode(STDOUT, ":utf8"); + my $stats=$manager->stats(); + my $tag = $manager->tag(); + + my $t = Text::ANSITable->new; + $t->use_utf8(1); + $t->use_color(1); + $t->use_box_chars(1); + $t->border_style('Default::single_boxchar'); + $t->columns(["Name","Value"]); + $t->add_row(["Open Issues",$stats->{open}]); + $t->add_row(["Assigned Issues",$stats->{assigned}]); + $t->add_row(["Inprogress Issues",$stats->{inprogess}]); + $t->add_row(["Closed Issues",$stats->{closed}]); + + print $t->draw; +} + +1;