theforeman/foreman

View on GitHub
Rakefile.dist

Summary

Maintainability
Test Coverage
require 'rake/clean'
load File.join(__dir__, 'lib', 'tasks', 'pkg.rake')

BUILDDIR = File.expand_path(ENV['BUILDDIR'] || '_build')
PREFIX = ENV['PREFIX'] || '/usr/local'
BINDIR = ENV['BINDIR'] || "#{PREFIX}/bin"
LIBDIR = ENV['LIBDIR'] || "#{PREFIX}/lib"
SBINDIR = ENV['SBINDIR'] || "#{PREFIX}/sbin"
INCLUDEDIR = ENV['INCLUDEDIR'] || "#{PREFIX}/include"
SYSCONFDIR = ENV['SYSCONFDIR'] || "#{PREFIX}/etc"
LOCALSTATEDIR = ENV['LOCALSTATEDIR'] || "#{PREFIX}/var"
SHAREDSTAREDIR = ENV['SHAREDSTAREDIR'] || "#{LOCALSTATEDIR}/lib"
DATAROOTDIR = DATADIR = ENV['DATAROOTDIR'] || "#{PREFIX}/share"
MANDIR = ENV['MANDIR'] || "#{DATAROOTDIR}/man"

def is_redhat; File.exist?("/etc/redhat-release"); end
def is_debian; File.exist?("/etc/debian-release"); end

file BUILDDIR do
  mkdir BUILDDIR
end

file "#{BUILDDIR}/foreman-rake.8.gz" => "man/foreman-rake.8.asciidoc" do |t|
  sh "a2x -d manpage -f manpage -D #{BUILDDIR}/ #{t.prerequisites[0]}"
  sh "gzip -f9 #{BUILDDIR}/foreman-rake.8"
end

file "#{BUILDDIR}/foreman-debug.8.gz" => "man/foreman-debug.8.asciidoc" do |t|
  sh "a2x -d manpage -f manpage -D #{BUILDDIR}/ #{t.prerequisites[0]}"
  sh "gzip -f9 #{BUILDDIR}/foreman-debug.8"
end

file "#{BUILDDIR}/foreman-tail.8.gz" => "man/foreman-tail.8.asciidoc" do |t|
  sh "a2x -d manpage -f manpage -D #{BUILDDIR}/ #{t.prerequisites[0]}"
  sh "gzip -f9 #{BUILDDIR}/foreman-tail.8"
end

task :build => [
  BUILDDIR,
  "#{BUILDDIR}/foreman-rake.8.gz",
  "#{BUILDDIR}/foreman-debug.8.gz",
  "#{BUILDDIR}/foreman-tail.8.gz",
]

task :install => :build do |t|
  mkdir_p "#{MANDIR}/man8"
  cp "#{BUILDDIR}/foreman-rake.8.gz", "#{MANDIR}/man8/"
  cp "#{BUILDDIR}/foreman-debug.8.gz", "#{MANDIR}/man8/"
  cp "#{BUILDDIR}/foreman-tail.8.gz", "#{MANDIR}/man8/"

  # foreman-tail
  TAILDIR = ENV['TAILDIR'] || "script/foreman-tail.d"
  mkdir_p "#{DATAROOTDIR}/foreman/#{TAILDIR}"
  cp Dir.glob("#{TAILDIR}/common/*"), "#{DATAROOTDIR}/foreman/#{TAILDIR}/", :verbose => true
  if is_redhat
    cp Dir.glob("#{TAILDIR}/redhat/*"), "#{DATAROOTDIR}/foreman/#{TAILDIR}/", :verbose => true
  elsif is_debian
    cp Dir.glob("#{TAILDIR}/debian/*"), "#{DATAROOTDIR}/foreman/#{TAILDIR}/", :verbose => true
  else
    raise "Unsupported system"
  end

  # foreman-debug
  DEBUGDIR = ENV['DEBUGDIR'] || "script/foreman-debug.d"
  mkdir_p "#{DATAROOTDIR}/foreman/#{DEBUGDIR}"

  # ssh
  mkdir_p "#{DATAROOTDIR}/foreman/.ssh"
end

task :default => :build

CLEAN.include [
  '_build',
]