lib/capistrano/tasks/typo3vagrant.cap
# 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[\"TYPO3_CONF_VARS\"][\"MAIL\"][\"transport\"] = \"smtp\";' >> typo3conf/AdditionalConfiguration.php"
# execute "cd #{fetch(:deploy_to)}/current/dummy && echo '$GLOBALS[\"TYPO3_CONF_VARS\"][\"MAIL\"][\"transport_smtp_server\"] = \"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