#!/usr/bin/perl
use strict;
use warnings;

use lib $ENV{GL_LIBDIR};
use Gitolite::Rc;
use Gitolite::Common;

=for usage
Usage:  ssh git@host help       # via ssh
        gitolite help           # directly on server command line

Prints a list of custom commands available at this gitolite installation.

Each command has its own help, accessed by passing it '-h' again.
=cut

usage() if @ARGV;

my $user = $ENV{GL_USER} || '';
print "hello" . ( $user ? " $user" : "" ) . ", this is gitolite3 " . version() . " on git " . substr( `git --version`, 12 ) . "\n";

_chdir("$ENV{GL_BINDIR}/commands");

print "list of " . ( $user ? "remote" : "gitolite" ) . " commands available:\n\n";

for my $c (`find . -type f|sort`) {
    chomp($c);
    $c =~ s(^./)();
    next unless -x $c;

    # if it's from a remote client, show only what he is allowed
    next if $user and not $rc{COMMANDS}{$c};

    print "\t$c\n";
}
print "\n";

exit 0;
