From c76a20d75200630b0b5072e4ce39651230f8cabe Mon Sep 17 00:00:00 2001 From: Eric Wong Date: Tue, 28 Nov 2023 14:56:23 +0000 Subject: cindex: require `-g GIT_DIR' or `-r PROJECT_ROOT' Accepting @ARGV without switches ends up being ambiguous with optional parameters for --join and --show. Requiring users to specify `--join=' or `--show=' is a bit awkward (as it with -clone --objstore= and the like, but that is historical baggage we need to carry at this point...) --- script/public-inbox-cindex | 38 ++++++++++++++++++++++++++------------ 1 file changed, 26 insertions(+), 12 deletions(-) (limited to 'script') diff --git a/script/public-inbox-cindex b/script/public-inbox-cindex index 97890c1b..a015d7a4 100755 --- a/script/public-inbox-cindex +++ b/script/public-inbox-cindex @@ -4,8 +4,8 @@ use v5.12; use Getopt::Long qw(:config gnu_getopt no_ignore_case auto_abbrev); my $help = <{'project-list'})) { - my $pfx = shift @ARGV // die <{'project-list'})) { + my $pfx = $opt->{'project-root'} // die <{'git-dir'} and die <{'git-dir'}}) EOM open my $fh, '<', $pl or die "open($pl): $!\n"; chomp(@git_dirs = <$fh>); - $_ = PublicInbox::Admin::resolve_git_dir("$pfx/$_") for @git_dirs; + $pfx .= '/'; + $pfx =~ tr!/!/!s; + substr($_, 0, 0, $pfx) for @git_dirs; +} elsif (my $gd = $opt->{'git-dir'}) { + @git_dirs = @$gd; +} elsif (grep defined, @$opt{qw(show update prune)}) { } else { - @git_dirs = map { PublicInbox::Admin::resolve_git_dir($_) } @ARGV; + warn "No --git-dir= nor --project-list= + --project-root= specified\n"; + die $help; } + +$_ = PublicInbox::Admin::resolve_git_dir($_) for @git_dirs; if (defined $cidx_dir) { # external index die "`%' is not allowed in $cidx_dir\n" if $cidx_dir =~ /\%/; my $cidx = PublicInbox::CodeSearchIdx->new($cidx_dir, $opt); -- cgit v1.2.3-24-ge0c7