Refactor brew man.

This commit is contained in:
Markus Reiter 2020-07-31 19:40:49 +02:00
parent 5efed5d8c5
commit 48444d50af

View File

@ -36,7 +36,7 @@ module Homebrew
odie "`brew man --link` is now done automatically by `brew update`." if args.link? odie "`brew man --link` is now done automatically by `brew update`." if args.link?
Commands.rebuild_internal_commands_completion_list Commands.rebuild_internal_commands_completion_list
regenerate_man_pages(args: args) regenerate_man_pages(preserve_date: args.fail_if_changed?)
if system "git", "-C", HOMEBREW_REPOSITORY, "diff", "--quiet", "docs/Manpage.md", "manpages", "completions" if system "git", "-C", HOMEBREW_REPOSITORY, "diff", "--quiet", "docs/Manpage.md", "manpages", "completions"
puts "No changes to manpage or completions output detected." puts "No changes to manpage or completions output detected."
@ -45,15 +45,15 @@ module Homebrew
end end
end end
def regenerate_man_pages(args:) def regenerate_man_pages(preserve_date:)
Homebrew.install_bundler_gems! Homebrew.install_bundler_gems!
markup = build_man_page markup = build_man_page
convert_man_page(markup, TARGET_DOC_PATH/"Manpage.md", args: args) convert_man_page(markup, TARGET_DOC_PATH/"Manpage.md", preserve_date: preserve_date)
convert_man_page(markup, TARGET_MAN_PATH/"brew.1", args: args) convert_man_page(markup, TARGET_MAN_PATH/"brew.1", preserve_date: preserve_date)
cask_markup = (SOURCE_PATH/"brew-cask.1.md").read cask_markup = (SOURCE_PATH/"brew-cask.1.md").read
convert_man_page(cask_markup, TARGET_MAN_PATH/"brew-cask.1", args: args) convert_man_page(cask_markup, TARGET_MAN_PATH/"brew-cask.1", preserve_date: preserve_date)
end end
def build_man_page def build_man_page
@ -94,14 +94,13 @@ module Homebrew
path.basename.to_s.sub(/\.(rb|sh)$/, "").sub(/^--/, "~~") path.basename.to_s.sub(/\.(rb|sh)$/, "").sub(/^--/, "~~")
end end
def convert_man_page(markup, target, args:) def convert_man_page(markup, target, preserve_date:)
manual = target.basename(".1") manual = target.basename(".1")
organisation = "Homebrew" organisation = "Homebrew"
# Set the manpage date to the existing one if we're checking for changes. # Set the manpage date to the existing one if we're checking for changes.
# This avoids the only change being e.g. a new date. # This avoids the only change being e.g. a new date.
date = if args.fail_if_changed? && date = if preserve_date && target.extname == ".1" && target.exist?
target.extname == ".1" && target.exist?
/"(\d{1,2})" "([A-Z][a-z]+) (\d{4})" "#{organisation}" "#{manual}"/ =~ target.read /"(\d{1,2})" "([A-Z][a-z]+) (\d{4})" "#{organisation}" "#{manual}"/ =~ target.read
Date.parse("#{Regexp.last_match(1)} #{Regexp.last_match(2)} #{Regexp.last_match(3)}") Date.parse("#{Regexp.last_match(1)} #{Regexp.last_match(2)} #{Regexp.last_match(3)}")
else else