1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
|
MAIN_MANPAGE = 'man/chake.1'.freeze
OTHER_MANPAGES = %w[
man/chake-chef.7
man/chake-itamae.7
man/chake-itamae-remote.7
man/chake-shell.7
].freeze
MANPAGES = [MAIN_MANPAGE] + OTHER_MANPAGES
task default: :man
task man: MANPAGES
MANPAGES.each do |man|
source = "README#{man.pathmap('%n').sub(/^chake/, '').sub('-', '.')}.md"
file man => [source, 'man/readme2man.sed'] do
sh "sed -f man/readme2man.sed #{source} > #{man}.ronn || (rm -f #{man}.ronn; false)"
sh "ronn --roff #{man}.ronn"
sh "rm -f #{man}.ronn"
sh 'sed', '-i', '-e', 's/\\\\\'/\'/g', man
end
end
task install: MANPAGES do
prefix = ENV['PREFIX'] || (File.exist?('debian/rules') && '/usr') || '/usr/local'
man1 = File.join(*[ENV.fetch('DESTDIR', nil), prefix, 'share/man/man1'].compact)
man7 = File.join(*[ENV.fetch('DESTDIR', nil), prefix, 'share/man/man7'].compact)
target = { '.1' => man1, '.7' => man7 }
sh 'install', '-d', '-m', '0755', man1
sh 'install', '-d', '-m', '0755', man7
MANPAGES.each do |m|
sh 'install', '-m', '0644', m, target[m.pathmap('%x')]
end
end
task :clean do
rm_f MANPAGES
end
|