# Build options
# Logic copied from sbin/update_ood_portal
`[ -f /etc/os-release ] && source /etc/os-release && [[ "$ID $ID_LIKE" = *"rhel"* ]] && [[ "$VERSION_ID" = "8"* ]]`
if $?.success?
  DEFAULT_PREFIX = '/etc/httpd/conf.d'
else
  DEFAULT_PREFIX = '/opt/rh/httpd24/root/etc/httpd/conf.d'
end
PREFIX  = ENV['PREFIX']  || DEFAULT_PREFIX
SRCDIR  = ENV['SRCDIR']  || 'templates'
OBJDIR  = ENV['OBJDIR']  || 'build'
OBJFILE = ENV['OBJFILE'] || 'ood-portal.conf'
CNFFILE = ENV['CNFFILE'] || 'config.yml'

#
# Tasks
#
begin
  require "rspec/core/rake_task"
  RSpec::Core::RakeTask.new(:spec)
rescue LoadError
end

task :default => "#{OBJDIR}/#{OBJFILE}"

directory OBJDIR

desc "Render the Apache config file"
file "#{OBJDIR}/#{OBJFILE}" => ["#{SRCDIR}/#{OBJFILE}.erb", OBJDIR, (CNFFILE if File.file?(CNFFILE))].compact do |task|
  source = task.prerequisites.first
  target = task.name
  sh "bin/generate -c '#{CNFFILE}' -t '#{source}' -o '#{target}'"
end

directory PREFIX

file "#{PREFIX}/#{OBJFILE}" => ["#{OBJDIR}/#{OBJFILE}", PREFIX] do |task|
  cp task.prerequisites.first, task.name
end

desc <<-DESC
Install rendered config file into PREFIX
Default: PREFIX=#{DEFAULT_PREFIX}
DESC
task :install => "#{PREFIX}/#{OBJFILE}"

desc "Clean up all temporary rendered configs"
task :clean do |t|
  rm_f "#{OBJDIR}/#{OBJFILE}"
end
