@matheusbsbs / matheus-bagliano / commits / ad79c02451
Fork 0

send-email: Don't require to be called in a repository

We might not have some configuration variables available, but if the user doesn't care about that, neither should we. Still use the repository if it is available, though. Signed-off-by: Frank Lichtenheld <frank@lichtenheld.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>

Frank Lichtenheld committed Mar 14, 2008 at 18:29 UTC ad79c02451295a4b1ce59e60cfc0ca4bd7e3fbdf
1 file changed +11 -9
git-send-email.perl
+11 -9
@@ -168,7 +168,8 @@ my $envelope_sender;
168 # Example reply to:
169 #$initial_reply_to = ''; #<20050203173208.GA23964@foobar.com>';
170
171 -my $repo = Git->repository();
171 +my $repo = eval { Git->repository() };
172 +my @repo = $repo ? ($repo) : ();
173 my $term = eval {
174 $ENV{"GIT_SEND_EMAIL_NOTTY"}
175 ? new Term::ReadLine 'git-send-email', \*STDIN, \*STDOUT
@@ -271,25 +272,25 @@ sub read_config {
272
273 foreach my $setting (keys %config_bool_settings) {
274 my $target = $config_bool_settings{$setting}->[0];
274 - $$target = $repo->config_bool("$prefix.$setting") unless (defined $$target);
275 + $$target = Git::config_bool(@repo, "$prefix.$setting") unless (defined $$target);
276 }
277
278 foreach my $setting (keys %config_settings) {
279 my $target = $config_settings{$setting};
280 if (ref($target) eq "ARRAY") {
281 unless (@$target) {
281 - my @values = $repo->config("$prefix.$setting");
282 + my @values = Git::config(@repo, "$prefix.$setting");
283 @$target = @values if (@values && defined $values[0]);
284 }
285 }
286 else {
286 - $$target = $repo->config("$prefix.$setting") unless (defined $$target);
287 + $$target = Git::config(@repo, "$prefix.$setting") unless (defined $$target);
288 }
289 }
290 }
291
292 # read configuration from [sendemail "$identity"], fall back on [sendemail]
292 -$identity = $repo->config("sendemail.identity") unless (defined $identity);
293 +$identity = Git::config(@repo, "sendemail.identity") unless (defined $identity);
294 read_config("sendemail.$identity") if (defined $identity);
295 read_config("sendemail");
296
@@ -327,8 +328,9 @@ if (0) {
328 }
329 }
330
330 -my ($repoauthor) = $repo->ident_person('author');
331 -my ($repocommitter) = $repo->ident_person('committer');
331 +my ($repoauthor, $repocommitter);
332 +($repoauthor) = Git::ident_person(@repo, 'author');
333 +($repocommitter) = Git::ident_person(@repo, 'committer');
334
335 # Verify the user input
336
@@ -415,7 +417,7 @@ if (@files) {
417
418 my $prompting = 0;
419 if (!defined $sender) {
418 - $sender = $repoauthor || $repocommitter;
420 + $sender = $repoauthor || $repocommitter || '';
421
422 while (1) {
423 $_ = $term->readline("Who should the emails appear to be from? [$sender] ");
@@ -509,7 +511,7 @@ GIT: for the patch you are writing.
511 EOT
512 close(C);
513
512 - my $editor = $ENV{GIT_EDITOR} || $repo->config("core.editor") || $ENV{VISUAL} || $ENV{EDITOR} || "vi";
514 + my $editor = $ENV{GIT_EDITOR} || Git::config(@repo, "core.editor") || $ENV{VISUAL} || $ENV{EDITOR} || "vi";
515 system('sh', '-c', '$0 $@', $editor, $compose_filename);
516
517 open(C2,">",$compose_filename . ".final")