set_default(:nginx_server_name, “.”)

namespace :nginx do

include Shell

desc "Installs the nginx configs"
task :setup do
  on roles(:web) do
    template "nginx_base.conf.erb", "/tmp/nginx_conf"
    sudo "mv /tmp/nginx_conf /etc/nginx/nginx.conf"

    template "nginx_app.conf.erb", "/tmp/#{fetch(:application)}_conf"
    sudo "mv /tmp/#{fetch(:application)}_conf /etc/nginx/sites-available/#{fetch(:application)}.conf"

    if file_exists? "/etc/nginx/sites-enabled/default"
      sudo "rm /etc/nginx/sites-enabled/default"
    end

    execute "mkdir -p #{shared_path}/log"
  end
  invoke "nginx:enable_site"
  invoke "nginx:reload"
end

desc "Enable the app page for nginx"
task :enable_site do
  on roles(:web) do
    unless file_exists? "/etc/nginx/sites-enabled/#{fetch(:application)}.conf"
      sudo "ln -sf /etc/nginx/sites-available/#{fetch(:application)}.conf /etc/nginx/sites-enabled/#{fetch(:application)}.conf"
    end
  end
end

desc "Reload nginx"
task :reload do
  on roles(:web) do
    sudo "service nginx reload"
  end
end

desc "Restart nginx"
task :restart do
  on roles(:web) do
    sudo "service nginx restart"
  end
end

desc "Stop nginx"
task :stop do
  on roles(:web) do
    sudo "service nginx stop"
  end
end

desc "Start nginx"
task :start do
  on roles(:web) do
    sudo "service nginx start"
  end
end

desc "Installs the ssl certificates"
task :ssl do
  on roles(:web) do
    sudo "mkdir -p /etc/nginx/ssl"
    sudo "chmod 770 /etc/nginx/ssl"
    sudo "chown #{fetch(:user)}:#{fetch(:group)} /etc/nginx/ssl"

    %w(crt key).each do |type|
      upload! "vendor/certs/#{fetch(:application)}.de.#{type}", "/etc/nginx/ssl/#{fetch(:application)}.de.#{type}"
    end
  end
end

after "nginx:setup", "nginx:reload"

end