gitolite/src/commands/info

44 lines
928 B
Perl
Executable file

#!/usr/bin/perl
use strict;
use warnings;
use lib $ENV{GL_BINDIR};
use Gitolite::Rc;
use Gitolite::Common;
use Gitolite::Conf::Load;
=for usage
Usage: gitolite info
- list all repos/repo groups you can access
- no options, no flags
=cut
usage() if @ARGV;
my $user = $ENV{GL_USER} or _die "GL_USER not set";
my $ref = 'any';
print "hello $user, this is gitolite3 " . version() . " on git " . substr(`git --version`, 12) . "\n";
my $lr = lister_dispatch('list-repos');
my $lm = lister_dispatch('list-members');
for ( @{ $lr->() } ) {
my $perm = '';
for my $aa (qw(R W ^C)) {
my $ret = access($_, $user, $aa, $ref);
$perm .= ( $ret =~ /DENIED/ ? " " : " $aa" );
}
next unless $perm =~ /\S/;
if (/^\@/) {
print "\n$perm\t$_\n";
for ( @{ $lm->($_) } ) {
print "$perm\t$_\n";
}
print "\n";
} else {
print "$perm\t$_\n";
}
}