wordpress-deploy 1.0.0.rc6 → 1.0.0.rc7

Sign up to get free protection for your applications and to get access to all the features.
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