my $COMMANDS = {
init => 1,
list => 1,
+ summary => 1,
add => 1,
show => 1,
edit => 1,
init($path);
}
elsif ( $command eq 'list' ) {
- my ($issue_name) = @ARGV;
list();
+ }
+ elsif ( $command eq 'summary' ) {
+ summary();
+
}
elsif ( $command eq 'show' ) {
my ($issue_name) = @ARGV;
sub list {
check_paths();
- my @issues;
-
# find all the issues
- my @filenames = <issues/*.yaml>;
- foreach my $filename ( sort @filenames ) {
- push @issues, CIL::Issue->new_load_issue( basename($filename, '.yaml') );
- }
- @issues = sort { $a->Inserted cmp $b->Inserted } @issues;
+ my $issues = get_all_issues();
separator();
- foreach my $issue ( @issues ) {
+ foreach my $issue ( @$issues ) {
display_issue_short($issue);
}
separator();
}
+sub summary {
+ check_paths();
+
+ # find all the issues
+ my $issues = get_all_issues();
+ separator();
+ title('Summary');
+ foreach my $issue ( @$issues ) {
+ display_issue_summary($issue);
+ }
+ separator();
+}
+
sub show {
my ($issue_name) = @_;
}
}
+sub get_all_issues {
+ my @issues;
+ my @filenames = <issues/*.yaml>;
+ foreach my $filename ( sort @filenames ) {
+ push @issues, CIL::Issue->new_load_issue( basename($filename, '.yaml') );
+ }
+ @issues = sort { $a->Inserted cmp $b->Inserted } @issues;
+ return \@issues;
+}
+
## ----------------------------------------------------------------------------
# input/output
+sub display_issue_summary {
+ my ($issue) = @_;
+
+ my $msg = $issue->Name;
+ $msg .= "\t";
+ $msg .= $issue->Status;
+ $msg .= "\t";
+ $msg .= $issue->CreatedBy;
+ $msg .= "\t";
+ $msg .= $issue->Summary;
+
+ msg($msg);
+}
+
sub display_issue_short {
my ($issue) = @_;