brew/Library/Homebrew/cmd/commands.rb

49 lines
1.3 KiB
Ruby
Raw Normal View History

# frozen_string_literal: true
2019-04-17 18:25:08 +09:00
require "cli/parser"
module Homebrew
2016-09-26 01:44:51 +02:00
module_function
def commands_args
Homebrew::CLI::Parser.new do
usage_banner <<~EOS
`commands` [<options>]
Show lists of built-in and external commands.
EOS
switch :quiet,
description: "List only the names of commands without category headers."
switch "--include-aliases",
2019-04-30 08:44:35 +01:00
depends_on: "--quiet",
description: "Include aliases of internal commands."
switch :verbose
switch :debug
max_named 0
end
end
def commands
commands_args.parse
if args.quiet?
puts Formatter.columns(Commands.commands(aliases: args.include_aliases?))
return
end
[["Built-in commands", -> { Commands.internal_commands }],
["Built-in developer commands", -> { Commands.internal_developer_commands }],
["External commands", -> { Commands.external_commands }],
["Cask commands", -> { Commands.cask_internal_commands }],
["External cask commands", -> { Commands.cask_external_commands }]]
.each_with_index do |title_and_proc, index|
title, proc = title_and_proc
cmds = proc.call
if cmds.present?
puts unless index.zero?
ohai title, Formatter.columns(cmds)
end
2020-07-20 13:18:09 -04:00
end
end
end