diff options
author | Eric Wong <e@80x24.org> | 2021-10-12 11:47:04 +0000 |
---|---|---|
committer | Eric Wong <e@80x24.org> | 2021-10-12 21:46:36 +0000 |
commit | 9f02576da775abf208f5a03c03b6f7abd72596d0 (patch) | |
tree | 49d24d01fca0987281d087862e5149c60928b68a /lib/PublicInbox/Msgmap.pm | |
parent | 2a3c8d7a2c40ad9424db10d68470d8bb120bddf9 (diff) | |
download | public-inbox-9f02576da775abf208f5a03c03b6f7abd72596d0.tar.gz |
msgmap: ->new_file to supports $ibx arg, drop ->new
The original Msgmap->new API was v1-specific and not necessary. The ->new_file API now supports an $ibx object being passed to it, simplify -no_fsync use. It will also make an upcoming change easier...
Diffstat (limited to 'lib/PublicInbox/Msgmap.pm')
-rw-r--r-- | lib/PublicInbox/Msgmap.pm | 20 |
1 files changed, 9 insertions, 11 deletions
diff --git a/lib/PublicInbox/Msgmap.pm b/lib/PublicInbox/Msgmap.pm index 978730e2..94a0cbeb 100644 --- a/lib/PublicInbox/Msgmap.pm +++ b/lib/PublicInbox/Msgmap.pm @@ -14,19 +14,17 @@ use DBI; use DBD::SQLite; use PublicInbox::Over; use PublicInbox::Spawn; - -sub new { - my ($class, $git_dir, $writable) = @_; - my $d = "$git_dir/public-inbox"; - if ($writable && !-d $d && !mkdir $d) { - my $err = $!; - -d $d or die "$d not created: $err"; - } - new_file($class, "$d/msgmap.sqlite3", $writable); -} +use Scalar::Util qw(blessed); sub new_file { - my ($class, $f, $rw) = @_; + my ($class, $ibx, $rw) = @_; + my $f; + if (blessed($ibx)) { + $f = $ibx->mm_file; + $rw = 2 if $rw && $ibx->{-no_fsync}; + } else { + $f = $ibx; + } return if !$rw && !-r $f; my $self = bless { filename => $f }, $class; |