summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorÆvar Arnfjörð Bjarmason <avarab@gmail.com>2019-05-09 11:48:28 (GMT)
committerJunio C Hamano <gitster@pobox.com>2019-05-13 08:11:49 (GMT)
commitc573572c52758c4368ebc410d6b801fefa6bcbdd (patch)
treea4f3125805bbabc51c503be6681da08459aed750
parente67a228cd8afa7a645a321df90393deceaa57a0e (diff)
downloadgit-c573572c52758c4368ebc410d6b801fefa6bcbdd.zip
git-c573572c52758c4368ebc410d6b801fefa6bcbdd.tar.gz
git-c573572c52758c4368ebc410d6b801fefa6bcbdd.tar.bz2
send-email: move the read_config() function above getopts
This is in preparation for a later change where we'll read the config first before parsing command-line options. As the move detection will show no lines (except one line of comment) is changed here, just moved around. Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rwxr-xr-xgit-send-email.perl97
1 files changed, 48 insertions, 49 deletions
diff --git a/git-send-email.perl b/git-send-email.perl
index f4c0790..6d6dee6 100755
--- a/git-send-email.perl
+++ b/git-send-email.perl
@@ -307,6 +307,54 @@ sub signal_handler {
$SIG{TERM} = \&signal_handler;
$SIG{INT} = \&signal_handler;
+# Read our sendemail.* config
+sub read_config {
+ my ($prefix) = @_;
+
+ foreach my $setting (keys %config_bool_settings) {
+ my $target = $config_bool_settings{$setting}->[0];
+ $$target = Git::config_bool(@repo, "$prefix.$setting") unless (defined $$target);
+ }
+
+ foreach my $setting (keys %config_path_settings) {
+ my $target = $config_path_settings{$setting};
+ if (ref($target) eq "ARRAY") {
+ unless (@$target) {
+ my @values = Git::config_path(@repo, "$prefix.$setting");
+ @$target = @values if (@values && defined $values[0]);
+ }
+ }
+ else {
+ $$target = Git::config_path(@repo, "$prefix.$setting") unless (defined $$target);
+ }
+ }
+
+ foreach my $setting (keys %config_settings) {
+ my $target = $config_settings{$setting};
+ next if $setting eq "to" and defined $no_to;
+ next if $setting eq "cc" and defined $no_cc;
+ next if $setting eq "bcc" and defined $no_bcc;
+ if (ref($target) eq "ARRAY") {
+ unless (@$target) {
+ my @values = Git::config(@repo, "$prefix.$setting");
+ @$target = @values if (@values && defined $values[0]);
+ }
+ }
+ else {
+ $$target = Git::config(@repo, "$prefix.$setting") unless (defined $$target);
+ }
+ }
+
+ if (!defined $smtp_encryption) {
+ my $enc = Git::config(@repo, "$prefix.smtpencryption");
+ if (defined $enc) {
+ $smtp_encryption = $enc;
+ } elsif (Git::config_bool(@repo, "$prefix.smtpssl")) {
+ $smtp_encryption = 'ssl';
+ }
+ }
+}
+
# Begin by accumulating all the variables (defined above), that we will end up
# needing, first, from the command line:
@@ -387,55 +435,6 @@ die __("`batch-size` and `relogin` must be specified together " .
"(via command-line or configuration option)\n")
if defined $relogin_delay and not defined $batch_size;
-# Now, let's fill any that aren't set in with defaults:
-
-sub read_config {
- my ($prefix) = @_;
-
- foreach my $setting (keys %config_bool_settings) {
- my $target = $config_bool_settings{$setting}->[0];
- $$target = Git::config_bool(@repo, "$prefix.$setting") unless (defined $$target);
- }
-
- foreach my $setting (keys %config_path_settings) {
- my $target = $config_path_settings{$setting};
- if (ref($target) eq "ARRAY") {
- unless (@$target) {
- my @values = Git::config_path(@repo, "$prefix.$setting");
- @$target = @values if (@values && defined $values[0]);
- }
- }
- else {
- $$target = Git::config_path(@repo, "$prefix.$setting") unless (defined $$target);
- }
- }
-
- foreach my $setting (keys %config_settings) {
- my $target = $config_settings{$setting};
- next if $setting eq "to" and defined $no_to;
- next if $setting eq "cc" and defined $no_cc;
- next if $setting eq "bcc" and defined $no_bcc;
- if (ref($target) eq "ARRAY") {
- unless (@$target) {
- my @values = Git::config(@repo, "$prefix.$setting");
- @$target = @values if (@values && defined $values[0]);
- }
- }
- else {
- $$target = Git::config(@repo, "$prefix.$setting") unless (defined $$target);
- }
- }
-
- if (!defined $smtp_encryption) {
- my $enc = Git::config(@repo, "$prefix.smtpencryption");
- if (defined $enc) {
- $smtp_encryption = $enc;
- } elsif (Git::config_bool(@repo, "$prefix.smtpssl")) {
- $smtp_encryption = 'ssl';
- }
- }
-}
-
# read configuration from [sendemail "$identity"], fall back on [sendemail]
$identity = Git::config(@repo, "sendemail.identity") unless (defined $identity);
read_config("sendemail.$identity") if (defined $identity);