about summary refs log tree commit homepage
path: root/script
diff options
context:
space:
mode:
authorEric Wong <e@80x24.org>2019-01-07 08:02:13 +0000
committerEric Wong <e@80x24.org>2019-01-11 03:55:21 +0000
commit34f4c437bff62a3297b2fcebf31fcdb24638dec9 (patch)
tree23aa33826a32c9a4dc1dc3004db91fcf99231ae7 /script
parentb0e5062d43a96372801713ef78a78d6a1bc852bc (diff)
downloadpublic-inbox-34f4c437bff62a3297b2fcebf31fcdb24638dec9.tar.gz
We'll be using it in future admin tools, and making this
easier-to-test.
Diffstat (limited to 'script')
-rwxr-xr-xscript/public-inbox-index32
1 files changed, 2 insertions, 30 deletions
diff --git a/script/public-inbox-index b/script/public-inbox-index
index 73ad9bc4..32121f6d 100755
--- a/script/public-inbox-index
+++ b/script/public-inbox-index
@@ -9,9 +9,10 @@
 use strict;
 use warnings;
 use Getopt::Long qw(:config gnu_getopt no_ignore_case auto_abbrev);
-use Cwd 'abs_path';
 my $usage = "public-inbox-index REPO_DIR";
 use PublicInbox::Config;
+use PublicInbox::Admin qw(resolve_repo_dir);
+
 my $config = eval { PublicInbox::Config->new } || eval {
         warn "public-inbox unconfigured for serving, indexing anyways...\n";
         {}
@@ -35,35 +36,6 @@ die "--jobs must be positive\n" if defined $jobs && $jobs < 0;
 
 my @dirs;
 
-sub resolve_repo_dir {
-        my ($cd) = @_;
-        my $prefix = defined $cd ? $cd : './';
-        if (-d $prefix && -f "$prefix/inbox.lock") { # v2
-                return abs_path($prefix);
-        }
-
-        my @cmd = qw(git rev-parse --git-dir);
-        my $cmd = join(' ', @cmd);
-        my $pid = open my $fh, '-|';
-        defined $pid or die "forking $cmd failed: $!\n";
-        if ($pid == 0) {
-                if (defined $cd) {
-                        chdir $cd or die "chdir $cd failed: $!\n";
-                }
-                exec @cmd;
-                die "Failed to exec $cmd: $!\n";
-        } else {
-                my $dir = eval {
-                        local $/;
-                        <$fh>;
-                };
-                close $fh or die "error in $cmd: $!\n";
-                chomp $dir;
-                return abs_path($cd) if ($dir eq '.' && defined $cd);
-                abs_path($dir);
-        }
-}
-
 if (@ARGV) {
         @dirs = map { resolve_repo_dir($_) } @ARGV;
 } else {