While the changes to git->qx/git->popen from commit
171a9c24022ad7ef
will be useful for the lei daemon, hiding git error messages from
actual users is probably wrong and we'll just localize GIT_*
vars for testing.
sub git_ident ($) {
my ($git) = @_;
- open my $null, '>', '/dev/null' or die "open /dev/null: $!";
- my $opt = { 2 => $null };
- chomp(my $i = $git->qx(qw(var GIT_COMMITTER_IDENT), undef, $opt));
+ chomp(my $i = $git->qx(qw(var GIT_COMMITTER_IDENT)));
warn "$git->{git_dir} GIT_COMMITTER_IDENT failed\n" if $?;
$i =~ /\A(.+) <([^>]+)> [0-9]+ [-\+]?[0-9]+$/ ? ($1, $2) :
('lei user', 'x@example.com')
my ($home, $for_destroy) = tmpdir();
delete local $ENV{XDG_DATA_HOME};
delete local $ENV{XDG_CONFIG_HOME};
+local $ENV{GIT_COMMITTER_EMAIL} = 'lei@example.com';
+local $ENV{GIT_COMMITTER_NAME} = 'lei user';
+local $ENV{XDG_RUNTIME_DIR} = "$home/xdg_run";
local $ENV{HOME} = $home;
local $ENV{FOO} = 'BAR';
mkdir "$home/xdg_run", 0700 or BAIL_OUT "mkdir: $!";
my ($home, $for_destroy) = tmpdir();
my $opt = { 1 => \(my $out = ''), 2 => \(my $err = '') };
my $store_dir = "$home/lst";
+local $ENV{GIT_COMMITTER_EMAIL} = 'lei@example.com';
+local $ENV{GIT_COMMITTER_NAME} = 'lei user';
my $lst = PublicInbox::LeiStore->new($store_dir, { creat => 1 });
ok($lst, '->new');
my $smsg = $lst->add_eml(eml_load('t/data/0001.patch'));