Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
'panda list' improvements: Add saved revision info for installed proj…
…ects; rearrange columns for readability; only show extra columns when --verbose requested
  • Loading branch information
Geoffrey Broadwell committed Aug 21, 2012
1 parent e47946f commit 1c443a5
Showing 1 changed file with 14 additions and 5 deletions.
19 changes: 14 additions & 5 deletions bin/panda
Expand Up @@ -2,13 +2,15 @@
use Shell::Command;
use Panda;

sub listprojects($panda, :$installed) {
sub listprojects($panda, :$installed, :$verbose) {
my $es = $panda.ecosystem;
my @projects = $es.project-list.sort.map: { $es.get-project($_) };
@projects .= grep({ $es.project-get-state($_) ne 'absent' })
if $installed;
my @saved = @projects.map({ $es.project-get-saved-meta($_) || {} });
my $max-name = @projects».name».chars.max;
my $max-ver = @projects».version».chars.max;
my $max-rev = @saved.map({ $_<source-revision> // '?'})».chars.max;

for @projects -> $x {
my $s = do given $es.project-get-state($x) {
Expand All @@ -19,10 +21,17 @@ sub listprojects($panda, :$installed) {

my $meta = $s ?? $es.project-get-saved-meta($x) !! $x.metainfo;
my $url = $meta<source-url> // $meta<repo-url> // 'UNKNOWN';
my $rev = $meta<source-revision> // '?';
my $ver = $meta<version>;

printf "%-{$max-name}s %-{$max-ver}s %-12s %s\n",
$x.name, $ver, $s, $url;
if ($verbose) {
printf "%-{$max-name}s %-12s %-{$max-ver}s %-{$max-rev}s %s\n",
$x.name, $s, $ver, $rev, $url;
}
else {
printf "%-{$max-name}s %-12s\n",
$x.name, $s;
}
}
}

Expand Down Expand Up @@ -101,8 +110,8 @@ multi MAIN ('install', *@modules, Bool :$notests, Bool :$nodeps) {
}

#= List all available modules
multi MAIN ('list', Bool :$installed) {
listprojects($panda, :$installed);
multi MAIN ('list', Bool :$installed, Bool :$verbose) {
listprojects($panda, :$installed, :$verbose);
}

#= Update the module database
Expand Down

0 comments on commit 1c443a5

Please sign in to comment.