wordpress-deploy 1.0.0.rc6 → 1.0.0.rc7

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.
data/.gitignore CHANGED
@@ -11,6 +11,7 @@ spec/reports
11
11
  test/tmp
12
12
  test/version_tmp
13
13
  tmp
14
+ .idea/
14
15
 
15
16
  *.swp
16
17
 
data/.travis.yml CHANGED
@@ -1,4 +1,4 @@
1
1
  language: ruby
2
2
  rvm:
3
- - 1.9.2
4
3
  - 1.9.3
4
+ - 2.0.0
@@ -60,7 +60,8 @@ module WordpressDeploy
60
60
  end
61
61
 
62
62
  module Database
63
- autoload :MySql, File.join(DATABASE_PATH, 'mysql')
63
+ autoload :MySql, File.join(DATABASE_PATH, 'mysql')
64
+ autoload :OptionFile, File.join(DATABASE_PATH, 'option_file')
64
65
  end
65
66
 
66
67
  %w{version logger errors config environments environment}.each do |klass|
@@ -10,13 +10,13 @@ module WordpressDeploy
10
10
  include WordpressDeploy::Cli::Helpers
11
11
 
12
12
  def initialize
13
- @user ||= "root"
14
- @password ||= ""
13
+ @user ||= 'root'
14
+ @password ||= ''
15
15
 
16
- @host ||= "localhost"
16
+ @host ||= 'localhost'
17
17
  @port ||= 3306
18
- @socket ||= ""
19
- @name ||= "wordpress"
18
+ @socket ||= ''
19
+ @name ||= 'wordpress'
20
20
 
21
21
  @has_port ||= true
22
22
  @has_socket ||= false
@@ -174,7 +174,7 @@ module WordpressDeploy
174
174
  # the CREATE DATABASE and USE commands to make sense for
175
175
  # the 'to' configuration
176
176
  sql_dump = File.read(file)
177
- sql_dump.gsub!(/^CREATE\ DATABASE.*$/i, "")
177
+ sql_dump.gsub!(/^CREATE\ DATABASE.*$/i, '')
178
178
  sql_dump.gsub!(/^USE\ `#{name}`/, "USE `#{to_db.name}`")
179
179
  tmp_file.puts sql_dump
180
180
 
@@ -297,19 +297,30 @@ module WordpressDeploy
297
297
  private
298
298
 
299
299
  def mysqldump
300
- arguments = "-P \"#{port}\" -h \"#{host}\" -u \"#{user}\" -p\"#{Shellwords.escape(password)}\" -B \"#{name}\""
301
- "#{utility("mysqldump")} #{arguments}"
300
+ options_file = OptionFile.new(
301
+ user,
302
+ password,
303
+ host,
304
+ port,
305
+ name,
306
+ :mysqldump
307
+ )
308
+ arguments = "--defaults-file=#{options_file.path} --databases #{name}"
309
+ "#{utility('mysqldump')} #{arguments}"
302
310
  end
303
311
 
304
312
  def mysqlload(database, file_name)
305
- arg_port = database.port
306
- arg_host = database.host
307
- arg_user = database.user
308
- arg_pass = database.password
309
- arg_name = database.name
310
- arguments = "-P \"#{arg_port}\" -u \"#{arg_user}\" -h \"#{arg_host}\" -p\"#{Shellwords.escape(arg_pass)}\" -D \"#{arg_name}\""
311
-
312
- "#{utility("mysql")} #{arguments} < #{file_name}"
313
+ options_file = OptionFile.new(
314
+ database.user,
315
+ database.password,
316
+ database.host,
317
+ database.port,
318
+ database.name,
319
+ :mysql
320
+ )
321
+ arguments = "--defaults-file=#{options_file.path}"
322
+
323
+ "#{utility('mysql')} #{arguments} < #{file_name}"
313
324
  end
314
325
 
315
326
  end
@@ -0,0 +1,40 @@
1
+ require 'erb'
2
+ require 'tempfile'
3
+
4
+ module WordpressDeploy
5
+ module Database
6
+ class OptionFile
7
+ ##
8
+ # Create a MySQL option file
9
+ def initialize(
10
+ user,
11
+ password,
12
+ host,
13
+ port,
14
+ database,
15
+ type = :mysql
16
+ )
17
+ @user = user
18
+ @password = password
19
+ @host = host
20
+ @port = port
21
+ @database = database
22
+
23
+ @template = if type == :mysql
24
+ ERB.new(File.read(File.join(WordpressDeploy::TEMPLATE_PATH, 'mysql-opts.erb')))
25
+ else
26
+ ERB.new(File.read(File.join(WordpressDeploy::TEMPLATE_PATH, 'mysqldump-opts.erb')))
27
+ end
28
+ @option_file = Tempfile.new(%w(mysql-opts .conf))
29
+ @option_file.write(@template.result(binding))
30
+ @option_file.flush
31
+ end
32
+
33
+ ##
34
+ #
35
+ def path
36
+ @option_file.path
37
+ end
38
+ end
39
+ end
40
+ end
@@ -1,3 +1,3 @@
1
1
  module WordpressDeploy
2
- VERSION = "1.0.0.rc6"
2
+ VERSION = '1.0.0.rc7'
3
3
  end
@@ -121,7 +121,7 @@ describe MySql do
121
121
  before(:each) do
122
122
  @mysql = WordpressDeploy::Environments.production.database
123
123
  @mysql.should_receive(:utility).with("mysqldump").and_return(mysqldump)
124
- @mysql.should_receive(:run).with(mysql_cmd).and_return("STDOUT from run")
124
+ @mysql.should_receive(:run).and_return("STDOUT from run")
125
125
  end
126
126
 
127
127
  it "should call the mysqldump command with the correct arguments" do
@@ -0,0 +1,68 @@
1
+ require 'spec_helper'
2
+
3
+ include WordpressDeploy::Database
4
+
5
+ describe WordpressDeploy::Database::OptionFile do
6
+ let(:user) { 'ryan' }
7
+ let(:password) { 'password with spaces' }
8
+ let(:hostname) { 'localhost' }
9
+ let(:port) { 3306 }
10
+ let(:database) { 'db' }
11
+
12
+ let(:mysql_option_file) do
13
+ OptionFile.new(
14
+ user,
15
+ password,
16
+ hostname,
17
+ port,
18
+ database,
19
+ :mysql
20
+ )
21
+ end
22
+ let(:mysqldump_option_file) do
23
+ OptionFile.new(
24
+ user,
25
+ password,
26
+ hostname,
27
+ port,
28
+ database,
29
+ :mysqldump
30
+ )
31
+ end
32
+ let(:mysql_contents) do
33
+ f = File.open(mysql_option_file.path)
34
+ f.read
35
+ end
36
+ let(:mysqldump_contents) do
37
+ f = File.open(mysqldump_option_file.path)
38
+ f.read
39
+ end
40
+
41
+ context 'mysql' do
42
+ it { File.exists?(mysql_option_file.path).should be_true }
43
+ it 'should have correct values' do
44
+ mysql_contents.should eq <<-EOS
45
+ [client]
46
+ user=#{user}
47
+ password=#{password}
48
+ host=#{hostname}
49
+ port=#{port}
50
+ database=#{database}
51
+ EOS
52
+ end
53
+ end
54
+
55
+ context 'mysqldump' do
56
+ it { File.exists?(mysqldump_option_file.path).should be_true }
57
+ it 'should have correct values' do
58
+ mysqldump_contents.should eq <<-EOS
59
+ [client]
60
+ user=#{user}
61
+ password=#{password}
62
+ host=#{hostname}
63
+ port=#{port}
64
+ set-gtid-purged=off
65
+ EOS
66
+ end
67
+ end
68
+ end
@@ -0,0 +1,6 @@
1
+ [client]
2
+ user=<%= @user %>
3
+ password=<%= @password %>
4
+ host=<%= @host %>
5
+ port=<%= @port %>
6
+ database=<%= @database %>
@@ -0,0 +1,6 @@
1
+ [client]
2
+ user=<%= @user %>
3
+ password=<%= @password %>
4
+ host=<%= @host %>
5
+ port=<%= @port %>
6
+ set-gtid-purged=off
@@ -2,8 +2,8 @@
2
2
  require File.expand_path('../lib/wordpress_deploy/version', __FILE__)
3
3
 
4
4
  Gem::Specification.new do |gem|
5
- gem.authors = ["Ryan Lovelett"]
6
- gem.email = ["ryan@lovelett.me"]
5
+ gem.authors = ['Ryan Lovelett']
6
+ gem.email = ['ryan@lovelett.me']
7
7
  gem.description = %q{Wordpress Deploy provides an elegant DSL in Ruby for modeling and executing your deployments.}
8
8
  gem.summary = %q{Wordpress Deploy is a RubyGem, written for Linux and Mac OSX, that allows you to easily perform Wordpress deployment operations. It provides you with an elegant DSL in Ruby for modeling your deployments.}
9
9
  gem.homepage = %q{https://github.com/RLovelett/wordpress-deploy}
@@ -11,20 +11,21 @@ Gem::Specification.new do |gem|
11
11
  gem.files = `git ls-files`.split($\)
12
12
  gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
13
13
  gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
14
- gem.name = "wordpress-deploy"
15
- gem.require_paths = ["lib"]
14
+ gem.name = 'wordpress-deploy'
15
+ gem.require_paths = ['lib']
16
16
  gem.version = WordpressDeploy::VERSION
17
17
 
18
18
  ##
19
19
  # Gem dependencies
20
- gem.add_dependency 'thor', ['~> 0.15.4']
20
+ gem.add_dependency 'thor', ['~> 0.18.1']
21
21
  gem.add_dependency 'colorize', ['~> 0.5.8']
22
- gem.add_dependency 'titleize', ['~> 1.2.1']
23
- gem.add_dependency 'actionpack', ['~> 3.2.6']
22
+ gem.add_dependency 'titleize', ['~> 1.3.0']
23
+ gem.add_dependency 'actionpack', ['~> 3.2.13']
24
24
  gem.add_dependency 'php-serialize_ryan', ['~> 1.1.0']
25
25
  gem.add_dependency 'mysql2', ['~> 0.3.11']
26
26
 
27
- gem.add_development_dependency 'rake', ['~> 0.9.2.2']
28
- gem.add_development_dependency 'rspec', ['~> 2.11.0']
29
- gem.add_development_dependency 'guard-rspec', ['~> 1.2.1']
27
+ gem.add_development_dependency 'rake', ['~> 10.0.0']
28
+ gem.add_development_dependency 'rspec', ['~> 2.13.0']
29
+ gem.add_development_dependency 'guard-rspec', ['~> 2.5.0']
30
+ gem.add_development_dependency 'rb-fsevent', ['~> 0.9.1']
30
31
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: wordpress-deploy
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0.rc6
4
+ version: 1.0.0.rc7
5
5
  prerelease: 6
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-04-27 00:00:00.000000000 Z
12
+ date: 2013-04-28 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: thor
@@ -18,7 +18,7 @@ dependencies:
18
18
  requirements:
19
19
  - - ~>
20
20
  - !ruby/object:Gem::Version
21
- version: 0.15.4
21
+ version: 0.18.1
22
22
  type: :runtime
23
23
  prerelease: false
24
24
  version_requirements: !ruby/object:Gem::Requirement
@@ -26,7 +26,7 @@ dependencies:
26
26
  requirements:
27
27
  - - ~>
28
28
  - !ruby/object:Gem::Version
29
- version: 0.15.4
29
+ version: 0.18.1
30
30
  - !ruby/object:Gem::Dependency
31
31
  name: colorize
32
32
  requirement: !ruby/object:Gem::Requirement
@@ -50,7 +50,7 @@ dependencies:
50
50
  requirements:
51
51
  - - ~>
52
52
  - !ruby/object:Gem::Version
53
- version: 1.2.1
53
+ version: 1.3.0
54
54
  type: :runtime
55
55
  prerelease: false
56
56
  version_requirements: !ruby/object:Gem::Requirement
@@ -58,7 +58,7 @@ dependencies:
58
58
  requirements:
59
59
  - - ~>
60
60
  - !ruby/object:Gem::Version
61
- version: 1.2.1
61
+ version: 1.3.0
62
62
  - !ruby/object:Gem::Dependency
63
63
  name: actionpack
64
64
  requirement: !ruby/object:Gem::Requirement
@@ -66,7 +66,7 @@ dependencies:
66
66
  requirements:
67
67
  - - ~>
68
68
  - !ruby/object:Gem::Version
69
- version: 3.2.6
69
+ version: 3.2.13
70
70
  type: :runtime
71
71
  prerelease: false
72
72
  version_requirements: !ruby/object:Gem::Requirement
@@ -74,7 +74,7 @@ dependencies:
74
74
  requirements:
75
75
  - - ~>
76
76
  - !ruby/object:Gem::Version
77
- version: 3.2.6
77
+ version: 3.2.13
78
78
  - !ruby/object:Gem::Dependency
79
79
  name: php-serialize_ryan
80
80
  requirement: !ruby/object:Gem::Requirement
@@ -114,7 +114,7 @@ dependencies:
114
114
  requirements:
115
115
  - - ~>
116
116
  - !ruby/object:Gem::Version
117
- version: 0.9.2.2
117
+ version: 10.0.0
118
118
  type: :development
119
119
  prerelease: false
120
120
  version_requirements: !ruby/object:Gem::Requirement
@@ -122,7 +122,7 @@ dependencies:
122
122
  requirements:
123
123
  - - ~>
124
124
  - !ruby/object:Gem::Version
125
- version: 0.9.2.2
125
+ version: 10.0.0
126
126
  - !ruby/object:Gem::Dependency
127
127
  name: rspec
128
128
  requirement: !ruby/object:Gem::Requirement
@@ -130,7 +130,7 @@ dependencies:
130
130
  requirements:
131
131
  - - ~>
132
132
  - !ruby/object:Gem::Version
133
- version: 2.11.0
133
+ version: 2.13.0
134
134
  type: :development
135
135
  prerelease: false
136
136
  version_requirements: !ruby/object:Gem::Requirement
@@ -138,7 +138,7 @@ dependencies:
138
138
  requirements:
139
139
  - - ~>
140
140
  - !ruby/object:Gem::Version
141
- version: 2.11.0
141
+ version: 2.13.0
142
142
  - !ruby/object:Gem::Dependency
143
143
  name: guard-rspec
144
144
  requirement: !ruby/object:Gem::Requirement
@@ -146,7 +146,7 @@ dependencies:
146
146
  requirements:
147
147
  - - ~>
148
148
  - !ruby/object:Gem::Version
149
- version: 1.2.1
149
+ version: 2.5.0
150
150
  type: :development
151
151
  prerelease: false
152
152
  version_requirements: !ruby/object:Gem::Requirement
@@ -154,7 +154,23 @@ dependencies:
154
154
  requirements:
155
155
  - - ~>
156
156
  - !ruby/object:Gem::Version
157
- version: 1.2.1
157
+ version: 2.5.0
158
+ - !ruby/object:Gem::Dependency
159
+ name: rb-fsevent
160
+ requirement: !ruby/object:Gem::Requirement
161
+ none: false
162
+ requirements:
163
+ - - ~>
164
+ - !ruby/object:Gem::Version
165
+ version: 0.9.1
166
+ type: :development
167
+ prerelease: false
168
+ version_requirements: !ruby/object:Gem::Requirement
169
+ none: false
170
+ requirements:
171
+ - - ~>
172
+ - !ruby/object:Gem::Version
173
+ version: 0.9.1
158
174
  description: Wordpress Deploy provides an elegant DSL in Ruby for modeling and executing
159
175
  your deployments.
160
176
  email:
@@ -180,6 +196,7 @@ files:
180
196
  - lib/wordpress_deploy/cli/utility.rb
181
197
  - lib/wordpress_deploy/config.rb
182
198
  - lib/wordpress_deploy/database/mysql.rb
199
+ - lib/wordpress_deploy/database/option_file.rb
183
200
  - lib/wordpress_deploy/environment.rb
184
201
  - lib/wordpress_deploy/environments.rb
185
202
  - lib/wordpress_deploy/errors.rb
@@ -198,11 +215,14 @@ files:
198
215
  - spec/wordpress_deploy/cli/utility_spec.rb
199
216
  - spec/wordpress_deploy/config_spec.rb
200
217
  - spec/wordpress_deploy/database/mysql_spec.rb
218
+ - spec/wordpress_deploy/database/option_file_spec.rb
201
219
  - spec/wordpress_deploy/environment_spec.rb
202
220
  - spec/wordpress_deploy/environments_spec.rb
203
221
  - spec/wordpress_deploy/storage/ftp_spec.rb
204
222
  - spec/wordpress_deploy/storage/local_spec.rb
205
223
  - spec/wordpress_deploy/wordpress/salts_spec.rb
224
+ - templates/mysql-opts.erb
225
+ - templates/mysqldump-opts.erb
206
226
  - templates/wp-config.erb
207
227
  - wordpress_deploy.gemspec
208
228
  homepage: https://github.com/RLovelett/wordpress-deploy
@@ -219,7 +239,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
219
239
  version: '0'
220
240
  segments:
221
241
  - 0
222
- hash: 1205407767450735737
242
+ hash: 214032287340266533
223
243
  required_rubygems_version: !ruby/object:Gem::Requirement
224
244
  none: false
225
245
  requirements:
@@ -245,6 +265,7 @@ test_files:
245
265
  - spec/wordpress_deploy/cli/utility_spec.rb
246
266
  - spec/wordpress_deploy/config_spec.rb
247
267
  - spec/wordpress_deploy/database/mysql_spec.rb
268
+ - spec/wordpress_deploy/database/option_file_spec.rb
248
269
  - spec/wordpress_deploy/environment_spec.rb
249
270
  - spec/wordpress_deploy/environments_spec.rb
250
271
  - spec/wordpress_deploy/storage/ftp_spec.rb