aboutsummaryrefslogtreecommitdiff
path: root/gitolite-tools/user_repos.pl
diff options
context:
space:
mode:
Diffstat (limited to 'gitolite-tools/user_repos.pl')
-rwxr-xr-xgitolite-tools/user_repos.pl31
1 files changed, 31 insertions, 0 deletions
diff --git a/gitolite-tools/user_repos.pl b/gitolite-tools/user_repos.pl
new file mode 100755
index 0000000..3274ab3
--- /dev/null
+++ b/gitolite-tools/user_repos.pl
@@ -0,0 +1,31 @@
+#!/usr/bin/perl
+
+## Lists every repository a given user can read
+
+use strict;
+use warnings;
+
+$ENV{GL_USER} = $ARGV[0];
+
+BEGIN {
+ $ENV{HOME} = "/home/git";
+ $ENV{GL_BINDIR} = "/home/git/gitolite/src";
+ $ENV{GL_LIBDIR} = "/home/git/gitolite/src/lib";
+};
+
+# Pull in gitolite's perl API module. Among other things, this also sets the
+# GL_REPO_BASE environment variable.
+use lib $ENV{GL_LIBDIR};
+use Gitolite::Rc;
+use Gitolite::Common;
+use Gitolite::Conf::Load;
+use Gitolite::Easy;
+
+_chdir( $rc{GL_REPO_BASE} );
+my $repos = list_phy_repos(1);
+
+for my $repo (@$repos) {
+ if (can_read($repo)) {
+ print $repo . ".git\n";
+ }
+}