Merge pull request #5201 from GauthamGoli/fetch-args

fetch: Use CLI::Parser to parse args
This commit is contained in:
Mike McQuaid 2019-01-29 14:11:36 +00:00 committed by GitHub
commit 3bdc4c294d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 45 additions and 8 deletions

View File

@ -15,8 +15,8 @@
#: #:
#: If `--deps` is passed, also download dependencies for any listed <formulae>. #: If `--deps` is passed, also download dependencies for any listed <formulae>.
#: #:
#: If `--build-from-source` (or `-s`) is passed, download the source rather than a #: If `--build-from-source` (or `-s`) or `--build-bottle` is passed, download the
#: bottle. #: source rather than a bottle.
#: #:
#: If `--force-bottle` is passed, download a bottle if it exists for the #: If `--force-bottle` is passed, download a bottle if it exists for the
#: current or newest version of macOS, even if it would not be used during #: current or newest version of macOS, even if it would not be used during
@ -24,14 +24,51 @@
require "formula" require "formula"
require "fetch" require "fetch"
require "cli_parser"
module Homebrew module Homebrew
module_function module_function
def fetch_args
Homebrew::CLI::Parser.new do
usage_banner <<~EOS
`fetch` [<options>] <formulae>
Download the source packages for the given <formulae>.
For tarballs, also print SHA-256 checksums.
EOS
switch "--HEAD",
description: "Fetch HEAD version instead of stable version."
switch "--devel",
description: "Fetch devel version instead of stable version."
switch :verbose,
description: "Do a verbose VCS checkout, if the URL represents a VCS. This is useful for "\
"seeing if an existing VCS cache has been updated."
switch :force,
description: "Remove a previously cached version and re-fetch."
switch "--retry",
description: "Retry if a download fails or re-download if the checksum of a previously cached "\
"version no longer matches."
switch "--deps",
description: "Download dependencies for any listed <formulae>."
switch "-s", "--build-from-source",
description: "Download the source for rather than a bottle."
switch "--build-bottle",
description: "Download the source (for eventual bottling) rather than a bottle."
switch "--force-bottle",
description: "Download a bottle if it exists for the current or newest version of macOS, "\
"even if it would not be used during installation."
switch :verbose
switch :debug
end
end
def fetch def fetch
fetch_args.parse
raise FormulaUnspecifiedError if ARGV.named.empty? raise FormulaUnspecifiedError if ARGV.named.empty?
if ARGV.include? "--deps" if args.deps?
bucket = [] bucket = []
ARGV.formulae.each do |f| ARGV.formulae.each do |f|
bucket << f bucket << f
@ -100,7 +137,7 @@ module Homebrew
def retry_fetch?(f) def retry_fetch?(f)
@fetch_failed ||= Set.new @fetch_failed ||= Set.new
if ARGV.include?("--retry") && @fetch_failed.add?(f) if args.retry? && @fetch_failed.add?(f)
ohai "Retrying download" ohai "Retrying download"
f.clear_cache f.clear_cache
true true
@ -111,7 +148,7 @@ module Homebrew
end end
def fetch_fetchable(f) def fetch_fetchable(f)
f.clear_cache if ARGV.force? f.clear_cache if args.force?
already_fetched = f.cached_download.exist? already_fetched = f.cached_download.exist?

View File

@ -171,8 +171,8 @@ these flags should only appear after a command.
If `--deps` is passed, also download dependencies for any listed *`formulae`*. If `--deps` is passed, also download dependencies for any listed *`formulae`*.
If `--build-from-source` (or `-s`) is passed, download the source rather than a If `--build-from-source` (or `-s`) or `--build-bottle` is passed, download the
bottle. source rather than a bottle.
If `--force-bottle` is passed, download a bottle if it exists for the If `--force-bottle` is passed, download a bottle if it exists for the
current or newest version of macOS, even if it would not be used during current or newest version of macOS, even if it would not be used during

View File

@ -174,7 +174,7 @@ If \fB\-\-retry\fR is passed, retry if a download fails or re\-download if the c
If \fB\-\-deps\fR is passed, also download dependencies for any listed \fIformulae\fR\. If \fB\-\-deps\fR is passed, also download dependencies for any listed \fIformulae\fR\.
. .
.IP .IP
If \fB\-\-build\-from\-source\fR (or \fB\-s\fR) is passed, download the source rather than a bottle\. If \fB\-\-build\-from\-source\fR (or \fB\-s\fR) or \fB\-\-build\-bottle\fR is passed, download the source rather than a bottle\.
. .
.IP .IP
If \fB\-\-force\-bottle\fR is passed, download a bottle if it exists for the current or newest version of macOS, even if it would not be used during installation\. If \fB\-\-force\-bottle\fR is passed, download a bottle if it exists for the current or newest version of macOS, even if it would not be used during installation\.