diff --git a/Library/Homebrew/dev-cmd/generate-man-completions.rb b/Library/Homebrew/dev-cmd/generate-man-completions.rb index eb67c90158..d4bf2db5b4 100644 --- a/Library/Homebrew/dev-cmd/generate-man-completions.rb +++ b/Library/Homebrew/dev-cmd/generate-man-completions.rb @@ -1,38 +1,38 @@ -# typed: true +# typed: strict # frozen_string_literal: true +require "abstract_command" require "formula" require "completions" require "manpages" require "system_command" module Homebrew - extend SystemCommand::Mixin + module DevCmd + class GenerateManCompletions < AbstractCommand + include SystemCommand::Mixin + cmd_args do + description <<~EOS + Generate Homebrew's manpages and shell completions. + EOS + named_args :none + end - 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 + sig { override.void } + def run + Commands.rebuild_internal_commands_completion_list + Manpages.regenerate_man_pages(quiet: args.quiet?) + Completions.update_shell_completions! - 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." + 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 end end diff --git a/Library/Homebrew/test/dev-cmd/generate-man-completions_spec.rb b/Library/Homebrew/test/dev-cmd/generate-man-completions_spec.rb index 154790498a..6ac40d1af1 100644 --- a/Library/Homebrew/test/dev-cmd/generate-man-completions_spec.rb +++ b/Library/Homebrew/test/dev-cmd/generate-man-completions_spec.rb @@ -1,7 +1,8 @@ # frozen_string_literal: true require "cmd/shared_examples/args_parse" +require "dev-cmd/generate-man-completions" -RSpec.describe "brew generate-man-completions" do +RSpec.describe Homebrew::DevCmd::GenerateManCompletions do it_behaves_like "parseable arguments" end