48 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
		
		
			
		
	
	
			48 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
|   | # typed: strict | ||
|  | # frozen_string_literal: true | ||
|  | 
 | ||
|  | require "abstract_command" | ||
|  | require "aliases/aliases" | ||
|  | 
 | ||
|  | module Homebrew | ||
|  |   module Cmd | ||
|  |     class Alias < AbstractCommand | ||
|  |       cmd_args do | ||
|  |         usage_banner "`alias` [<alias> ... | <alias>=<command>]" | ||
|  |         description <<~EOS | ||
|  |           Show existing aliases. If no aliases are given, print the whole list. | ||
|  |         EOS | ||
|  |         switch "--edit", | ||
|  |                description: "Edit aliases in a text editor. Either one or all aliases may be opened at once. " \ | ||
|  |                             "If the given alias doesn't exist it'll be pre-populated with a template." | ||
|  |         named_args max: 1
 | ||
|  |       end | ||
|  | 
 | ||
|  |       sig { override.void } | ||
|  |       def run | ||
|  |         name = args.named.first | ||
|  |         name, command = name.split("=", 2) if name.present? | ||
|  | 
 | ||
|  |         Aliases.init | ||
|  | 
 | ||
|  |         if name.nil? | ||
|  |           if args.edit? | ||
|  |             Aliases.edit_all | ||
|  |           else | ||
|  |             Aliases.show | ||
|  |           end | ||
|  |         elsif command.nil? | ||
|  |           if args.edit? | ||
|  |             Aliases.edit name | ||
|  |           else | ||
|  |             Aliases.show name | ||
|  |           end | ||
|  |         else | ||
|  |           Aliases.add name, command | ||
|  |           Aliases.edit name if args.edit? | ||
|  |         end | ||
|  |       end | ||
|  |     end | ||
|  |   end | ||
|  | end |