#
# Cookbook:: irrigate-orchard_base
# Recipe:: ciscat-client
#
# Copyright: The Orchard
#

package 'unzip'

remote_file '/opt/ciscat-client.zip' do
  source node['ciscat-client']['source']
  owner 'root'
  group 'root'
  mode '0600'
  use_last_modified false
  notifies :run, 'execute[extract ciscat files]', :immediately
end

directory '/opt/ciscat-client' do
  owner 'root'
  group 'root'
  mode '0750'
end

execute 'extract ciscat files' do
  command '/usr/bin/rm -rf /opt/ciscat-client/ && unzip -o /opt/ciscat-client.zip -d /opt/ciscat-client'
  action :nothing
end

template '/opt/cis-cat.sh' do
  source 'cis-cat.sh.erb'
  owner 'root'
  group 'root'
  mode '0700'
end
Chef::Resource::Cron.include CronTools::Helper
start_hour = node['ciscat-client']['cron_hour_range'].split('..')[0].to_i
end_hour = node['ciscat-client']['cron_hour_range'].split('..')[1].to_i
last = Chef::Node.load(node.name)
cron 'ciscat report' do
  user node['ciscat-client']['cron_user']
  month node['ciscat-client']['cron_month']
  weekday rand(6)
  hour rand(start_hour..end_hour)
  minute rand(node['ciscat-client']['cron_minute_range'].to_i)
  command %W(
    /opt/cis-cat.sh
    #{node['ciscat-client']['command_options']}
    &>/dev/null
  ).join(' ')
  only_if { last.default['ciscat-client']['command_options'] != node.default['ciscat-client']['command_options'] || !cron_existing?(node['ciscat-client']['command_options']) }
end
