File: Rakefile

package info (click to toggle)
chake 0.93.1-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 412 kB
  • sloc: ruby: 1,273; sh: 112; makefile: 5; sed: 3
file content (37 lines) | stat: -rw-r--r-- 1,118 bytes parent folder | download | duplicates (3)
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