]> git.mjollnir.org Git - cil.git/commitdiff
Added command 'summary'
authorAndrew Chilton <andychilton@gmail.com>
Sat, 19 Apr 2008 20:48:39 +0000 (08:48 +1200)
committerAndrew Chilton <andychilton@gmail.com>
Sat, 19 Apr 2008 20:48:39 +0000 (08:48 +1200)
bin/cil

diff --git a/bin/cil b/bin/cil
index 7b104e8f0df56d279c7ff303786f82208b092a26..13329d34d29bcab34f0cde4405ef69fcfe332993 100755 (executable)
--- a/bin/cil
+++ b/bin/cil
@@ -14,6 +14,7 @@ use File::Basename;
 my $COMMANDS = {
     init    => 1,
     list    => 1,
+    summary => 1,
     add     => 1,
     show    => 1,
     edit    => 1,
@@ -54,9 +55,12 @@ EOF
         init($path);
     }
     elsif ( $command eq 'list' ) {
-        my ($issue_name) = @ARGV;
         list();
 
+    }
+    elsif ( $command eq 'summary' ) {
+        summary();
+
     }
     elsif ( $command eq 'show' ) {
         my ($issue_name) = @ARGV;
@@ -122,21 +126,28 @@ sub init {
 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) = @_;
 
@@ -275,9 +286,33 @@ sub check_paths {
     }
 }
 
+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) = @_;