URL = 'https://github.com/rrreeeyyy/exporter_proxy/releases/download/v0.4.1/exporter_proxy_linux_amd64'
BIN = '/usr/local/bin/exporter_proxy'
CONFDIR = '/etc/prometheus_exporters.d/exporter_proxy/'
CONF = 'config.yml'

execute "wget #{URL} -O #{BIN}" do
    not_if "test -e #{BIN}"
end

file BIN do
  user 'root'
  group 'root'

  mode '755'
end

directory CONFDIR do
  user 'root'
  group 'root'

  mode '755'
end

remote_file "#{CONFDIR}#{CONF}" do
  user 'root'
  group 'root'

  mode '644'
end

remote_file '/etc/systemd/system/exporter_proxy.service' do
  user 'root'
  group 'root'

  mode '644'
end

service 'exporter_proxy' do
  action [:enable, :start]
end

remote_file '/etc/consul.d/service-exporter_proxy.json' do
  user 'root'
  group 'root'

  mode '644'

  notifies :restart, 'service[consul]'
end

service 'consul' do
  action :nothing
end

# Firewall settings here:
%w( 60000/tcp ).each do |p|
  execute "ufw allow #{p}" do
    user 'root'

    not_if "LANG=c ufw status | grep #{p}"

    notifies :run, 'execute[ufw reload-or-enable]'
  end
end

execute 'ufw reload-or-enable' do
  user 'root'
  command 'LANG=C ufw reload | grep skipping && ufw --force enable || exit 0'

  action :nothing
end