# config valid only for current version of Capistrano
#lock '3.4.0'

set :application, 'autogedal'
set :repo_url, 'git@bitbucket.org:leadlion/autogedal.git'
set :shell, '/usr/bin/bash'
set :default_shell, '/bin/bash -l'

# Default branch is :master
#ask :branch, `git rev-parse --abbrev-ref HEAD`.chomp
set :branch, 'dev2'
# Default deploy_to directory is /var/www/my_app_name
set :deploy_to, '/var/www/www.autogedal.ro'

set :current_directory, 'current'
set :stage, "dev"
set :rails_env, "dev"
# Default value for :scm is :git
# set :scm, :git

# Default value for :format is :pretty
# set :format, :pretty

# Default value for :log_level is :debug
# set :log_level, :debug

# Default value for :pty is false
# set :pty, true

# Default value for :linked_files is []
set :linked_files, [

 # '.user.ini',
  #'.htaccess',
  'app/etc/config.php',
  'app/etc/env.php',
  'var/.setup_cronjob_status',
  'var/.update_cronjob_status',
  'robots.txt'
]


# Default value for linked_dirs is []
set :linked_dirs, [
  #'config',
  #'setup',
  #'bin',
  'update',
  'pub/media',
  'pub/sitemaps',
  'pub/attributes',
  'pub/export',
  'pub/retargeting',
  'var/amasty',
  'var/cache',
  'var/di',
  'var/view_preprocessed',
  'var/page_cache',
  'var/generation',
  'var/backups',
  'var/composer_home',
  'var/importexport',
  'var/import_history',
  'var/log',
  'var/session',
  'var/tmp',
  'var/report',


]

# Default value for default_env is {}
# set :default_env, { path: "/opt/ruby/bin:$PATH" }

# Default value for keep_releases is 5
set :keep_releases, 3

#00:05 deploy:check:directories

set :magento_auth_public_key, '4cea42e167c3c93be7c4383cd1775f20'
set :magento_auth_private_key, '6081dcb269d57eba54bfc5de5d8db0d1'



namespace :deploy  do

  desc "Set destination path"
      task :set_deploy_default_to_var  do
            on roles (:appsetup) do
              SSHKit.config.command_map[:shell] = "/usr/bin/bash"
              puts SSHKit.config.command_map[:shell]
              puts  fetch(:deploy_to_default)
              puts  fetch(:current_dir)
              set :deploy_to, fetch(:deploy_to_default, "/var/www/www.grid-sport.ro/")

              #abort("Test")
             end

  end
  before 'deploy:starting', 'deploy:set_deploy_default_to_var'


  desc "Initial parm"
  task :disable_redis do
    on roles (:appsetup) do
          with path: '/usr/bin/bash:$PATH' do
        execute "echo 'Set initial permissions'"

        #execute "setfacl -R -m u:www-data:rwX #{shared_path}/var &&  setfacl -dR -m u:www-data:rwX #{shared_path}/var;"

        execute "rm -Rf #{release_path}/var/di"
        execute "rm -Rf #{release_path}/var/cache"
        execute "rm -Rf #{release_path}/var/di"
        execute "rm -Rf #{release_path}/var/generation"
        execute "rm -Rf #{release_path}/var/page_cache"
        execute "rm -Rf #{release_path}/var/view_preprocessed"
        execute "mkdir -p #{release_path}/pub/static"
        execute "chmod -R 777 #{release_path}/pub/static"

        execute "echo Release path: #{release_path}"
        execute "composer install -d #{release_path} --no-dev --prefer-dist --ignore-platform-reqs --no-interaction --optimize-autoloader 2>&1 "
          execute "php -f #{release_path}/bin/magento  maintenance:enable"
          execute "php -f #{release_path}/bin/magento -- setup:upgrade"
           execute "php -f #{release_path}/bin/magento -- setup:di:compile"
          execute "php -f #{release_path}/bin/magento  deploy:mode:set production "
          execute "chmod 777 -R #{release_path}/var #{release_path}/pub #{release_path}/generated"
          execute "php -f #{release_path}/bin/magento  cache:clean"
          execute "php -f #{release_path}/bin/magento  maintenance:disable"
          execute "crontab -r"
          execute "php -f #{release_path}/bin/magento -- cron:install"


    end
    end
  end

  desc "Set permissions"
  task :enable_redis do
    on roles (:appsetup) do

      #execute " setfacl -R -m u:www-data:rwX #{shared_path}/var &&  setfacl -dR -m u:www-data:rwX  #{shared_path}/var"
      #execute " setfacl -R -m u:www-data:rwX  #{release_path}/var &&  setfacl -dR -m u:www-data:rwX #{release_path}/var"

      execute "php #{release_path}/bin/magento cache:flush"

      execute "chmod -R 777 #{release_path}/var/ "

      execute "touch #{release_path}/pub/static/deployed_version.txt"



    end
  end


  desc "Upload the right htaccess"
  task :upload_right_htaccess do
    on roles (:appsetup) do

      execute 'echo "UPLOAD INDEX FILE"'
      execute "cd #{release_path} "
      execute " chmod -R 777 #{release_path}/var/ "

      execute "cd #{release_path}  "
      execute " chmod -R 777 #{release_path}/var/"
      execute "cd #{release_path} "
      execute " php #{release_path}/bin/magento cache:flush"
      execute "cd #{release_path} "
      execute "  chmod -R 777 #{release_path}/var/"

      execute "cd #{release_path} "
      execute "  chmod -R 777 #{release_path}/pub/media"
     #execute " setfacl -R -m u:www-data:rwX #{release_path}/pub/media &&  setfacl -dR -m u:www-data:rwX #{release_path}/pub/media"

      execute "echo 'Give console execute permissions'"
      execute "cd #{release_path} &&  chmod -R 755 #{release_path}/bin/magento"

      execute "cd #{release_path} &&  chmod -R 777 #{release_path}/pub/static #{release_path}/var #{release_path}/generated"
      #execute " setfacl -R -m u:www-data:rwX #{release_path}/pub/static &&  setfacl -dR -m u:www-data:rwX #{release_path}/pub/static"
      execute "cp #{release_path}/.htaccess_live #{release_path}/.htaccess"



    end
  end


  before 'deploy:updated', 'deploy:disable_redis'
  before 'deploy:published', 'deploy:enable_redis'
  after 'deploy:published', 'deploy:upload_right_htaccess'

end
