# ## Settings # Any and all of these settings can be overriden in your `deploy.rb`.

set_default :deployment_platform, “ubuntu” set_default :platform_codename, “trusty” set_default :database_server, “postgresql” set_default :web_server, “nginx” set_default :ruby_manager, “rbenv” set_default :ruby_version, “2.1.2”

namespace :serverbuild do

if "#{deployment_platform}".strip.downcase == "ubuntu"
  load "mina/serverbuild/ubuntu.rake"

  desc "Install Essential Server Software - Phase 1"
  task :part1 do
    invoke :"serverbuild:build_ubuntu:apt_update"
    invoke :"serverbuild:build_ubuntu:apt_upgrade"
    invoke :"serverbuild:build_ubuntu:apt_install_essential"
  end

  desc "Install Essential Server Software - Phase 2"
  task :part2 do
    if "#{database_server}".strip.downcase == "postgresql"
      invoke :"serverbuild:build_ubuntu:apt_install_postgresql"
    end
    invoke :"serverbuild:build_ubuntu:apt_install_nodejs"
    if "#{web_server}".strip.downcase == 'nginx'
      invoke :"serverbuild:build_ubuntu:apt_install_nginx"
    end
    invoke :"serverbuild:build_ubuntu:apt_autoremove"
    if "#{ruby_manager}".strip.downcase == "rbenv"
      invoke :"serverbuild:build_ubuntu:build_rbenv"
    end
    queue "echo \"------------------------------------------------------------------------\""
    queue "echo \"-- At this point you should have a working Database, NodeJS, NGINX    --\""
    queue "echo \"-- and Ruby Environment installed in your deployment users home       --\""
    queue "echo \"-- directory. You should now be able to remove the line               --\""
    queue "echo \"--                                                                    --\""
    queue "echo \"--      require \"mina/serverbuild\"                                      --\""
    queue "echo \"--                                                                    --\""
    queue "echo \"-- from your config/deploy.rb file, and you can uncomment the line    --\""
    queue "echo \"--                                                                    --\""
    if "#{ruby_manager}".strip.downcase == "rbenv"
      queue "echo \"--  # invoke :\"rbenv:load\"                                              --\""
    end
    queue "echo \"--                                                                    --\""
    queue "echo \"-- in the environment task       - Thanks for using this setup script --\""
    queue "echo \"------------------------------------------------------------------------\""
  end
end

desc "Check Installed Versions (after installation)"
task :check_versions do
  node_version = capture("node --version")
  puts "NodeJS Version:       #{node_version}" unless "#{node_version}".index(/not found/)
  pgsql_version = capture("psql --version")
  puts "PostgreSQL Version:   #{pgsql_version}" unless "#{pgsql_version}".index(/not found/)
  mysql_version = capture("mysql --version")
  puts "MySQL Version:        #{mysql_version}" unless "#{mysql_version}".index(/not found/)
end

end