| 
									
										
										
										
											2022-10-11 00:52:32 +01:00
										 |  |  | # typed: true | 
					
						
							| 
									
										
										
										
											2021-05-03 20:42:35 +05:30
										 |  |  | # frozen_string_literal: true | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | require "formula" | 
					
						
							|  |  |  | require "completions" | 
					
						
							| 
									
										
										
										
											2022-11-08 20:33:30 +09:00
										 |  |  | require "manpages" | 
					
						
							| 
									
										
										
										
											2021-05-03 20:42:35 +05:30
										 |  |  | 
 | 
					
						
							|  |  |  | module Homebrew | 
					
						
							|  |  |  |   module_function | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   sig { returns(CLI::Parser) } | 
					
						
							|  |  |  |   def generate_man_completions_args | 
					
						
							|  |  |  |     Homebrew::CLI::Parser.new do | 
					
						
							|  |  |  |       description <<~EOS | 
					
						
							| 
									
										
										
										
											2021-05-04 18:38:55 +05:30
										 |  |  |         Generate Homebrew's manpages and shell completions. | 
					
						
							| 
									
										
										
										
											2021-05-03 20:42:35 +05:30
										 |  |  |       EOS | 
					
						
							|  |  |  |       named_args :none | 
					
						
							|  |  |  |     end | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   def generate_man_completions | 
					
						
							|  |  |  |     args = generate_man_completions_args.parse | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     Commands.rebuild_internal_commands_completion_list | 
					
						
							| 
									
										
										
										
											2022-11-08 20:33:30 +09:00
										 |  |  |     Manpages.regenerate_man_pages(quiet: args.quiet?) | 
					
						
							| 
									
										
										
										
											2021-05-03 20:42:35 +05:30
										 |  |  |     Completions.update_shell_completions! | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     diff = system_command "git", args: [ | 
					
						
							|  |  |  |       "-C", HOMEBREW_REPOSITORY, "diff", "--exit-code", "docs/Manpage.md", "manpages", "completions" | 
					
						
							|  |  |  |     ] | 
					
						
							| 
									
										
										
										
											2022-09-02 08:24:33 +01:00
										 |  |  |     if diff.status.success? | 
					
						
							|  |  |  |       ofail "No changes to manpage or completions." | 
					
						
							|  |  |  |     else | 
					
						
							|  |  |  |       puts "Manpage and completions updated." | 
					
						
							|  |  |  |     end | 
					
						
							| 
									
										
										
										
											2021-05-03 20:42:35 +05:30
										 |  |  |   end | 
					
						
							|  |  |  | end |