Skip to content
GitLab
Explore
Sign in
Register
Primary navigation
Search or go to…
Project
B
brew
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Requirements
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Locked files
Build
Pipelines
Jobs
Pipeline schedules
Test cases
Artifacts
Deploy
Releases
Package registry
Container Registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Service Desk
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Code review analytics
Issue analytics
Insights
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to JiHu GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
KMSCAKKSCFKA AKFACAMADCAS
brew
Commits
06040054
Unverified
Commit
06040054
authored
4 years ago
by
EricFromCanada
Committed by
Mike McQuaid
4 years ago
Browse files
Options
Downloads
Patches
Plain Diff
list: refactor options to catch edge cases
parent
7348bc0e
No related branches found
Branches containing commit
No related tags found
Tags containing commit
No related merge requests found
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
Library/Homebrew/cmd/list.rb
+50
-34
50 additions, 34 deletions
Library/Homebrew/cmd/list.rb
with
50 additions
and
34 deletions
Library/Homebrew/cmd/list.rb
+
50
−
34
View file @
06040054
...
@@ -20,18 +20,18 @@ module Homebrew
...
@@ -20,18 +20,18 @@ module Homebrew
List all installed formulae and casks.
List all installed formulae and casks.
If <formula> is provided, summarise the paths within its current keg.
If <formula> is provided, summarise the paths within its current keg.
If <cask> is provided, list its artifacts.
EOS
EOS
switch
"--formula"
,
"--formulae"
,
switch
"--formula"
,
"--formulae"
,
description:
"List only formulae."
description:
"List only
formulae, or treat all named arguments as
formulae."
switch
"--cask"
,
"--casks"
,
switch
"--cask"
,
"--casks"
,
description:
"List only casks, or
<cask> if provided
."
description:
"List only casks, or
treat all named arguments as casks
."
switch
"--unbrewed"
,
switch
"--unbrewed"
,
description:
"List files in Homebrew's prefix not installed by Homebrew."
description:
"List files in Homebrew's prefix not installed by Homebrew."
switch
"--full-name"
,
switch
"--full-name"
,
depends_on:
"--formula"
,
description:
"Print formulae with fully-qualified names. Unless `--full-name`, `--versions` "
\
description:
"Print formulae with fully-qualified names. If `--full-name` is not "
\
"or `--pinned` are passed, other options (i.e. `-1`, `-l`, `-r` and `-t`) are "
\
"passed, other options (i.e. `-1`, `-l`, `-r` and `-t`) are passed to `ls`(1) "
\
"passed to `ls`(1) which produces the actual output."
"which produces the actual output."
switch
"--versions"
,
switch
"--versions"
,
description:
"Show the version number for installed formulae, or only the specified "
\
description:
"Show the version number for installed formulae, or only the specified "
\
"formulae if <formula> are provided."
"formulae if <formula> are provided."
...
@@ -39,7 +39,7 @@ module Homebrew
...
@@ -39,7 +39,7 @@ module Homebrew
depends_on:
"--versions"
,
depends_on:
"--versions"
,
description:
"Only show formulae with multiple versions installed."
description:
"Only show formulae with multiple versions installed."
switch
"--pinned"
,
switch
"--pinned"
,
description:
"
Show the versions of
pinned formulae, or only the specified (pinned) "
\
description:
"
List only
pinned formulae, or only the specified (pinned) "
\
"formulae if <formula> are provided. See also `pin`, `unpin`."
"formulae if <formula> are provided. See also `pin`, `unpin`."
# passed through to ls
# passed through to ls
switch
"-1"
,
switch
"-1"
,
...
@@ -53,14 +53,20 @@ module Homebrew
...
@@ -53,14 +53,20 @@ module Homebrew
switch
"-t"
,
switch
"-t"
,
description:
"Sort formulae by time modified, listing most recently modified first."
description:
"Sort formulae by time modified, listing most recently modified first."
conflicts
"--formula"
,
"--cask"
conflicts
"--full-name"
,
"--versions"
conflicts
"--pinned"
,
"--multiple"
conflicts
"--cask"
,
"--multiple"
[
"--formula"
,
"--cask"
,
"--full-name"
,
"--versions"
,
"--pinned"
].
each
do
|
flag
|
conflicts
"--unbrewed"
,
flag
end
[
"-1"
,
"-l"
,
"-r"
,
"-t"
].
each
do
|
flag
|
[
"-1"
,
"-l"
,
"-r"
,
"-t"
].
each
do
|
flag
|
conflicts
"--full-name"
,
flag
conflicts
"--unbrewed"
,
flag
conflicts
"--unbrewed"
,
flag
conflicts
"--pinned"
,
flag
conflicts
"--versions"
,
flag
conflicts
"--versions"
,
flag
conflicts
"--pinned"
,
flag
end
end
[
"--pinned"
,
"-l"
,
"-r"
,
"-t"
].
each
do
|
flag
|
[
"--unbrewed"
,
"--formula"
,
"-l"
,
"-r"
,
"-t"
].
each
do
|
flag
|
conflicts
"--full-name"
,
flag
conflicts
"--cask"
,
flag
conflicts
"--cask"
,
flag
end
end
end
end
...
@@ -69,8 +75,6 @@ module Homebrew
...
@@ -69,8 +75,6 @@ module Homebrew
def
list
def
list
args
=
list_args
.
parse
args
=
list_args
.
parse
return
list_casks
(
args:
args
)
if
args
.
cask?
if
args
.
unbrewed?
if
args
.
unbrewed?
raise
UsageError
,
"`--unbrewed` does not take a formula/cask argument."
unless
args
.
no_named?
raise
UsageError
,
"`--unbrewed` does not take a formula/cask argument."
unless
args
.
no_named?
...
@@ -80,35 +84,47 @@ module Homebrew
...
@@ -80,35 +84,47 @@ module Homebrew
# Unbrewed uses the PREFIX, which will exist
# Unbrewed uses the PREFIX, which will exist
# Things below use the CELLAR, which doesn't until the first formula is installed.
# Things below use the CELLAR, which doesn't until the first formula is installed.
unless
HOMEBREW_CELLAR
.
exist?
unless
HOMEBREW_CELLAR
.
exist?
raise
NoSuchKegError
,
args
.
named
.
first
if
args
.
named
.
present?
raise
NoSuchKegError
,
args
.
named
.
first
if
args
.
named
.
present?
&&
!
args
.
cask?
return
return
end
end
if
args
.
pinned?
||
args
.
versions?
if
args
.
full_name?
unless
args
.
cask?
formula_names
=
args
.
no_named?
?
Formula
.
installed
:
args
.
named
.
to_resolved_formulae
full_formula_names
=
formula_names
.
map
(
&
:full_name
).
sort
(
&
tap_and_name_comparison
)
full_formula_names
=
Formatter
.
columns
(
full_formula_names
)
unless
args
.
public_send
(
:'1?'
)
puts
full_formula_names
unless
full_formula_names
.
blank?
end
if
args
.
cask?
||
(
!
args
.
formula?
&&
args
.
no_named?
)
cask_names
=
if
args
.
no_named?
Cask
::
Caskroom
.
casks
else
args
.
named
.
to_formulae_and_casks
(
only: :cask
,
method: :resolve
)
end
full_cask_names
=
cask_names
.
map
(
&
:full_name
).
sort
(
&
tap_and_name_comparison
)
full_cask_names
=
Formatter
.
columns
(
full_cask_names
)
unless
args
.
public_send
(
:'1?'
)
puts
full_cask_names
unless
full_cask_names
.
blank?
end
elsif
args
.
cask?
list_casks
(
args:
args
)
elsif
args
.
pinned?
||
args
.
versions?
filtered_list
args:
args
filtered_list
args:
args
elsif
args
.
no_named?
elsif
args
.
no_named?
if
args
.
full_name?
ENV
[
"CLICOLOR"
]
=
nil
full_names
=
Formula
.
installed
.
map
(
&
:full_name
).
sort
(
&
tap_and_name_comparison
)
return
if
full_names
.
empty?
puts
Formatter
.
columns
(
full_names
)
else
ENV
[
"CLICOLOR"
]
=
nil
ls_args
=
[]
ls_args
=
[]
ls_args
<<
"-1"
if
args
.
public_send
(
:'1?'
)
ls_args
<<
"-1"
if
args
.
public_send
(
:'1?'
)
ls_args
<<
"-l"
if
args
.
l?
ls_args
<<
"-l"
if
args
.
l?
ls_args
<<
"-r"
if
args
.
r?
ls_args
<<
"-r"
if
args
.
r?
ls_args
<<
"-t"
if
args
.
t?
ls_args
<<
"-t"
if
args
.
t?
if
!
$stdout
.
tty?
&&
!
args
.
formula?
if
!
$stdout
.
tty?
&&
!
args
.
formula?
&&
!
args
.
cask?
odeprecated
"`brew list` to only list formulae"
,
"`brew list --formula`"
odeprecated
"`brew list` to only list formulae"
,
"`brew list --formula`"
safe_system
"ls"
,
*
ls_args
,
HOMEBREW_CELLAR
safe_system
"ls"
,
*
ls_args
,
HOMEBREW_CELLAR
else
else
safe_system
"ls"
,
*
ls_args
,
HOMEBREW_CELLAR
safe_system
"ls"
,
*
ls_args
,
HOMEBREW_CELLAR
unless
args
.
cask?
list_casks
(
args:
args
)
unless
args
.
formula?
list_casks
(
args:
args
)
unless
args
.
formula?
end
end
end
elsif
args
.
verbose?
||
!
$stdout
.
tty?
elsif
args
.
verbose?
||
!
$stdout
.
tty?
system_command!
"find"
,
args:
args
.
named
.
to_kegs
.
map
(
&
:to_s
)
+
%w[-not -type d -print]
,
print_stdout:
true
system_command!
"find"
,
args:
args
.
named
.
to_kegs
.
map
(
&
:to_s
)
+
%w[-not -type d -print]
,
print_stdout:
true
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment