diff options
| author | Mike McQuaid | 2016-09-05 21:37:02 +0100 |
|---|---|---|
| committer | Mike McQuaid | 2016-09-08 20:46:37 +0100 |
| commit | af8605ea4ba1d9856c055c8c76b447e030540e3f (patch) | |
| tree | d093b11340406c21a4b873a80effe3b068fd07d4 /Library/Homebrew/cmd/man.rb | |
| parent | 4f6bae46f9c0f7b713cdbb999318460135f423de (diff) | |
| download | brew-af8605ea4ba1d9856c055c8c76b447e030540e3f.tar.bz2 | |
Move developer-focused commands to dev-cmd.
Diffstat (limited to 'Library/Homebrew/cmd/man.rb')
| -rw-r--r-- | Library/Homebrew/cmd/man.rb | 88 |
1 files changed, 0 insertions, 88 deletions
diff --git a/Library/Homebrew/cmd/man.rb b/Library/Homebrew/cmd/man.rb deleted file mode 100644 index 6754a15f2..000000000 --- a/Library/Homebrew/cmd/man.rb +++ /dev/null @@ -1,88 +0,0 @@ -#: @hide_from_man_page -#: * `man`: -#: Generate Homebrew's manpages. - -require "formula" -require "erb" -require "ostruct" - -module Homebrew - SOURCE_PATH = HOMEBREW_LIBRARY_PATH/"manpages" - TARGET_MAN_PATH = HOMEBREW_REPOSITORY/"share/man/man1" - TARGET_DOC_PATH = HOMEBREW_REPOSITORY/"share/doc/homebrew" - - def man - raise UsageError unless ARGV.named.empty? - - if ARGV.flag? "--link" - odie "`brew man --link` is now done automatically by `brew update`." - else - regenerate_man_pages - end - end - - private - - def regenerate_man_pages - Homebrew.install_gem_setup_path! "ronn" - - markup = build_man_page - convert_man_page(markup, TARGET_DOC_PATH/"brew.1.html") - convert_man_page(markup, TARGET_MAN_PATH/"brew.1") - - cask_markup = (HOMEBREW_LIBRARY/"Homebrew/manpages/brew-cask.1.md").read - convert_man_page(cask_markup, TARGET_MAN_PATH/"brew-cask.1") - end - - def build_man_page - template = (SOURCE_PATH/"brew.1.md.erb").read - variables = OpenStruct.new - - variables[:commands] = Pathname.glob("#{HOMEBREW_LIBRARY_PATH}/cmd/*.{rb,sh}"). - sort_by { |source_file| sort_key_for_path(source_file) }. - map { |source_file| - source_file.read.lines. - grep(/^#:/). - map { |line| line.slice(2..-1) }. - join - }. - reject { |s| s.strip.empty? || s.include?("@hide_from_man_page") } - - variables[:maintainers] = (HOMEBREW_REPOSITORY/"README.md"). - read[/Homebrew's current maintainers are (.*)\./, 1]. - scan(/\[([^\]]*)\]/).flatten - - ERB.new(template, nil, ">").result(variables.instance_eval{ binding }) - end - - def sort_key_for_path(path) - # Options after regular commands (`~` comes after `z` in ASCII table). - path.basename.to_s.sub(/\.(rb|sh)$/, "").sub(/^--/, "~~") - end - - def convert_man_page(markup, target) - shared_args = %W[ - --pipe - --organization=Homebrew - --manual=#{target.basename(".1")} - ] - - format_flag, format_desc = target_path_to_format(target) - - puts "Writing #{format_desc} to #{target}" - Utils.popen(["ronn", format_flag] + shared_args, "rb+") do |ronn| - ronn.write markup - ronn.close_write - target.atomic_write ronn.read - end - end - - def target_path_to_format(target) - case target.basename - when /\.html?$/ then ["--fragment", "HTML fragment"] - when /\.\d$/ then ["--roff", "man page"] - else - odie "Failed to infer output format from '#{target.basename}'." - end - end -end |
