capistrano-typo3 0.4.10 → 0.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,191 @@
1
+ # vim: ft=ruby:sts=2:expandtab
2
+
3
+ namespace :typo3 do
4
+
5
+ namespace :content do
6
+ desc 'sync files from production'
7
+ task :sync_files_from_production do
8
+ on roles(:allow_syncfiles) do
9
+ if fetch(:t3_live_sync)['filesync']
10
+ fetch(:t3_live_sync)['filesync'].each do |key,command|
11
+ execute "cd #{fetch(:deploy_to)} && #{command}"
12
+ end
13
+ end
14
+ end
15
+ end
16
+
17
+ desc 'sync database from production to a local mysql'
18
+ task :sync_db_from_production_local_no_pass do
19
+
20
+ ignorestring = ""
21
+
22
+ if(:t3_db_sync_ignore_tables)
23
+
24
+ fetch(:t3_db_sync_ignore_tables).each do | ignore_tbl |
25
+ ignorestring = "#{ignorestring} --ignore-table=#{fetch(:t3_live_sync)['dbsync']['dbname']}.#{ignore_tbl}"
26
+ end
27
+ end
28
+
29
+ # DUMP DATABASE TO IMAGE
30
+ system <<DBSYNC1
31
+ ssh #{fetch(:t3_live_sync)['dbsync']['ssh_user']}@#{fetch(:t3_live_sync)['dbsync']['ssh_server']} \
32
+ 'mysqldump -u#{fetch(:t3_live_sync)['dbsync']['dbuser']} \
33
+ -h#{fetch(:t3_live_sync)['dbsync']['dbhost']} \
34
+ -p#{fetch(:t3_live_sync)['dbsync']['dbpass']} \
35
+ #{ignorestring} \
36
+ #{fetch(:t3_live_sync)['dbsync']['dbname']} > /tmp/.captypo3dump-src-#{fetch(:t3_live_sync)['dbsync']['dbname']}'
37
+ DBSYNC1
38
+
39
+ if(:t3_db_sync_ignore_tables)
40
+ fetch(:t3_db_sync_ignore_tables).each do | ignore_tbl |
41
+
42
+ system <<DBSYNC1
43
+ ssh #{fetch(:t3_live_sync)['dbsync']['ssh_user']}@#{fetch(:t3_live_sync)['dbsync']['ssh_server']} \
44
+ 'mysqldump -u#{fetch(:t3_live_sync)['dbsync']['dbuser']} \
45
+ -h#{fetch(:t3_live_sync)['dbsync']['dbhost']} \
46
+ -p#{fetch(:t3_live_sync)['dbsync']['dbpass']} \
47
+ --no-data \
48
+ #{fetch(:t3_live_sync)['dbsync']['dbname']} #{ignore_tbl} >> /tmp/.captypo3dump-src-#{fetch(:t3_live_sync)['dbsync']['dbname']}'
49
+ DBSYNC1
50
+ end
51
+ end
52
+
53
+ # COMPRESS IMAGE
54
+ system <<DBSYNC2
55
+ ssh #{fetch(:t3_live_sync)['dbsync']['ssh_user']}@#{fetch(:t3_live_sync)['dbsync']['ssh_server']} \
56
+ 'gzip -f /tmp/.captypo3dump-src-#{fetch(:t3_live_sync)['dbsync']['dbname']}'
57
+ DBSYNC2
58
+
59
+ # TRANSFER IMAGE
60
+ system <<DBSYNC3
61
+ scp #{fetch(:t3_live_sync)['dbsync']['ssh_user']}@#{fetch(:t3_live_sync)['dbsync']['ssh_server']}:/tmp/.captypo3dump-src-#{fetch(:t3_live_sync)['dbsync']['dbname']}.gz \
62
+ /tmp/.captypo3dump-dest-#{fetch(:t3_live_sync)['dbsync']['dbname']}.gz
63
+ DBSYNC3
64
+
65
+ # DECOMPRESS IMAGE
66
+ system <<DBSYNC4
67
+ gunzip -f /tmp/.captypo3dump-dest-#{fetch(:t3_live_sync)['dbsync']['dbname']}.gz
68
+ DBSYNC4
69
+
70
+ # IMPORT AND REMOVE IMAGE
71
+ system <<DBSYNC5
72
+ mysql -u#{fetch(:dbuser)} -h#{fetch(:dbhost)} #{fetch(:dbname)} < /tmp/.captypo3dump-dest-#{fetch(:t3_live_sync)['dbsync']['dbname']} && \
73
+ rm -f /tmp/.captypo3dump-dest-#{fetch(:t3_live_sync)['dbsync']['dbname']}
74
+ DBSYNC5
75
+
76
+ # REMOVE IMAGE
77
+ system <<DBSYNC6
78
+ ssh #{fetch(:t3_live_sync)['dbsync']['ssh_user']}@#{fetch(:t3_live_sync)['dbsync']['ssh_server']} \
79
+ 'rm -f /tmp/.captypo3dump-src-#{fetch(:t3_live_sync)['dbsync']['dbname']}.gz'
80
+ DBSYNC6
81
+
82
+ end
83
+
84
+ desc 'sync database from production and run sql updates'
85
+ task :sync_db_from_production do
86
+ on roles(:allow_syncdatabase) do
87
+
88
+ ignorestring = ""
89
+
90
+ if(:t3_db_sync_ignore_tables)
91
+
92
+ fetch(:t3_db_sync_ignore_tables).each do | ignore_tbl |
93
+ ignorestring = "#{ignorestring} --ignore-table=#{fetch(:t3_live_sync)['dbsync']['dbname']}.#{ignore_tbl}"
94
+ end
95
+ end
96
+
97
+ # DUMP DATABASE TO IMAGE
98
+ execute <<DBSYNC1
99
+ ssh #{fetch(:t3_live_sync)['dbsync']['ssh_user']}@#{fetch(:t3_live_sync)['dbsync']['ssh_server']} \
100
+ 'mysqldump -u#{fetch(:t3_live_sync)['dbsync']['dbuser']} \
101
+ -h#{fetch(:t3_live_sync)['dbsync']['dbhost']} \
102
+ -p#{fetch(:t3_live_sync)['dbsync']['dbpass']} \
103
+ #{ignorestring} \
104
+ #{fetch(:t3_live_sync)['dbsync']['dbname']} > /tmp/.captypo3dump-src-#{fetch(:t3_live_sync)['dbsync']['dbname']}'
105
+ DBSYNC1
106
+
107
+ if(:t3_db_sync_ignore_tables)
108
+ fetch(:t3_db_sync_ignore_tables).each do | ignore_tbl |
109
+
110
+ execute <<DBSYNC1
111
+ ssh #{fetch(:t3_live_sync)['dbsync']['ssh_user']}@#{fetch(:t3_live_sync)['dbsync']['ssh_server']} \
112
+ 'mysqldump -u#{fetch(:t3_live_sync)['dbsync']['dbuser']} \
113
+ -h#{fetch(:t3_live_sync)['dbsync']['dbhost']} \
114
+ -p#{fetch(:t3_live_sync)['dbsync']['dbpass']} \
115
+ --no-data \
116
+ #{fetch(:t3_live_sync)['dbsync']['dbname']} #{ignore_tbl} >> /tmp/.captypo3dump-src-#{fetch(:t3_live_sync)['dbsync']['dbname']}'
117
+ DBSYNC1
118
+ end
119
+ end
120
+
121
+ # COMPRESS IMAGE
122
+ execute <<DBSYNC2
123
+ ssh #{fetch(:t3_live_sync)['dbsync']['ssh_user']}@#{fetch(:t3_live_sync)['dbsync']['ssh_server']} \
124
+ 'gzip -f /tmp/.captypo3dump-src-#{fetch(:t3_live_sync)['dbsync']['dbname']}'
125
+ DBSYNC2
126
+
127
+ # TRANSFER IMAGE
128
+ execute <<DBSYNC3
129
+ scp #{fetch(:t3_live_sync)['dbsync']['ssh_user']}@#{fetch(:t3_live_sync)['dbsync']['ssh_server']}:/tmp/.captypo3dump-src-#{fetch(:t3_live_sync)['dbsync']['dbname']}.gz \
130
+ /tmp/.captypo3dump-dest-#{fetch(:t3_live_sync)['dbsync']['dbname']}.gz
131
+ DBSYNC3
132
+
133
+ # DECOMPRESS IMAGE
134
+ execute <<DBSYNC4
135
+ gunzip -f /tmp/.captypo3dump-dest-#{fetch(:t3_live_sync)['dbsync']['dbname']}.gz
136
+ DBSYNC4
137
+
138
+ # IMPORT AND REMOVE IMAGE
139
+ execute <<DBSYNC5
140
+ mysql -u#{fetch(:dbuser)} -h#{fetch(:dbhost)} -p#{fetch(:dbpass)} #{fetch(:dbname)} < /tmp/.captypo3dump-dest-#{fetch(:t3_live_sync)['dbsync']['dbname']} && \
141
+ rm -f /tmp/.captypo3dump-dest-#{fetch(:t3_live_sync)['dbsync']['dbname']}
142
+ DBSYNC5
143
+
144
+ # REMOVE IMAGE
145
+ execute <<DBSYNC6
146
+ ssh #{fetch(:t3_live_sync)['dbsync']['ssh_user']}@#{fetch(:t3_live_sync)['dbsync']['ssh_server']} \
147
+ 'rm -f /tmp/.captypo3dump-src-#{fetch(:t3_live_sync)['dbsync']['dbname']}.gz'
148
+ DBSYNC6
149
+ end
150
+
151
+ invoke 'typo3:content:sql_updates'
152
+ end
153
+
154
+ desc 'run necessary sql queries for environment'
155
+ task :sql_updates do
156
+ on roles(:allow_syncdatabase) do
157
+ if fetch(:t3_sql_updates)
158
+ fetch(:t3_sql_updates).each do |command|
159
+ execute DT3MySQL::mysql_execute(command)
160
+ end
161
+ end
162
+ end
163
+ end
164
+
165
+ desc 'flush cache and session tables in database'
166
+ task :flush_cache_in_db do
167
+ on roles(:all) do
168
+
169
+ all_current_tables = capture(DT3MySQL::show_tables).split("\n")
170
+
171
+ cache_tables= %w(cache_extensions cache_hash cache_imagesizes cache_md5params cache_pages cache_pagesection cache_sys_dmail_stat cache_treelist cache_typo3temp_log cachingframework_cache_hash cachingframework_cache_hash_tags cachingframework_cache_pages cachingframework_cache_pages_tags cachingframework_cache_pagesection cachingframework_cache_pagesection_tags cf_cache_hash cf_cache_hash_tags cf_cache_pages cf_cache_pages_tags cf_cache_pagesection cf_cache_pagesection_tags cf_extbase_object cf_extbase_object_tags cf_extbase_reflection cf_extbase_reflection_tags cf_tt_news_cache cf_tt_news_cache_tags cf_tx_solr cf_tx_solr_tags tt_news_cache tt_news_cache_tags tx_realurl_chashcache tx_realurl_errorlog tx_realurl_pathcache tx_realurl_uniqalias tx_realurl_urldecodecache tx_realurl_urlencodecache tx_solr_cache tx_solr_cache_tags)
172
+
173
+ cache_tables.each do |table|
174
+ if all_current_tables.include?(table)
175
+ execute DT3MySQL::truncate_table(table)
176
+ end
177
+ end
178
+
179
+ session_tables=%w(be_sessions fe_session_data fe_sessions)
180
+ session_tables.each do |table|
181
+ if all_current_tables.include?(table)
182
+ execute DT3MySQL::truncate_table(table)
183
+ end
184
+ end
185
+ end
186
+ end
187
+ end
188
+
189
+ end
190
+
191
+
@@ -0,0 +1,139 @@
1
+ # vim: ft=ruby:sts=2:expandtab
2
+
3
+ namespace :typo3 do
4
+
5
+ namespace :helper do
6
+ desc "execute_post_deployment_commands"
7
+ task :execute_post_deployment_commands do
8
+ on roles(:all) do
9
+
10
+ if fetch(:t3_post_deployment_commands)
11
+ fetch(:t3_post_deployment_commands).each do |command|
12
+ execute command
13
+ end
14
+ end
15
+ end
16
+
17
+ end #ENDTASK
18
+
19
+ # remove deploy_to directory
20
+ task :rm_deploy_to do
21
+ on roles(:all) do
22
+ execute "rm -Rf #{fetch(:deploy_to)}"
23
+ end
24
+ end
25
+
26
+ # create typo3 dirs in shared
27
+ task :setup_shared_typo3_dirs do
28
+ on roles(:all) do
29
+ execute "cd #{fetch(:deploy_to)} && mkdir -p shared/fileadmin shared/typo3temp shared/uploads"
30
+ end
31
+ end
32
+
33
+ task :create_gitignore do
34
+ on roles(:all) do
35
+
36
+ ignorestring = "
37
+ .DS_Store
38
+ ._.DS_Store
39
+ *~
40
+ *.swp
41
+ *.swo
42
+ ENABLE_INSTALL_TOOL
43
+ /VERSION
44
+ temp_CACHE*.php
45
+ deprecation_*.log
46
+ "
47
+ contents = StringIO.new(ignorestring)
48
+ upload! contents, "#{fetch(:deploy_to)}/current/.gitignore"
49
+ end
50
+ end
51
+
52
+ # when not in deploy latest ls releases/ -1 | sort -r | head -n 1
53
+ task :current_relative_symlink do
54
+ on roles(:all) do
55
+ execute "cd #{fetch(:deploy_to)} && rm -f current"
56
+ execute "cd #{fetch(:deploy_to)} && ln -s releases/`ls -1 releases/ | sort -r | head -n 1` current"
57
+ end
58
+ end
59
+
60
+ desc "update LocalConf with correct db credentionals without SSH"
61
+ task :update_localconf_local do
62
+
63
+ system "echo '<?php' > dummy/typo3conf/AdditionalConfiguration.php"
64
+
65
+ if fetch(:t3_add_unsafe_trusted_host_pattern)
66
+ system "echo ' $GLOBALS[\"TYPO3_CONF_VARS\"][\"SYS\"][\"trustedHostsPattern\"] = \".*\";' >> dummy/typo3conf/AdditionalConfiguration.php"
67
+ end
68
+
69
+ if fetch(:t3_store_db_credentials_in_addionalconf)
70
+ system "echo ' $GLOBALS[\"TYPO3_CONF_VARS\"][\"DB\"][\"database\"] = \"#{fetch(:dbname)}\";' >> dummy/typo3conf/AdditionalConfiguration.php"
71
+ system "echo ' $GLOBALS[\"TYPO3_CONF_VARS\"][\"DB\"][\"host\"] = \"#{fetch(:dbhost)}\";' >> dummy/typo3conf/AdditionalConfiguration.php"
72
+ system "echo ' $GLOBALS[\"TYPO3_CONF_VARS\"][\"DB\"][\"password\"] = \"#{fetch(:dbpass)}\";' >> dummy/typo3conf/AdditionalConfiguration.php"
73
+ system "echo ' $GLOBALS[\"TYPO3_CONF_VARS\"][\"DB\"][\"username\"] = \"#{fetch(:dbuser)}\";' >> dummy/typo3conf/AdditionalConfiguration.php"
74
+ else
75
+ cmd1 =Typo3Helper::make_set_localconf_database_settings_command(fetch(:dbname),fetch(:dbuser),fetch(:dbpass),fetch(:dbhost))
76
+ system "cd #{fetch(:deploy_to)} && #{cmd1}"
77
+
78
+ cmd2 = "mv #{fetch(:typo3_v6_local_conf_path)}.tmp #{fetch(:typo3_v6_local_conf_path)}"
79
+ system "cd #{fetch(:deploy_to)} && #{cmd2}"
80
+ end
81
+ end
82
+
83
+
84
+ desc "update LocalConf with correct db credentionals"
85
+ task :update_localconf do
86
+
87
+ on roles(:all) do
88
+
89
+ execute "echo '<?php' > #{fetch(:deploy_to)}/current/dummy/typo3conf/AdditionalConfiguration.php"
90
+
91
+ if fetch(:t3_add_unsafe_trusted_host_pattern)
92
+ execute "echo ' $GLOBALS[\"TYPO3_CONF_VARS\"][\"SYS\"][\"trustedHostsPattern\"] = \".*\";' >> #{fetch(:deploy_to)}/current/dummy/typo3conf/AdditionalConfiguration.php"
93
+ end
94
+
95
+ if fetch(:t3_store_db_credentials_in_addionalconf)
96
+ execute "echo ' $GLOBALS[\"TYPO3_CONF_VARS\"][\"DB\"][\"database\"] = \"#{fetch(:dbname)}\";' >> #{fetch(:deploy_to)}/current/dummy/typo3conf/AdditionalConfiguration.php"
97
+ execute "echo ' $GLOBALS[\"TYPO3_CONF_VARS\"][\"DB\"][\"host\"] = \"#{fetch(:dbhost)}\";' >> #{fetch(:deploy_to)}/current/dummy/typo3conf/AdditionalConfiguration.php"
98
+ execute "echo ' $GLOBALS[\"TYPO3_CONF_VARS\"][\"DB\"][\"password\"] = \"#{fetch(:dbpass)}\";' >> #{fetch(:deploy_to)}/current/dummy/typo3conf/AdditionalConfiguration.php"
99
+ execute "echo ' $GLOBALS[\"TYPO3_CONF_VARS\"][\"DB\"][\"username\"] = \"#{fetch(:dbuser)}\";' >> #{fetch(:deploy_to)}/current/dummy/typo3conf/AdditionalConfiguration.php"
100
+ execute "echo ' $GLOBALS[\"TYPO3_CONF_VARS\"][\"DB\"][\"driver\"] = \"mysqli\";' >> #{fetch(:deploy_to)}/current/dummy/typo3conf/AdditionalConfiguration.php"
101
+
102
+ # extra stuff for typo3 8.7
103
+ execute "echo ' $GLOBALS[\"TYPO3_CONF_VARS\"][\"DB\"][\"dbname\"] = $GLOBALS[\"TYPO3_CONF_VARS\"][\"DB\"][\"database\"];' >> #{fetch(:deploy_to)}/current/dummy/typo3conf/AdditionalConfiguration.php"
104
+ execute "echo ' $GLOBALS[\"TYPO3_CONF_VARS\"][\"DB\"][\"user\"] = $GLOBALS[\"TYPO3_CONF_VARS\"][\"DB\"][\"username\"];' >> #{fetch(:deploy_to)}/current/dummy/typo3conf/AdditionalConfiguration.php"
105
+ execute "echo ' $_tmp = $GLOBALS[\"TYPO3_CONF_VARS\"][\"DB\"];' >> #{fetch(:deploy_to)}/current/dummy/typo3conf/AdditionalConfiguration.php"
106
+ execute "echo ' $GLOBALS[\"TYPO3_CONF_VARS\"][\"DB\"][\"Connections\"] = [];' >> #{fetch(:deploy_to)}/current/dummy/typo3conf/AdditionalConfiguration.php"
107
+ execute "echo ' $GLOBALS[\"TYPO3_CONF_VARS\"][\"DB\"][\"Connections\"][\"Default\"] = $_tmp;' >> #{fetch(:deploy_to)}/current/dummy/typo3conf/AdditionalConfiguration.php"
108
+
109
+ else
110
+ cmd1 =Typo3Helper::make_set_localconf_database_settings_command(fetch(:dbname),fetch(:dbuser),fetch(:dbpass),fetch(:dbhost))
111
+ execute "cd #{fetch(:deploy_to)} && #{cmd1}"
112
+
113
+ cmd2 = "mv #{fetch(:typo3_v6_local_conf_path)}.tmp #{fetch(:typo3_v6_local_conf_path)}"
114
+ execute "cd #{fetch(:deploy_to)} && #{cmd2}"
115
+ end
116
+ end
117
+ end
118
+
119
+ desc "write typo3conf/tsConstants.ts"
120
+ task :write_tsconstants do
121
+ on roles(:all) do
122
+ execute "rm -f #{fetch(:deploy_to)}/current/dummy/typo3conf/tsConstants/*.ts || true"
123
+ execute "mkdir -p #{fetch(:deploy_to)}/current/dummy/typo3conf/tsConstants"
124
+ constantFile = "tsConstants_#{SecureRandom.hex}.ts"
125
+ execute "echo '# Constants written by capistrano-typo3 at: #{Time.now.strftime("%d/%m/%Y %H:%M")}' > #{fetch(:deploy_to)}/current/dummy/typo3conf/tsConstants/#{constantFile}"
126
+ fetch(:t3_ts_constants).each do | ts_const |
127
+ execute "echo '#{ts_const}' >> #{fetch(:deploy_to)}/current/dummy/typo3conf/tsConstants/#{constantFile}"
128
+ end
129
+ end
130
+ end
131
+
132
+ task :restart_webserver do
133
+ on roles(:all) do
134
+ execute fetch(:restart_webserver)
135
+ end
136
+ end
137
+ end
138
+
139
+ end
@@ -0,0 +1,49 @@
1
+ # vim: ft=ruby:sts=2:expandtab
2
+
3
+ namespace :typo3 do
4
+
5
+ namespace :homestead do
6
+
7
+ desc "init site dirs from scratch (new installs)"
8
+ task "init_site_dirs" do
9
+ invoke 'typo3:vagrant:check_branch'
10
+
11
+ on roles(:all) do
12
+ ## PURGE IF NEEDED
13
+ execute "sudo rm -Rf #{fetch(:deploy_to)}/shared/fileadmin #{fetch(:deploy_to)}/shared/typo3temp #{fetch(:deploy_to)}/shared/uploads"
14
+ execute "sudo mysql -e 'DROP DATABASE IF EXISTS #{fetch(:dbname)}'"
15
+
16
+ ## CREATE
17
+ execute "sudo mkdir -p #{fetch(:deploy_to)}/shared/fileadmin #{fetch(:deploy_to)}/shared/typo3temp #{fetch(:deploy_to)}/shared/uploads"
18
+ execute "sudo chown -Rf vagrant.vagrant #{fetch(:deploy_to)}/shared/fileadmin #{fetch(:deploy_to)}/shared/typo3temp #{fetch(:deploy_to)}/shared/uploads"
19
+ end
20
+ end
21
+
22
+
23
+ desc "init site database from scratch (new installs)"
24
+ task "init_site_database" do
25
+ invoke 'typo3:vagrant:check_branch'
26
+
27
+ on roles(:all) do
28
+ execute "sudo mysql -e 'CREATE DATABASE #{fetch(:dbname)} CHARACTER SET utf8 COLLATE utf8_general_ci;'"
29
+ end
30
+ end
31
+
32
+ desc "setup site (existing installs)"
33
+ task "setup_site" do
34
+ invoke 'typo3:homestead:init_site_dirs'
35
+ invoke 'typo3:homestead:init_site_database'
36
+
37
+ invoke 'deploy:fixknownhosts'
38
+ invoke 'typo3:content:sync_db_from_production'
39
+ invoke 'typo3:content:flush_cache_in_db'
40
+ invoke 'typo3:helper:update_localconf'
41
+ invoke 'typo3:helper:write_tsconstants'
42
+ invoke 'typo3:helper:restart_webserver'
43
+ invoke 'typo3:content:sync_files_from_production'
44
+ end
45
+
46
+ end
47
+ end
48
+
49
+
@@ -0,0 +1,22 @@
1
+ # vim: ft=ruby:sts=2:expandtab
2
+
3
+ namespace :typo3 do
4
+ namespace :test do
5
+
6
+ desc "ssh_password_less_login_rsync"
7
+ task :ssh_password_less_login_rsync do
8
+ on roles(:all) do |server|
9
+ begin
10
+ capture("ssh -o PasswordAuthentication=no -o StrictHostKeyChecking=no #{fetch(:t3_live_sync)['dbsync']['ssh_user']}@#{fetch(:t3_live_sync)['dbsync']['ssh_server']} uptime")
11
+ rescue
12
+ er = "password less login to #{fetch(:t3_live_sync)['dbsync']['ssh_user']}@#{fetch(:t3_live_sync)['dbsync']['ssh_server']} is not possible\n"
13
+ er += "You need to fix this first.\n"
14
+ er += "solution 1: ssh-add.\n"
15
+ er += "solution 2: install public key on the remote server.\n"
16
+
17
+ raise "#{er}"
18
+ end
19
+ end
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,172 @@
1
+ # vim: ft=ruby:sts=2:expandtab
2
+
3
+ namespace :typo3 do
4
+
5
+ namespace :vagrant do
6
+
7
+ desc "add mailhog to AdditionalConfiguration.php"
8
+ task "init_additional_conf_add_mailhog" do
9
+ on roles(:all) do
10
+ # execute "cd #{fetch(:deploy_to)}/current/dummy && echo '$GLOBALS[\"TYPO3_CONF_VARS\"][\"MAIL\"][\"transport\"] = \"smtp\";' >> typo3conf/AdditionalConfiguration.php"
11
+ # execute "cd #{fetch(:deploy_to)}/current/dummy && echo '$GLOBALS[\"TYPO3_CONF_VARS\"][\"MAIL\"][\"transport_smtp_server\"] = \"localhost:1025\";' >> typo3conf/AdditionalConfiguration.php"
12
+ end
13
+ end
14
+
15
+ desc "when homestead is not yet configured"
16
+ task "init_homestead_conf" do
17
+ invoke 'typo3:vagrant:check_branch'
18
+ sh "mkdir -p config"
19
+ sh "cd config && curl -O https://raw.githubusercontent.com/t3labcom/capistrano-typo3/master/homestead_files/vagrant.yml"
20
+ sh "cd config/deploy && curl -O https://raw.githubusercontent.com/t3labcom/capistrano-typo3/master/homestead_files/homestead.rb"
21
+ sh "curl -O https://raw.githubusercontent.com/t3labcom/capistrano-typo3/master/homestead_files/Vagrantfile"
22
+ end
23
+
24
+ desc "setup new homestead vagrant machine for TYPO3 development"
25
+ task "setup_machine" do
26
+ invoke 'typo3:vagrant:check_branch'
27
+
28
+ if `vagrant status | grep running`.strip != ""
29
+ sh "vagrant destroy"
30
+ end
31
+
32
+ sh "rm -f local.typo3.org"
33
+ sh "rm -Rf .vagrant"
34
+
35
+ if `vagrant plugin list | grep vagrant-bind`.include? 'vagrant-bindfs'
36
+ print "vagrant bindfs plugin is already installed\n"
37
+ else
38
+ sh "vagrant plugin install vagrant-bindfs"
39
+ end
40
+
41
+ sh "vagrant up"
42
+
43
+ on roles(:all) do
44
+ execute "sudo aptitude update"
45
+ execute "sudo aptitude install ruby-dev make -y"
46
+ execute "sudo gem install bundler"
47
+ end
48
+
49
+ invoke 'typo3:vagrant:set_no_site'
50
+ invoke 'typo3:helper:restart_webserver'
51
+ end
52
+
53
+
54
+ desc "init site from scratch (new installs)"
55
+ task "init_site" do
56
+ invoke 'typo3:vagrant:check_branch'
57
+
58
+ on roles(:all) do
59
+ ## PURGE IF NEEDED
60
+ execute "sudo rm -Rf /var/shared/fileadmin /var/shared/typo3temp /var/shared/uploads"
61
+ execute "sudo rm -f /var/current"
62
+ execute "sudo mysql -e 'DROP DATABASE IF EXISTS #{fetch(:dbname)}'"
63
+
64
+ ## CREATE
65
+ execute "sudo mkdir -p /var/shared/fileadmin /var/shared/typo3temp /var/shared/uploads"
66
+ execute "sudo chown -Rf vagrant.vagrant /var/shared/fileadmin /var/shared/typo3temp /var/shared/uploads"
67
+ execute "sudo ln -s /var/www/local.typo3.org /var/current"
68
+ end
69
+
70
+ on roles(:all) do
71
+ execute "sudo mysqladmin create #{fetch(:dbname)}"
72
+ end
73
+
74
+ on roles(:all) do
75
+ if fetch(:hs_default_upstream_php_engine)
76
+ execute "sudo sed -i 's/set $upstream .*/set $upstream #{fetch(:hs_default_upstream_php_engine)};/g' /etc/nginx/sites-available/local.typo3.org.conf"
77
+ end
78
+ execute "sudo sed -i 's/root .*/root \"\\/var\\/www\\/local\\.typo3\\.org\\/dummy\\/\";/g' /etc/nginx/sites-available/local.typo3.org.conf"
79
+ end
80
+
81
+ invoke 'typo3:helper:restart_webserver'
82
+
83
+ print <<MSG
84
+
85
+ ----------------------------------------------------------------------
86
+ The website conf seems to be succesfully installed in the Homestead Vagrant
87
+ machine.
88
+
89
+ Open the site at http://local.typo3.org"
90
+
91
+ you can now install TYPO3
92
+
93
+ ----------------------------------------------------------------------
94
+ MSG
95
+ end
96
+
97
+ desc "setup site (remote exists)"
98
+ task "setup_site" do
99
+ invoke 'typo3:vagrant:check_branch'
100
+
101
+ on roles(:all) do
102
+ ## PURGE IF NEEDED
103
+ execute "sudo rm -Rf /var/shared/fileadmin /var/shared/typo3temp /var/shared/uploads"
104
+ execute "sudo rm -f /var/current"
105
+ execute "sudo mysql -e 'DROP DATABASE IF EXISTS #{fetch(:dbname)}'"
106
+
107
+ ## CREATE
108
+ execute "sudo mkdir -p /var/shared/fileadmin /var/shared/typo3temp /var/shared/uploads"
109
+ execute "sudo chown -Rf vagrant.vagrant /var/shared/fileadmin /var/shared/typo3temp /var/shared/uploads"
110
+ execute "sudo ln -s /var/www/local.typo3.org /var/current"
111
+ end
112
+
113
+ on roles(:all) do
114
+ execute "sudo mysqladmin create #{fetch(:dbname)}"
115
+ end
116
+
117
+ invoke 'deploy:fixknownhosts'
118
+ invoke 'typo3:content:sync_db_from_production'
119
+ invoke 'typo3:content:flush_cache_in_db'
120
+ invoke 'typo3:helper:update_localconf'
121
+ invoke 'typo3:helper:write_tsconstants' #OKE
122
+
123
+ on roles(:all) do
124
+ if fetch(:hs_default_upstream_php_engine)
125
+ execute "sudo sed -i 's/set $upstream .*/set $upstream #{fetch(:hs_default_upstream_php_engine)};/g' /etc/nginx/sites-available/local.typo3.org.conf"
126
+ end
127
+ execute "sudo sed -i 's/root .*/root \"\\/var\\/www\\/local\\.typo3\\.org\\/dummy\\/\";/g' /etc/nginx/sites-available/local.typo3.org.conf"
128
+ end
129
+
130
+ invoke 'typo3:helper:restart_webserver'
131
+ invoke 'typo3:content:sync_files_from_production'
132
+
133
+ print <<MSG
134
+
135
+ ----------------------------------------------------------------------
136
+ The website seems to be succesfully installed in the Homestead Vagrant
137
+ machine.
138
+
139
+ Open the site at http://local.typo3.org"
140
+
141
+ And live edit the website via the shortcut local.typo3.org in this
142
+ directory
143
+ ----------------------------------------------------------------------
144
+ MSG
145
+ end
146
+
147
+ desc "purge .vagrant files"
148
+ task "purge_machine" do
149
+ print "OBSOLETE: you can run 'setup_machine' over and over again\n"
150
+ end
151
+
152
+ #desc "purge homestead site and database"
153
+ task "purge_site" do
154
+ print "OBSOLETE: you can run 'setup_site' over and over again\n"
155
+ end
156
+
157
+ task "check_branch" do
158
+ current_branch = `git branch | grep \\* | cut -d ' ' -f2`.strip
159
+ if current_branch != fetch(:branch)
160
+ raise "current branch differs from homestead.rb configuration.\n see config/deploy/homestead.rb\n\n Current branch: #{current_branch}\n Homestead branch: #{fetch(:branch)} "
161
+ end
162
+ end
163
+
164
+ task "set_no_site" do
165
+ on roles(:all) do
166
+ execute "sudo sed -i 's/root .*/root \"\\/var\\/\";/g' /etc/nginx/sites-available/local.typo3.org.conf"
167
+ execute "sudo su -c 'echo \"THERE IS NO DIRECTORY local.typo3.org ... YOU MAY WANT TO RUN cap homstead:setup_site\" > /var/index.php'"
168
+ end
169
+ end
170
+ end
171
+
172
+ end