man/Rakefile

Summary

Maintainability
Test Coverage
require 'ronn'

task default: 'man:gen'

task clean: 'man:clean'

namespace :man do
  directory "build"

  Dir["src/*.ronn"].each do |ronn|
    basename = File.basename(ronn, ".ronn")
    roff = "build/#{basename}"

    file roff => ["build", ronn] do
      sh "#{Gem.ruby} -S ronn --roff --pipe #{ronn} > #{roff}"
    end

    file "#{roff}.txt" => roff do
      sh "groff -Wall -mtty-char -mandoc -Tascii #{roff} | col -b > #{roff}.txt"
    end

    task :build_all_pages => "#{roff}.txt"
  end

  desc "Build the man pages"
  task :gen => "man:build_all_pages"

  desc "Clean up from the built man pages"
  task :clean do
    rm_rf "build"
  end
end