#
# Cookbook:: irrigate-php
# Recipe:: composer
#

if platform_family?('debian')
  template '/root/composer-install.sh' do
    source 'composer-install.sh.erb'
    owner 'root'
    group 'root'
    mode '0755'
    action :create
  end
end

# Only run the script if composer does not exist
script 'composer-install' do
  interpreter 'bash'
  code '/root/composer-install.sh'
  not_if { ::File.exist?('/usr/local/bin/composer') }
end

# Composer needs a github token for private repositories
# Create config directories and populate auth.json
deploy_config_directories = %w(
  /.config
  /.config/composer
  /.composer
)

deploy_config_directories.each do |directory_name|
  directory node['php']['deploy_home_dir'] + directory_name do
    owner node['php']['deploy_user']
    mode '0755'
    action :create
  end
end

# Read github token from encrypted data bag
deploy_github_token = data_bag_item('secrets', 'deploy_github_token')
token = deploy_github_token['token'].chomp

# Create auth.json for composer using github token
template node['php']['deploy_home_dir'] + '/.config/composer/auth.json' do
  source 'composer-auth.json.erb'
  mode '0644'
  owner node['php']['deploy_user']
  group node['php']['deploy_user']
  variables ({
    token: token,
  })
  sensitive true
end

# Create auth.json for composer using github token
template node['php']['deploy_home_dir'] + '/.composer/auth.json' do
  source 'composer-auth.json.erb'
  mode '0644'
  owner node['php']['deploy_user']
  group node['php']['deploy_user']
  variables ({
    token: token,
  })
  sensitive true
end
