wordmove 1.4.0.pre5 → 1.4.0.pre6
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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +15 -8
- data/README.mdown +1 -1
- data/lib/wordmove/assets/dump.php.erb +9 -3
- data/lib/wordmove/cli.rb +15 -2
- data/lib/wordmove/deployer/base.rb +21 -2
- data/lib/wordmove/deployer/ssh.rb +21 -9
- data/lib/wordmove/generators/Movefile +2 -1
- data/lib/wordmove/version.rb +1 -1
- data/lib/wordmove/wordpress_directory.rb +2 -0
- data/wordmove.gemspec +8 -0
- metadata +22 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 730256123fd94ace7ccba5f95a7ee5ac62a60c08
|
4
|
+
data.tar.gz: 90300e3098bf4b1380aa7238e091b19d96fb1c4f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ad9786cdad431bf7883bb27ce0fcee518e92b50c4a9efa98726f6fae05b82c6a32d4af9d41127da4ab835c7f1183c9f9dcf6b2213e8a9a00a33687aee93fdba9
|
7
|
+
data.tar.gz: c86fdaadca3ffd76e0d9b09e1951be1119d0a275d8bbff2800ba46d564016b40cd681672463fb9fcd09a52bc0a9e9012b60e6e4cdd2049179887f236d158209d
|
data/CHANGELOG.md
CHANGED
@@ -1,11 +1,18 @@
|
|
1
|
+
# 1.4.0
|
2
|
+
- Implemented compression of sql files before and after transfers
|
3
|
+
- Implemented compression of sql backup files inside wp-content
|
4
|
+
- Implemented support to mu-plugins directory. Thanks connormckelvey
|
5
|
+
- Update `dump.php` library to support database VIEWS
|
6
|
+
|
7
|
+
|
1
8
|
# 1.3.1
|
2
|
-
-
|
9
|
+
- Fix typo in dump.php.erb
|
3
10
|
|
4
11
|
# 1.3.0
|
5
|
-
-
|
6
|
-
-
|
7
|
-
-
|
8
|
-
-
|
9
|
-
-
|
10
|
-
-
|
11
|
-
-
|
12
|
+
- Fix UTF-8 encoding issue when `wordmove init` with a wrong .sample file
|
13
|
+
- Fix problem with ftp password and special chars
|
14
|
+
- Fix duplicated wordpress tree in languages folder (ftp only)
|
15
|
+
- Update db import / export php libraries
|
16
|
+
- Add `--version` option
|
17
|
+
- Required ruby version ~> 2.0
|
18
|
+
- Updated test suite with rspec 3.x
|
data/README.mdown
CHANGED
@@ -67,6 +67,7 @@ production:
|
|
67
67
|
password: "password"
|
68
68
|
host: "host"
|
69
69
|
# port: "3308" # Use just in case you have exotic server config
|
70
|
+
# mysqldump_options: "--max_allowed_packet=50MB" # Only available if using SSH
|
70
71
|
|
71
72
|
exclude:
|
72
73
|
- ".git/"
|
@@ -168,4 +169,3 @@ FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
|
|
168
169
|
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
|
169
170
|
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
170
171
|
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
171
|
-
|
@@ -78,14 +78,20 @@ class MySQLDump
|
|
78
78
|
throw new Exception('Argument must be stream resource.');
|
79
79
|
}
|
80
80
|
|
81
|
-
$tables = array();
|
81
|
+
$tables = $views = array();
|
82
82
|
|
83
|
-
$res = $this->connection->query('SHOW TABLES');
|
83
|
+
$res = $this->connection->query('SHOW FULL TABLES');
|
84
84
|
while ($row = $res->fetch_row()) {
|
85
|
-
$
|
85
|
+
if ($row[1] === 'VIEW') {
|
86
|
+
$views[] = $row[0];
|
87
|
+
} else {
|
88
|
+
$tables[] = $row[0];
|
89
|
+
}
|
86
90
|
}
|
87
91
|
$res->close();
|
88
92
|
|
93
|
+
$tables = array_merge($tables, $views); // views must be last
|
94
|
+
|
89
95
|
$this->connection->query('LOCK TABLES `' . implode('` READ, `', $tables) . '` READ');
|
90
96
|
|
91
97
|
$db = $this->connection->query('SELECT DATABASE()')->fetch_row();
|
data/lib/wordmove/cli.rb
CHANGED
@@ -17,6 +17,7 @@ module Wordmove
|
|
17
17
|
uploads: { aliases: "-u", type: :boolean },
|
18
18
|
themes: { aliases: "-t", type: :boolean },
|
19
19
|
plugins: { aliases: "-p", type: :boolean },
|
20
|
+
mu_plugins: { aliases: "-m", type: :boolean },
|
20
21
|
languages: { aliases: "-l", type: :boolean },
|
21
22
|
db: { aliases: "-d", type: :boolean },
|
22
23
|
|
@@ -31,10 +32,20 @@ module Wordmove
|
|
31
32
|
|
32
33
|
no_tasks do
|
33
34
|
def handle_options(options)
|
34
|
-
|
35
|
-
yield task if options[task] || options[
|
35
|
+
wordpress_options.each do |task|
|
36
|
+
yield task if options[task] || options["all"]
|
36
37
|
end
|
37
38
|
end
|
39
|
+
|
40
|
+
def wordpress_options
|
41
|
+
%w(wordpress uploads themes plugins mu_plugins languages db)
|
42
|
+
end
|
43
|
+
|
44
|
+
def ensure_wordpress_options_presence!(options)
|
45
|
+
return if (options.keys & (wordpress_options + ["all"])).present?
|
46
|
+
puts "No options given. See wordmove --help"
|
47
|
+
exit 1
|
48
|
+
end
|
38
49
|
end
|
39
50
|
|
40
51
|
desc "pull", "Pulls WP data from remote host to the local machine"
|
@@ -42,6 +53,7 @@ module Wordmove
|
|
42
53
|
method_option option, args
|
43
54
|
end
|
44
55
|
def pull
|
56
|
+
ensure_wordpress_options_presence!(options)
|
45
57
|
deployer = Wordmove::Deployer::Base.deployer_for(options)
|
46
58
|
handle_options(options) do |task|
|
47
59
|
deployer.send("pull_#{task}")
|
@@ -53,6 +65,7 @@ module Wordmove
|
|
53
65
|
method_option option, args
|
54
66
|
end
|
55
67
|
def push
|
68
|
+
ensure_wordpress_options_presence!(options)
|
56
69
|
deployer = Wordmove::Deployer::Base.deployer_for(options)
|
57
70
|
handle_options(options) do |task|
|
58
71
|
deployer.send("push_#{task}")
|
@@ -77,7 +77,7 @@ module Wordmove
|
|
77
77
|
|
78
78
|
def remote_put_directory(directory); end
|
79
79
|
|
80
|
-
%w(uploads themes plugins languages).each do |task|
|
80
|
+
%w(uploads themes plugins mu_plugins languages).each do |task|
|
81
81
|
define_method "push_#{task}" do
|
82
82
|
logger.task "Pushing #{task.titleize}"
|
83
83
|
local_path = send("local_#{task}_dir").path
|
@@ -149,6 +149,7 @@ module Wordmove
|
|
149
149
|
[
|
150
150
|
WordpressDirectory::PATH::WP_CONTENT,
|
151
151
|
WordpressDirectory::PATH::PLUGINS,
|
152
|
+
WordpressDirectory::PATH::MU_PLUGINS,
|
152
153
|
WordpressDirectory::PATH::THEMES,
|
153
154
|
WordpressDirectory::PATH::UPLOADS,
|
154
155
|
WordpressDirectory::PATH::LANGUAGES
|
@@ -179,8 +180,11 @@ module Wordmove
|
|
179
180
|
if options[:charset].present?
|
180
181
|
command << "--default-character-set=#{Shellwords.escape(options[:charset])}"
|
181
182
|
end
|
182
|
-
command << Shellwords.escape(options[:name])
|
183
183
|
command << "--result-file=#{Shellwords.escape(save_to_path)}"
|
184
|
+
if options[:mysqldump_options].present?
|
185
|
+
command << Shellwords.split(options[:mysqldump_options])
|
186
|
+
end
|
187
|
+
command << Shellwords.escape(options[:name])
|
184
188
|
puts command.join(" ")
|
185
189
|
command.join(" ")
|
186
190
|
end
|
@@ -202,6 +206,21 @@ module Wordmove
|
|
202
206
|
command.join(" ")
|
203
207
|
end
|
204
208
|
|
209
|
+
def compress_command(path)
|
210
|
+
command = ["gzip"]
|
211
|
+
command << "--best"
|
212
|
+
command << Shellwords.escape(path)
|
213
|
+
puts command.join(" ")
|
214
|
+
command.join(" ")
|
215
|
+
end
|
216
|
+
|
217
|
+
def uncompress_command(path)
|
218
|
+
command = ["gunzip"]
|
219
|
+
command << Shellwords.escape(path)
|
220
|
+
puts command.join(" ")
|
221
|
+
command.join(" ")
|
222
|
+
end
|
223
|
+
|
205
224
|
def rm_command(path)
|
206
225
|
"rm #{Shellwords.escape(path)}"
|
207
226
|
end
|
@@ -11,23 +11,30 @@ module Wordmove
|
|
11
11
|
super
|
12
12
|
|
13
13
|
local_dump_path = local_wp_content_dir.path("dump.sql")
|
14
|
-
|
15
|
-
|
14
|
+
local_gzipped_dump_path = local_dump_path + '.gz'
|
15
|
+
local_gizipped_backup_path = local_wp_content_dir.path("#{environment}-backup-#{Time.now.to_i}.sql.gz")
|
16
|
+
|
17
|
+
download_remote_db(local_gizipped_backup_path)
|
16
18
|
|
17
19
|
save_local_db(local_dump_path)
|
18
20
|
adapt_sql(local_dump_path, local_options, remote_options)
|
19
|
-
|
20
|
-
|
21
|
+
run compress_command(local_dump_path)
|
22
|
+
import_remote_dump(local_gzipped_dump_path)
|
23
|
+
run rm_command(local_gzipped_dump_path)
|
21
24
|
end
|
22
25
|
|
23
26
|
def pull_db
|
24
27
|
super
|
25
28
|
|
26
29
|
local_dump_path = local_wp_content_dir.path("dump.sql")
|
30
|
+
local_gzipped_dump_path = local_dump_path + '.gz'
|
27
31
|
local_backup_path = local_wp_content_dir.path("local-backup-#{Time.now.to_i}.sql")
|
32
|
+
|
28
33
|
save_local_db(local_backup_path)
|
34
|
+
run compress_command(local_backup_path)
|
29
35
|
|
30
|
-
download_remote_db(
|
36
|
+
download_remote_db(local_gzipped_dump_path)
|
37
|
+
run uncompress_command(local_gzipped_dump_path)
|
31
38
|
adapt_sql(local_dump_path, remote_options, local_options)
|
32
39
|
run mysql_import_command(local_dump_path, local_options[:database])
|
33
40
|
run rm_command(local_dump_path)
|
@@ -53,18 +60,23 @@ module Wordmove
|
|
53
60
|
end
|
54
61
|
end
|
55
62
|
|
56
|
-
def download_remote_db(
|
63
|
+
def download_remote_db(local_gizipped_dump_path)
|
57
64
|
remote_dump_path = remote_wp_content_dir.path("dump.sql")
|
58
65
|
# dump remote db into file
|
59
66
|
remote_run mysql_dump_command(remote_options[:database], remote_dump_path)
|
67
|
+
remote_run compress_command(remote_dump_path)
|
68
|
+
remote_dump_path += '.gz'
|
60
69
|
# download remote dump
|
61
|
-
remote_get(remote_dump_path,
|
70
|
+
remote_get(remote_dump_path, local_gizipped_dump_path)
|
62
71
|
remote_delete(remote_dump_path)
|
63
72
|
end
|
64
73
|
|
65
|
-
def import_remote_dump(
|
74
|
+
def import_remote_dump(local_gizipped_dump_path)
|
66
75
|
remote_dump_path = remote_wp_content_dir.path("dump.sql")
|
67
|
-
|
76
|
+
remote_gizipped_dump_path = remote_dump_path + '.gz'
|
77
|
+
|
78
|
+
remote_put(local_gizipped_dump_path, remote_gizipped_dump_path)
|
79
|
+
remote_run uncompress_command(remote_gizipped_dump_path)
|
68
80
|
remote_run mysql_import_command(remote_dump_path, remote_options[:database])
|
69
81
|
remote_delete(remote_dump_path)
|
70
82
|
end
|
@@ -18,6 +18,7 @@ production:
|
|
18
18
|
password: "password"
|
19
19
|
host: "host"
|
20
20
|
# port: "3308" # Use just in case you have exotic server config
|
21
|
+
# mysqldump_options: "--max_allowed_packet=1G" # Only available if using SSH
|
21
22
|
|
22
23
|
exclude:
|
23
24
|
- ".git/"
|
@@ -35,6 +36,7 @@ production:
|
|
35
36
|
# wp_content: "wp-content"
|
36
37
|
# uploads: "wp-content/uploads"
|
37
38
|
# plugins: "wp-content/plugins"
|
39
|
+
# mu_plugins: "wp-content/mu-plugins"
|
38
40
|
# themes: "wp-content/themes"
|
39
41
|
# languages: "wp-content/languages"
|
40
42
|
|
@@ -58,4 +60,3 @@ production:
|
|
58
60
|
|
59
61
|
# staging: # multiple environments can be specified
|
60
62
|
# [...]
|
61
|
-
|
data/lib/wordmove/version.rb
CHANGED
@@ -3,6 +3,7 @@ WordpressDirectory = Struct.new(:type, :options) do
|
|
3
3
|
WP_CONTENT = :wp_content
|
4
4
|
WP_CONFIG = :wp_config
|
5
5
|
PLUGINS = :plugins
|
6
|
+
MU_PLUGINS = :mu_plugins
|
6
7
|
THEMES = :themes
|
7
8
|
UPLOADS = :uploads
|
8
9
|
LANGUAGES = :languages
|
@@ -12,6 +13,7 @@ WordpressDirectory = Struct.new(:type, :options) do
|
|
12
13
|
PATH::WP_CONTENT => 'wp-content',
|
13
14
|
PATH::WP_CONFIG => 'wp-config.php',
|
14
15
|
PATH::PLUGINS => 'wp-content/plugins',
|
16
|
+
PATH::MU_PLUGINS => 'wp-content/mu-plugins',
|
15
17
|
PATH::THEMES => 'wp-content/themes',
|
16
18
|
PATH::UPLOADS => 'wp-content/uploads',
|
17
19
|
PATH::LANGUAGES => 'wp-content/languages'
|
data/wordmove.gemspec
CHANGED
@@ -41,4 +41,12 @@ Gem::Specification.new do |spec|
|
|
41
41
|
spec.add_development_dependency "pry-byebug", "~> 3.1"
|
42
42
|
spec.add_development_dependency "priscilla", "~> 1.0"
|
43
43
|
spec.add_development_dependency "rubocop", "~> 0.37.0"
|
44
|
+
spec.add_development_dependency "gem-release"
|
45
|
+
|
46
|
+
spec.post_install_message = <<-RAINBOW
|
47
|
+
Starting from 1.4.0 Wordmove will compress SQL dumps both in remote and locale environments.
|
48
|
+
If something will broke, please check if gzip and gunzip executables are present locally and
|
49
|
+
remotely. We are considering obviuos they are installed in any web environment.
|
50
|
+
Open an issue on github at your needs.
|
51
|
+
RAINBOW
|
44
52
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: wordmove
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.4.0.
|
4
|
+
version: 1.4.0.pre6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Stefano Verna
|
@@ -11,7 +11,7 @@ authors:
|
|
11
11
|
autorequire:
|
12
12
|
bindir: exe
|
13
13
|
cert_chain: []
|
14
|
-
date: 2016-02-
|
14
|
+
date: 2016-02-16 00:00:00.000000000 Z
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
17
17
|
name: colorize
|
@@ -167,6 +167,20 @@ dependencies:
|
|
167
167
|
- - "~>"
|
168
168
|
- !ruby/object:Gem::Version
|
169
169
|
version: 0.37.0
|
170
|
+
- !ruby/object:Gem::Dependency
|
171
|
+
name: gem-release
|
172
|
+
requirement: !ruby/object:Gem::Requirement
|
173
|
+
requirements:
|
174
|
+
- - ">="
|
175
|
+
- !ruby/object:Gem::Version
|
176
|
+
version: '0'
|
177
|
+
type: :development
|
178
|
+
prerelease: false
|
179
|
+
version_requirements: !ruby/object:Gem::Requirement
|
180
|
+
requirements:
|
181
|
+
- - ">="
|
182
|
+
- !ruby/object:Gem::Version
|
183
|
+
version: '0'
|
170
184
|
description: Wordmove deploys your WordPress websites at the speed of light.
|
171
185
|
email:
|
172
186
|
- stefano.verna@welaika.com
|
@@ -216,7 +230,11 @@ homepage: https://github.com/welaika/wordmove
|
|
216
230
|
licenses:
|
217
231
|
- MIT
|
218
232
|
metadata: {}
|
219
|
-
post_install_message:
|
233
|
+
post_install_message: |2
|
234
|
+
Starting from 1.4.0 Wordmove will compress SQL dumps both in remote and locale environments.
|
235
|
+
If something will broke, please check if gzip and gunzip executables are present locally and
|
236
|
+
remotely. We are considering obviuos they are installed in any web environment.
|
237
|
+
Open an issue on github at your needs.
|
220
238
|
rdoc_options: []
|
221
239
|
require_paths:
|
222
240
|
- lib
|
@@ -232,7 +250,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
232
250
|
version: 1.3.1
|
233
251
|
requirements: []
|
234
252
|
rubyforge_project:
|
235
|
-
rubygems_version: 2.5.1
|
253
|
+
rubygems_version: 2.4.5.1
|
236
254
|
signing_key:
|
237
255
|
specification_version: 4
|
238
256
|
summary: Wordmove, Capistrano for Wordpress
|