Port Homebrew::DevCmd::GenerateManCompletions

This commit is contained in:
Douglas Eichelberger 2024-03-21 10:22:45 -07:00
parent 7fc20640f2
commit 485574ac98
2 changed files with 27 additions and 26 deletions

View File

@ -1,38 +1,38 @@
# typed: true # typed: strict
# frozen_string_literal: true # frozen_string_literal: true
require "abstract_command"
require "formula" require "formula"
require "completions" require "completions"
require "manpages" require "manpages"
require "system_command" require "system_command"
module Homebrew 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) } sig { override.void }
def self.generate_man_completions_args def run
Homebrew::CLI::Parser.new do Commands.rebuild_internal_commands_completion_list
description <<~EOS Manpages.regenerate_man_pages(quiet: args.quiet?)
Generate Homebrew's manpages and shell completions. Completions.update_shell_completions!
EOS
named_args :none
end
end
def self.generate_man_completions diff = system_command "git", args: [
args = generate_man_completions_args.parse "-C", HOMEBREW_REPOSITORY, "diff", "--exit-code", "docs/Manpage.md", "manpages", "completions"
]
Commands.rebuild_internal_commands_completion_list if diff.status.success?
Manpages.regenerate_man_pages(quiet: args.quiet?) ofail "No changes to manpage or completions."
Completions.update_shell_completions! else
puts "Manpage and completions updated."
diff = system_command "git", args: [ end
"-C", HOMEBREW_REPOSITORY, "diff", "--exit-code", "docs/Manpage.md", "manpages", "completions" end
]
if diff.status.success?
ofail "No changes to manpage or completions."
else
puts "Manpage and completions updated."
end end
end end
end end

View File

@ -1,7 +1,8 @@
# frozen_string_literal: true # frozen_string_literal: true
require "cmd/shared_examples/args_parse" 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" it_behaves_like "parseable arguments"
end end