namespace :load do

task :defaults do
  # Nginx and puma configuration
  set :nginx_config_name, -> { "#{fetch(:application)}_#{fetch(:stage)}" }
  set :nginx_sites_available_path, -> { '/etc/nginx/sites-available' }
  set :nginx_sites_enabled_path, -> { '/etc/nginx/sites-enabled' }
  set :nginx_server_name, -> { "localhost #{fetch(:application)}.local" }
  set :nginx_flags, -> { 'fail_timeout=0' }
  set :nginx_http_flags, -> { fetch(:nginx_flags) }
  set :nginx_socket_flags, -> { fetch(:nginx_flags) }
  set :nginx_use_ssl, false
end

end namespace :puma do

desc 'Setup nginx configuration'
task :nginx_config do
  on roles(fetch(:puma_nginx, :web)) do |role|
    puma_switch_user(role) do
      template_puma('nginx_conf', "/tmp/nginx_#{fetch(:nginx_config_name)}", role)
      sudo :mv, "/tmp/nginx_#{fetch(:nginx_config_name)} #{fetch(:nginx_sites_available_path)}/#{fetch(:nginx_config_name)}"
      sudo :ln, '-fs', "#{fetch(:nginx_sites_available_path)}/#{fetch(:nginx_config_name)} #{fetch(:nginx_sites_enabled_path)}/#{fetch(:nginx_config_name)}"
    end
  end
end

end