# frozen_string_literal: true

namespace :load do

task :defaults do
  set :permissions_folders, []
  set :chmod_folder_permissions, '775'
  set :chmod_file_permissions, '664'
  set :chown_owner, ''
  set :chown_group, 'web'
end

end

namespace :deploy do

namespace :simple_permissions do
  task :set_permissions do
    on roles(:web) do
      unless fetch(:permissions_folders).empty?
        execute :find, *fetch(:permissions_folders), '-type', :d, '-exec', :chmod, fetch(:chmod_folder_permissions), '{}', '\\;'
        execute :find, *fetch(:permissions_folders), '-type', :f, '-exec', :chmod, fetch(:chmod_file_permissions), '{}', '\\;'
        execute :chown, '-R', "#{fetch(:chown_owner)}:#{fetch(:chown_group)}", *fetch(:permissions_folders)
      end
    end
  end
end

end

after 'deploy:log_revision', 'deploy:simple_permissions:set_permissions'