Merge pull request #8049 from MLH-Fellowship/cask-commands

commands: Print cask commands
This commit is contained in:
Mike McQuaid 2020-07-27 12:44:21 +01:00 committed by GitHub
commit 2100335441
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 51 additions and 8 deletions

View File

@ -87,6 +87,10 @@ module Cask
@lookup.fetch(command_name, nil)
end
def self.aliases
ALIASES
end
def self.run(*args)
new(*args).run
end

View File

@ -31,14 +31,21 @@ module Homebrew
return
end
ohai "Built-in commands", Formatter.columns(Commands.internal_commands)
puts
ohai "Built-in developer commands", Formatter.columns(Commands.internal_developer_commands)
prepend_separator = false
external_commands = Commands.external_commands
return if external_commands.blank?
{
"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 do |title, commands|
next if commands.blank?
puts
ohai "External commands", Formatter.columns(external_commands)
puts if prepend_separator
ohai title, Formatter.columns(commands)
prepend_separator ||= true
end
end
end

View File

@ -1,5 +1,7 @@
# frozen_string_literal: true
require "cask/cmd"
module Commands
module_function
@ -89,6 +91,7 @@ module Commands
cmds += internal_developer_commands
cmds += external_commands
cmds += internal_commands_aliases if aliases
cmds += cask_commands(aliases: aliases).map { |cmd| "cask #{cmd}" }
cmds.sort
end
@ -129,11 +132,39 @@ module Commands
Tap.cmd_directories.flat_map do |path|
find_commands(path).select(&:executable?)
.map(&method(:basename_without_extension))
.map { |p| p.to_s.sub(/^brew(cask)?-/, '\1 ').strip }
.map { |p| p.to_s.delete_prefix("brew-").strip }
end.map(&:to_s)
.sort
end
def cask_commands(aliases: false)
cmds = cask_internal_commands
cmds += cask_internal_command_aliases if aliases
cmds += cask_external_commands
cmds
end
def cask_internal_commands
Cask::Cmd.commands
end
def cask_internal_command_aliases
Cask::Cmd.aliases.keys
end
def cask_external_commands
PATH.new(Tap.cmd_directories, ENV["HOMEBREW_PATH"]).flat_map do |search_path|
find_commands(search_path).map do |possible_command|
path = possible_command.to_path
command_name = path.match(/brewcask-(.*)\.rb/) { |data| data[1].delete_suffix(".rb") }
if command_name.blank? && possible_command.executable?
command_name = path.match(/brewcask-(.*)/) { |data| data[1] }
end
command_name
end.compact
end
end
def basename_without_extension(path)
path.basename(path.extname)
end

View File

@ -4,6 +4,7 @@ require "keg_relocate"
require "language/python"
require "lock_file"
require "ostruct"
require "extend/cachable"
class Keg
extend Cachable