X-Git-Url: http://www.git.stargrave.org/?a=blobdiff_plain;f=lib%2FPublicInbox%2FFetch.pm;h=d75e427b0ea92794717364865fee24d9a81c3a25;hb=b5b4e2de2d6949d588e6521ef25d4a01ab3a878b;hp=3b6aa389f383405981a17c047d8a9bcaddddfedf;hpb=d922fc44d1afb5e4400f2606c475e42aee087c24;p=public-inbox.git diff --git a/lib/PublicInbox/Fetch.pm b/lib/PublicInbox/Fetch.pm index 3b6aa389..d75e427b 100644 --- a/lib/PublicInbox/Fetch.pm +++ b/lib/PublicInbox/Fetch.pm @@ -2,8 +2,7 @@ # License: AGPL-3.0+ # Wrapper to "git fetch" remote public-inboxes package PublicInbox::Fetch; -use strict; -use v5.10.1; +use v5.12; use parent qw(PublicInbox::IPC); use URI (); use PublicInbox::Spawn qw(popen_rd run_die spawn); @@ -12,24 +11,9 @@ use PublicInbox::LEI; use PublicInbox::LeiCurl; use PublicInbox::LeiMirror; use File::Temp (); -use PublicInbox::Config; -use IO::Compress::Gzip qw(gzip $GzipError); sub new { bless {}, __PACKAGE__ } -sub fetch_args ($$) { - my ($lei, $opt) = @_; - my @cmd; # (git --git-dir=...) to be added by caller - $opt->{$_} = $lei->{$_} for (0..2); - # we support "-c $key=$val" for arbitrary git config options - # e.g.: git -c http.proxy=socks5h://127.0.0.1:9050 - push(@cmd, '-c', $_) for @{$lei->{opt}->{c} // []}; - push @cmd, 'fetch'; - push @cmd, '-q' if $lei->{opt}->{quiet}; - push @cmd, '-v' if $lei->{opt}->{verbose}; - @cmd; -} - sub remote_url ($$) { my ($lei, $dir) = @_; my $rn = $lei->{opt}->{'try-remote'} // [ 'origin', '_grokmirror' ]; @@ -207,7 +191,7 @@ EOM if (-d $d) { $fp2->[0] = get_fingerprint2($d) if $fp2; $cmd = [ @$torsocks, 'git', "--git-dir=$d", - fetch_args($lei, $opt) ]; + PublicInbox::LeiMirror::fetch_args($lei, $opt)]; } else { my $e_uri = $ibx_uri->clone; my ($epath) = ($d =~ m!(/git/[0-9]+\.git)\z!); @@ -233,13 +217,7 @@ EOM } for my $i (@new_epoch) { $mg->epoch_cfg_set($i) } if ($ft) { - if ($mculled) { - my $json = PublicInbox::Config->json->encode($m1); - my $fn = $ft->filename; - my $mtime = (stat($fn))[9]; - gzip(\$json => $fn) or die "gzip: $GzipError"; - utime($mtime, $mtime, $fn) or die "utime(..., $fn): $!"; - } + PublicInbox::LeiMirror::dump_manifest($m1 => $ft) if $mculled; PublicInbox::LeiMirror::ft_rename($ft, $mf, 0666); } $lei->child_error($xit << 8) if $fp2 && $xit;