Allow HOMEBREW_CURLRC to provide a path for curl --config
Co-authored-by: Mike McQuaid <mike@mikemcquaid.com> Co-authored-by: Carlo Cabrera <30379873+carlocab@users.noreply.github.com>
This commit is contained in:
parent
d30b68715f
commit
4ade9351e4
@ -132,9 +132,10 @@ module Homebrew
|
|||||||
boolean: true,
|
boolean: true,
|
||||||
},
|
},
|
||||||
HOMEBREW_CURLRC: {
|
HOMEBREW_CURLRC: {
|
||||||
description: "If set, do not pass `--disable` when invoking `curl`(1), which disables the " \
|
description: "If set to an absolute path (i.e. beginning with `/`), pass it with `--config` when invoking " \
|
||||||
"use of `curlrc`.",
|
"`curl`(1). " \
|
||||||
boolean: true,
|
"If set but _not_ a valid path, do not pass `--disable`, which disables the " \
|
||||||
|
"use of `.curlrc`.",
|
||||||
},
|
},
|
||||||
HOMEBREW_DEBUG: {
|
HOMEBREW_DEBUG: {
|
||||||
description: "If set, always assume `--debug` when running commands.",
|
description: "If set, always assume `--debug` when running commands.",
|
||||||
|
|||||||
@ -67,8 +67,8 @@ module Homebrew::EnvConfig
|
|||||||
sig { returns(T::Boolean) }
|
sig { returns(T::Boolean) }
|
||||||
def self.curl_verbose?; end
|
def self.curl_verbose?; end
|
||||||
|
|
||||||
sig { returns(T::Boolean) }
|
sig { returns(T.nilable(String)) }
|
||||||
def self.curlrc?; end
|
def self.curlrc; end
|
||||||
|
|
||||||
sig { returns(T::Boolean) }
|
sig { returns(T::Boolean) }
|
||||||
def self.debug?; end
|
def self.debug?; end
|
||||||
|
|||||||
@ -313,11 +313,27 @@ describe "Utils::Curl" do
|
|||||||
expect(curl_args(*args).first).to eq("--disable")
|
expect(curl_args(*args).first).to eq("--disable")
|
||||||
end
|
end
|
||||||
|
|
||||||
it "doesn't return `--disable` as the first argument when HOMEBREW_CURLRC is set" do
|
it "doesn't return `--disable` as the first argument when HOMEBREW_CURLRC is set but not a path" do
|
||||||
ENV["HOMEBREW_CURLRC"] = "1"
|
ENV["HOMEBREW_CURLRC"] = "1"
|
||||||
expect(curl_args(*args).first).not_to eq("--disable")
|
expect(curl_args(*args).first).not_to eq("--disable")
|
||||||
end
|
end
|
||||||
|
|
||||||
|
it "doesn't return `--config` when HOMEBREW_CURLRC is unset" do
|
||||||
|
expect(curl_args(*args)).not_to include(a_string_starting_with("--config"))
|
||||||
|
end
|
||||||
|
|
||||||
|
it "returns `--config` when HOMEBREW_CURLRC is a valid path" do
|
||||||
|
Tempfile.create do |tmpfile|
|
||||||
|
path = tmpfile.path
|
||||||
|
ENV["HOMEBREW_CURLRC"] = path
|
||||||
|
# We still expect --disable
|
||||||
|
expect(curl_args(*args).first).to eq("--disable")
|
||||||
|
expect(curl_args(*args).join(" ")).to include("--config #{path}")
|
||||||
|
end
|
||||||
|
ensure
|
||||||
|
ENV["HOMEBREW_CURLRC"] = nil
|
||||||
|
end
|
||||||
|
|
||||||
it "uses `--connect-timeout` when `:connect_timeout` is Numeric" do
|
it "uses `--connect-timeout` when `:connect_timeout` is Numeric" do
|
||||||
expect(curl_args(*args, connect_timeout: 123).join(" ")).to include("--connect-timeout 123")
|
expect(curl_args(*args, connect_timeout: 123).join(" ")).to include("--connect-timeout 123")
|
||||||
expect(curl_args(*args, connect_timeout: 123.4).join(" ")).to include("--connect-timeout 123.4")
|
expect(curl_args(*args, connect_timeout: 123.4).join(" ")).to include("--connect-timeout 123.4")
|
||||||
|
|||||||
@ -71,7 +71,16 @@ module Utils
|
|||||||
args = []
|
args = []
|
||||||
|
|
||||||
# do not load .curlrc unless requested (must be the first argument)
|
# do not load .curlrc unless requested (must be the first argument)
|
||||||
args << "--disable" unless Homebrew::EnvConfig.curlrc?
|
curlrc = Homebrew::EnvConfig.curlrc
|
||||||
|
if curlrc&.start_with?("/")
|
||||||
|
# If the file exists, we still want to disable loading the default curlrc.
|
||||||
|
args << "--disable" << "--config" << curlrc
|
||||||
|
elsif curlrc
|
||||||
|
# This matches legacy behavior: `HOMEBREW_CURLRC` was a bool,
|
||||||
|
# omitting `--disable` when present.
|
||||||
|
else
|
||||||
|
args << "--disable"
|
||||||
|
end
|
||||||
|
|
||||||
# echo any cookies received on a redirect
|
# echo any cookies received on a redirect
|
||||||
args << "--cookie" << "/dev/null"
|
args << "--cookie" << "/dev/null"
|
||||||
|
|||||||
@ -2176,7 +2176,7 @@ prefix-specific files take precedence over system-wide files (unless
|
|||||||
<br>If set, pass `--verbose` when invoking `curl`(1).
|
<br>If set, pass `--verbose` when invoking `curl`(1).
|
||||||
|
|
||||||
- `HOMEBREW_CURLRC`
|
- `HOMEBREW_CURLRC`
|
||||||
<br>If set, do not pass `--disable` when invoking `curl`(1), which disables the use of `curlrc`.
|
<br>If set to an absolute path (i.e. beginning with `/`), pass it with `--config` when invoking `curl`(1). If set but _not_ a valid path, do not pass `--disable`, which disables the use of `.curlrc`.
|
||||||
|
|
||||||
- `HOMEBREW_DEBUG`
|
- `HOMEBREW_DEBUG`
|
||||||
<br>If set, always assume `--debug` when running commands.
|
<br>If set, always assume `--debug` when running commands.
|
||||||
|
|||||||
@ -3149,7 +3149,7 @@ If set, pass \fB\-\-verbose\fR when invoking \fBcurl\fR(1)\.
|
|||||||
\fBHOMEBREW_CURLRC\fR
|
\fBHOMEBREW_CURLRC\fR
|
||||||
.
|
.
|
||||||
.br
|
.br
|
||||||
If set, do not pass \fB\-\-disable\fR when invoking \fBcurl\fR(1), which disables the use of \fBcurlrc\fR\.
|
If set to an absolute path (i\.e\. beginning with \fB/\fR), pass it with \fB\-\-config\fR when invoking \fBcurl\fR(1)\. If set but \fInot\fR a valid path, do not pass \fB\-\-disable\fR, which disables the use of \fB\.curlrc\fR\.
|
||||||
.
|
.
|
||||||
.TP
|
.TP
|
||||||
\fBHOMEBREW_DEBUG\fR
|
\fBHOMEBREW_DEBUG\fR
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user