39 lines
		
	
	
		
			952 B
		
	
	
	
		
			Ruby
		
	
	
	
	
	
			
		
		
	
	
			39 lines
		
	
	
		
			952 B
		
	
	
	
		
			Ruby
		
	
	
	
	
	
| # typed: true
 | |
| # frozen_string_literal: true
 | |
| 
 | |
| require "formula"
 | |
| require "completions"
 | |
| require "manpages"
 | |
| require "system_command"
 | |
| 
 | |
| module Homebrew
 | |
|   extend SystemCommand::Mixin
 | |
| 
 | |
|   sig { returns(CLI::Parser) }
 | |
|   def self.generate_man_completions_args
 | |
|     Homebrew::CLI::Parser.new do
 | |
|       description <<~EOS
 | |
|         Generate Homebrew's manpages and shell completions.
 | |
|       EOS
 | |
|       named_args :none
 | |
|     end
 | |
|   end
 | |
| 
 | |
|   def self.generate_man_completions
 | |
|     args = generate_man_completions_args.parse
 | |
| 
 | |
|     Commands.rebuild_internal_commands_completion_list
 | |
|     Manpages.regenerate_man_pages(quiet: args.quiet?)
 | |
|     Completions.update_shell_completions!
 | |
| 
 | |
|     diff = system_command "git", args: [
 | |
|       "-C", HOMEBREW_REPOSITORY, "diff", "--exit-code", "docs/Manpage.md", "manpages", "completions"
 | |
|     ]
 | |
|     if diff.status.success?
 | |
|       ofail "No changes to manpage or completions."
 | |
|     else
 | |
|       puts "Manpage and completions updated."
 | |
|     end
 | |
|   end
 | |
| end
 | 
