diff --git a/Gitolite/Commands/QueryRc.pm b/Gitolite/Commands/QueryRc.pm deleted file mode 100644 index 4d241b4..0000000 --- a/Gitolite/Commands/QueryRc.pm +++ /dev/null @@ -1,81 +0,0 @@ -package Gitolite::Commands::QueryRc; - -# implements 'gitolite query-rc' -# ---------------------------------------------------------------------- - -=for usage - -Usage: gitolite query-rc -a - gitolite query-rc - -Example: - - gitolite query-rc GL_ADMIN_BASE GL_UMASK - # prints "/home/git/.gitolite0077" or similar - - gitolite query-rc -a - # prints all known variables and values, one per line -=cut - -# ---------------------------------------------------------------------- - -@EXPORT = qw( - query_rc -); - -use Exporter 'import'; -use Getopt::Long; - -use lib $ENV{GL_BINDIR}; -use Gitolite::Rc; -use Gitolite::Common; - -use strict; -use warnings; - -# ---------------------------------------------------------------------- - -my $all = 0; - -# ---------------------------------------------------------------------- - -sub query_rc { - trace( 1, "rc file not found; default should be " . glrc('default-filename') ) if not glrc('filename'); - - my @vars = args(); - - no strict 'refs'; - - if ( $vars[0] eq '-a' ) { - for my $e (@Gitolite::Rc::EXPORT) { - # perl-ism warning: if you don't do this the implicit aliasing - # screws up Rc's EXPORT list - my $v = $e; - # we stop on the first non-$ var - last unless $v =~ s/^\$//; - print "$v=" . ( defined($$v) ? $$v : 'undef' ) . "\n"; - } - } - - our $GL_BINDIR = $ENV{GL_BINDIR}; - - print join( "\t", map { $$_ } grep { $$_ } @vars ) . "\n" if @vars; -} - -# ---------------------------------------------------------------------- - -sub args { - my $help = 0; - - GetOptions( - 'all|a' => \$all, - 'help|h' => \$help, - ) or usage(); - - usage("'-a' cannot be combined with other arguments") if $all and @ARGV; - return '-a' if $all; - usage() if not @ARGV or $help; - return @ARGV; -} - -1; diff --git a/Gitolite/Rc.pm b/Gitolite/Rc.pm index 6fe0ff9..47f0cdb 100644 --- a/Gitolite/Rc.pm +++ b/Gitolite/Rc.pm @@ -6,6 +6,7 @@ package Gitolite::Rc; @EXPORT = qw( %rc glrc + query_rc $ADC_CMD_ARGS_PATT $REF_OR_FILENAME_PATT @@ -15,10 +16,17 @@ package Gitolite::Rc; ); use Exporter 'import'; +use Getopt::Long; use lib $ENV{GL_BINDIR}; use Gitolite::Common; +# ---------------------------------------------------------------------- + +our %rc; + +# ---------------------------------------------------------------------- + # variables that are/could be/should be in the rc file # ---------------------------------------------------------------------- @@ -86,6 +94,61 @@ sub glrc { } # ---------------------------------------------------------------------- +# implements 'gitolite query-rc' +# ---------------------------------------------------------------------- + +=for usage + +Usage: gitolite query-rc -a + gitolite query-rc + +Example: + + gitolite query-rc GL_ADMIN_BASE GL_UMASK + # prints "/home/git/.gitolite0077" or similar + + gitolite query-rc -a + # prints all known variables and values, one per line +=cut + +# ---------------------------------------------------------------------- + +my $all = 0; + +sub query_rc { + trace( 1, "rc file not found; default should be " . glrc('default-filename') ) if not glrc('filename'); + + my @vars = args(); + + no strict 'refs'; + + if ( $vars[0] eq '-a' ) { + for my $e (sort keys %rc) { + print "$e=" . ( defined($rc{$e}) ? $rc{$e} : 'undef' ) . "\n"; + } + return; + } + + our $GL_BINDIR = $ENV{GL_BINDIR}; + + print join( "\t", map { $rc{$_} } @vars ) . "\n" if @vars; +} + +# ---------------------------------------------------------------------- + +sub args { + my $help = 0; + + GetOptions( + 'all|a' => \$all, + 'help|h' => \$help, + ) or usage(); + + usage("'-a' cannot be combined with other arguments") if $all and @ARGV; + return '-a' if $all; + usage() if not @ARGV or $help; + return @ARGV; +} 1; diff --git a/gitolite b/gitolite index d8d1c3e..f6271b8 100755 --- a/gitolite +++ b/gitolite @@ -59,8 +59,6 @@ sub args { compile(); } elsif ( $command eq 'query-rc' ) { shift @ARGV; - require Gitolite::Commands::QueryRc; - Gitolite::Commands::QueryRc->import; query_rc(); } elsif ( $command eq 'list-groups' ) { shift @ARGV;