#
# Cookbook:: irrigate-apache
# Recipe:: dev_php7_webapps
#
# Copyright:: The Orchard
#

if platform_family?('rhel')
  if node['platform_version'].start_with?('7')

    # Add Docker repo
    yum_repository 'dockerrepo' do
      description 'Docker RPM repository for Enterprise Linux 7'
      baseurl 'https://yum.dockerproject.org/repo/main/centos/7/'
      gpgkey 'https://yum.dockerproject.org/gpg'
      action :create
    end

    # Add Yarn repo
    yum_repository 'yarn' do
      description 'Yarn Repository'
      baseurl 'https://dl.yarnpkg.com/rpm/'
      gpgkey 'https://dl.yarnpkg.com/rpm/pubkey.gpg'
      action :create
    end

    packages = %w(
      ant
      docker-engine
      memcached
      unzip
      yarn
      zip
    )

    packages.each do |name|
      package name
    end

    service 'memcached' do
      supports restart: true, status: true, reload: false
      action [:enable, :start]
    end

    service 'docker' do
      supports restart: true, status: true, reload: false
      action [:enable, :start]
    end

    execute 'permit_devorch_docker' do
      command 'gpasswd -a devorch docker && touch /var/cache/.dockerenabled'
      creates '/var/cache/.dockerenabled'
      notifies :restart, 'service[docker]'
    end

    group 'webdev' do
      members %w(devorch apache deploy)
      action :create
    end

    # Add proxy and ssl modules, then enable them.
    file '/etc/httpd/mods-available/proxy.load' do
      content 'LoadModule proxy_module /usr/lib64/httpd/modules/mod_proxy.so'
    end

    file '/etc/httpd/mods-available/proxy_http.load' do
      content 'LoadModule proxy_http_module /usr/lib64/httpd/modules/mod_proxy_http.so'
    end

    file '/etc/httpd/mods-available/ssl.load' do
      content 'LoadModule ssl_module /usr/lib64/httpd/modules/mod_ssl.so'
    end

    apache_confs = %w(
      dev
      orchardphp7
    )

    # This by default references a template with a matching name
    apache_confs.each do |conf_name|
      apache_conf conf_name do
        enable true
      end
    end

    # Ensure the default vhost is disabled
    apache_site 'default' do
      enabled false
    end

    # Explicitly disable the default site if it is active, as a failsafe.
    execute 'a2dissite default' do
      only_if do
        File.symlink?('/etc/httpd/sites-enabled/default.conf')
      end
      notifies :restart, 'service[apache2]'
    end

  end
end
