commands: Print cask commands
This commit is contained in:
		
							parent
							
								
									84e4e1b449
								
							
						
					
					
						commit
						3bbffdd1d7
					
				@ -88,6 +88,10 @@ module Cask
 | 
			
		||||
      @lookup.fetch(command_name, nil)
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
    def self.aliases
 | 
			
		||||
      ALIASES
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
    def self.run(*args)
 | 
			
		||||
      new(*args).run
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
@ -36,9 +36,18 @@ module Homebrew
 | 
			
		||||
    ohai "Built-in developer commands", Formatter.columns(Commands.internal_developer_commands)
 | 
			
		||||
 | 
			
		||||
    external_commands = Commands.external_commands
 | 
			
		||||
    return if external_commands.blank?
 | 
			
		||||
    if external_commands.present?
 | 
			
		||||
      puts
 | 
			
		||||
      ohai "External commands", Formatter.columns(external_commands)
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
    puts
 | 
			
		||||
    ohai "External commands", Formatter.columns(external_commands)
 | 
			
		||||
    ohai "Cask commands", Formatter.columns(Commands.cask_internal_commands)
 | 
			
		||||
 | 
			
		||||
    cask_external_commands = Commands.cask_external_commands
 | 
			
		||||
    if cask_external_commands.present?
 | 
			
		||||
      puts
 | 
			
		||||
      ohai "External cask commands", Formatter.columns(cask_external_commands)
 | 
			
		||||
    end
 | 
			
		||||
  end
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
@ -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,49 @@ 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_unstable_internal_commands
 | 
			
		||||
    cmds += cask_external_commands
 | 
			
		||||
    cmds
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def cask_internal_commands
 | 
			
		||||
    Cask::Cmd.commands - cask_unstable_internal_commands
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def cask_unstable_internal_commands
 | 
			
		||||
    Cask::Cmd.commands.select do |command|
 | 
			
		||||
      command.start_with? "_"
 | 
			
		||||
    end
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def cask_internal_command_aliases
 | 
			
		||||
    Cask::Cmd.aliases.keys
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def cask_external_commands
 | 
			
		||||
    tap_cmd_directories = Tap.cmd_directories
 | 
			
		||||
    path = PATH.new(tap_cmd_directories, ENV["HOMEBREW_PATH"])
 | 
			
		||||
 | 
			
		||||
    path.flat_map do |search_path|
 | 
			
		||||
      find_commands(search_path).map do |possible_command|
 | 
			
		||||
        p = possible_command.to_path
 | 
			
		||||
        command_name = p.match(/brewcask-(.*)\.rb/) { |data| data[1].delete_suffix(".rb") }
 | 
			
		||||
        if command_name.blank? && possible_command.executable?
 | 
			
		||||
          command_name = p.match(/brewcask-(.*)/) { |data| data[1] }
 | 
			
		||||
        end
 | 
			
		||||
        command_name
 | 
			
		||||
      end.compact
 | 
			
		||||
    end
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def basename_without_extension(path)
 | 
			
		||||
    path.basename(path.extname)
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
@ -4,6 +4,7 @@ require "keg_relocate"
 | 
			
		||||
require "language/python"
 | 
			
		||||
require "lock_file"
 | 
			
		||||
require "ostruct"
 | 
			
		||||
require "extend/cachable"
 | 
			
		||||
 | 
			
		||||
class Keg
 | 
			
		||||
  extend Cachable
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user