# vim: ft=ruby:sts=2:expandtab
namespace :typo3 do
namespace :vagrant do desc "add mailhog to AdditionalConfiguration.php" task "init_additional_conf_add_mailhog" do on roles(:all) do
# execute “cd #{fetch(:deploy_to)}/current/dummy && echo '$GLOBALS["MAIL"] = "smtp";' >> typo3conf/AdditionalConfiguration.php” # execute “cd #{fetch(:deploy_to)}/current/dummy && echo '$GLOBALS["MAIL"] = "localhost:1025";' >> typo3conf/AdditionalConfiguration.php”
end end desc "when homestead is not yet configured" task "init_homestead_conf" do invoke 'git:check_branch' sh "mkdir -p config" sh "cd config && curl -O https://raw.githubusercontent.com/t3labcom/capistrano-typo3/master/homestead_files/vagrant.yml" sh "cd config/deploy && curl -O https://raw.githubusercontent.com/t3labcom/capistrano-typo3/master/homestead_files/homestead.rb" sh "curl -O https://raw.githubusercontent.com/t3labcom/capistrano-typo3/master/homestead_files/Vagrantfile" end desc "setup new homestead vagrant machine for TYPO3 development" task "setup_machine" do invoke 'git:check_branch' if `vagrant status | grep running`.strip != "" sh "vagrant destroy" end sh "rm -f local.typo3.org" sh "rm -Rf .vagrant" if `vagrant plugin list | grep vagrant-bind`.include? 'vagrant-bindfs' print "vagrant bindfs plugin is already installed\n" else sh "vagrant plugin install vagrant-bindfs" end sh "vagrant up" on roles(:all) do execute "sudo aptitude update" execute "sudo aptitude install ruby-dev make -y" execute "sudo gem install bundler" end invoke 'typo3:vagrant:set_no_site' invoke 'typo3:helper:restart_webserver' end desc "init site from scratch (new installs)" task "init_site" do invoke 'git:check_branch' on roles(:all) do ## PURGE IF NEEDED execute "sudo rm -Rf /var/shared/fileadmin /var/shared/typo3temp /var/shared/uploads" execute "sudo rm -f /var/current" execute "sudo mysql -e 'DROP DATABASE IF EXISTS #{fetch(:dbname)}'" ## CREATE execute "sudo mkdir -p /var/shared/fileadmin /var/shared/typo3temp /var/shared/uploads" execute "sudo chown -Rf vagrant.vagrant /var/shared/fileadmin /var/shared/typo3temp /var/shared/uploads" execute "sudo ln -s /var/www/local.typo3.org /var/current" end on roles(:all) do execute "sudo mysqladmin create #{fetch(:dbname)}" end on roles(:all) do if fetch(:hs_default_upstream_php_engine) execute "sudo sed -i 's/set $upstream .*/set $upstream #{fetch(:hs_default_upstream_php_engine)};/g' /etc/nginx/sites-available/local.typo3.org.conf" end execute "sudo sed -i 's/root .*/root \"\\/var\\/www\\/local\\.typo3\\.org\\/dummy\\/\";/g' /etc/nginx/sites-available/local.typo3.org.conf" end invoke 'typo3:helper:restart_webserver' print <<MSG ---------------------------------------------------------------------- The website conf seems to be succesfully installed in the Homestead Vagrant machine. Open the site at http://local.typo3.org" you can now install TYPO3 ----------------------------------------------------------------------
MSG
end desc "setup site (remote exists)" task "setup_site" do invoke 'git:check_branch' on roles(:all) do ## PURGE IF NEEDED execute "sudo rm -Rf /var/shared/fileadmin /var/shared/typo3temp /var/shared/uploads" execute "sudo rm -f /var/current" execute "sudo mysql -e 'DROP DATABASE IF EXISTS #{fetch(:dbname)}'" ## CREATE execute "sudo mkdir -p /var/shared/fileadmin /var/shared/typo3temp /var/shared/uploads" execute "sudo chown -Rf vagrant.vagrant /var/shared/fileadmin /var/shared/typo3temp /var/shared/uploads" execute "sudo ln -s /var/www/local.typo3.org /var/current" end on roles(:all) do execute "sudo mysqladmin create #{fetch(:dbname)}" end 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' #OKE on roles(:all) do if fetch(:hs_default_upstream_php_engine) execute "sudo sed -i 's/set $upstream .*/set $upstream #{fetch(:hs_default_upstream_php_engine)};/g' /etc/nginx/sites-available/local.typo3.org.conf" end execute "sudo sed -i 's/root .*/root \"\\/var\\/www\\/local\\.typo3\\.org\\/dummy\\/\";/g' /etc/nginx/sites-available/local.typo3.org.conf" end invoke 'typo3:helper:restart_webserver' invoke 'typo3:content:sync_files_from_production' print <<MSG ---------------------------------------------------------------------- The website seems to be succesfully installed in the Homestead Vagrant machine. Open the site at http://local.typo3.org" And live edit the website via the shortcut local.typo3.org in this directory ----------------------------------------------------------------------
MSG
end desc "purge .vagrant files" task "purge_machine" do print "OBSOLETE: you can run 'setup_machine' over and over again\n" end #desc "purge homestead site and database" task "purge_site" do print "OBSOLETE: you can run 'setup_site' over and over again\n" end task "set_no_site" do on roles(:all) do execute "sudo sed -i 's/root .*/root \"\\/var\\/\";/g' /etc/nginx/sites-available/local.typo3.org.conf" execute "sudo su -c 'echo \"THERE IS NO DIRECTORY local.typo3.org ... YOU MAY WANT TO RUN cap homstead:setup_site\" > /var/index.php'" end end end
end