t3labcom/capistrano-typo3

View on GitHub
lib/capistrano/tasks/typo3homestead.cap

Summary

Maintainability
Test Coverage
# vim: ft=ruby:sts=2:expandtab

namespace :typo3 do

  namespace :homestead do

    desc "init site dirs from scratch (new installs)"
    task "init_site_dirs" do
      invoke 'git:check_branch'

      on roles(:all) do
        ## PURGE IF NEEDED
        execute "sudo rm -Rf #{fetch(:deploy_to)}/shared/fileadmin #{fetch(:deploy_to)}/shared/typo3temp #{fetch(:deploy_to)}/shared/uploads"

        ## CREATE
        execute "sudo mkdir -p #{fetch(:deploy_to)}/shared/fileadmin #{fetch(:deploy_to)}/shared/typo3temp #{fetch(:deploy_to)}/shared/uploads"

        ['fileadmin','typo3temp','uploads'].each do|dir|
          begin
            execute "sudo chown -Rfv vagrant.vagrant #{fetch(:deploy_to)}/shared/#{dir}"
          rescue
            print 'could not CHOWN #{dir}. Propably already owned by vagrant.vagrant'
          end
        end


      end
    end


    desc "init site database from scratch (new installs) (danger: drops old)"
    task "init_site_database" do
      invoke 'git:check_branch'

      on roles(:all) do
        execute "sudo mysql -e 'DROP DATABASE IF EXISTS #{fetch(:dbname)}'"
        execute "sudo mysql -e 'CREATE DATABASE #{fetch(:dbname)} CHARACTER SET utf8 COLLATE utf8_general_ci;'"
      end
    end

    desc "setup site (existing installs)"
    task "setup_site" do
      invoke 'typo3:homestead:init_site_dirs'
      invoke 'typo3:homestead:init_site_database'

      invoke 'deploy:fixknownhosts'
      invoke 'typo3:content:sync_db_from_production'
      invoke 'typo3:content:flush_cache_in_db'
      invoke 'typo3:helper:update_localconf'
      invoke 'typo3:helper:write_tsconstants'
      invoke 'typo3:helper:restart_webserver'
      invoke 'typo3:content:sync_files_from_production'
    end

  end
end