wordmove 1.4.0.pre → 1.4.0.pre2

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: cba31ce7dc0561ee15b0d6b537a8dd96b2d55e81
4
- data.tar.gz: 6a66c7b6a6dbb57f278ba1f18459bcb11ccdf336
3
+ metadata.gz: 33285baf64646768c1c8d392b23bac0b1fd1e2de
4
+ data.tar.gz: f49b9d7e9c054faf98d05cc5865ad45b9e8d1ea0
5
5
  SHA512:
6
- metadata.gz: 7ab2d4b74f6172f6c38dd3c950a204cf64a133a2b4c62762765eb821cbeaa35f8a8bc604e268e7a784e056915dd4bf3464f055976cb5a0b873e6e036f1b87881
7
- data.tar.gz: 8217bd61de24f5154a480253a0295077289ad67aa68d8f2cf3ca2d39a67143de68f0711d940cf3be461758bba557b91c4661f92629d66d9d7f9dbc108d57feae
6
+ metadata.gz: af73d79c48aa498fb61d7c2e7268ccd605290df440c9f9afabf19ff8c36cf7293477ef1183d4149ff75d9936aee2e4cf0b6625066b59d178c308e3aa85990c57
7
+ data.tar.gz: eda4854ee0f42be50e108b0c6db0746fa1b09385b6c6bf54f2f57dc82d97662744b1e2fbca4f420c23a3bd3d1cfc9a98e3411b49f2ef4ca72a28e05228b61efd
data/.rubocop.yml ADDED
@@ -0,0 +1,12 @@
1
+ AllCops:
2
+ RunRailsCops: true
3
+ Exclude:
4
+ - 'db/**/*'
5
+ - 'bin/*'
6
+ Metrics/LineLength:
7
+ Max: 100
8
+ Style/StringLiterals:
9
+ Enabled: false
10
+ EnforcedStyle: double_quotes
11
+ Style/Documentation:
12
+ Enabled: false
data/CHANGELOG.md CHANGED
@@ -1,4 +1,12 @@
1
- # 1.3.0.pre
2
-
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
+ # 1.3.0
6
+ - fix UTF-8 encoding issue when `wordmove init` with a wrong .sample file
7
+ - fix problem with ftp password and special chars
8
+ - fix duplicated wordpress tree in languages folder (ftp only)
9
+ - update db import / export php libraries
10
+ - add `--version` option
3
11
  - required ruby version ~> 2.0
4
- - replace `escape` gem with `Shellwords`
12
+ - updated test suite with rspec 3.x
data/README.mdown CHANGED
@@ -60,7 +60,7 @@ local:
60
60
  password: "password"
61
61
  host: "127.0.0.1"
62
62
 
63
- staging:
63
+ production:
64
64
  vhost: "http://example.com"
65
65
  wordpress_path: "/var/www/your_site" # use an absolute path here
66
66
 
@@ -109,7 +109,7 @@ staging:
109
109
  # passive: true
110
110
  # scheme: "ftps" # default "ftp"
111
111
 
112
- # production: # multiple environments can be specified
112
+ # staging: # multiple environments can be specified
113
113
  # [...]
114
114
  ```
115
115
 
@@ -151,6 +151,16 @@ too much about security though: the script is deleted just after the usage,
151
151
  and can only be executed by `wordmove`, as each time it requires a pre-shared
152
152
  one-time-password to be run.
153
153
 
154
+ ## Multi environment
155
+ You can define multiple environments in your `Movefile`, such as production, staging, etc.
156
+ Use `-e` with `pull` or `push` to run the command on the specified environment.
157
+
158
+ For example:
159
+ ```
160
+ wordmove push -e staging -d
161
+ ```
162
+ will push your local database to the staging environment only
163
+
154
164
  ## Need more tools?
155
165
  Visit [Wordpress Tools](http://wptools.it).
156
166
 
@@ -159,11 +169,21 @@ Visit [Wordpress Tools](http://wptools.it).
159
169
  * The dump script is the [`MYSQL-dump` PHP package](https://github.com/dg/MySQL-dump) by David Grudl;
160
170
  * The import script used is the [BigDump](http://www.ozerov.de/bigdump/) library;
161
171
 
172
+ ## Contribute
173
+
174
+ In order to promote a simpler contribution workflow we have decided to fork the `master` branch and PR to the master
175
+ `branch`.
176
+ We will accordingly tag and release or pre-release versions to the rubygems.org repository.
177
+ Do not consider the `dev` branch for your forks and PR.
178
+ We will never more use version-named branches as in the past.
179
+
180
+ Feel free to open an issue about contribution if more you need more info
181
+
162
182
  ## License
163
183
 
164
184
  (The MIT License)
165
185
 
166
- Copyright © 2013 weLaika
186
+ Copyright © 2013-2015 weLaika
167
187
 
168
188
  Permission is hereby granted, free of charge, to any person obtaining a copy of
169
189
  this software and associated documentation files (the ‘Software’), to deal in
data/lib/wordmove/cli.rb CHANGED
@@ -17,7 +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
+ mu_plugins: { aliases: "-m", type: :boolean },
21
21
  languages: { aliases: "-l", type: :boolean },
22
22
  db: { aliases: "-d", type: :boolean },
23
23
 
@@ -32,12 +32,20 @@ module Wordmove
32
32
 
33
33
  no_tasks do
34
34
  def handle_options(options)
35
- %w(wordpress uploads themes plugins mu_plugins languages db).map(&:to_sym).each do |task|
36
- if options[task] || options[:all]
37
- yield task
38
- end
35
+ wordpress_options.each do |task|
36
+ yield task if options[task] || options["all"]
39
37
  end
40
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
41
49
  end
42
50
 
43
51
  desc "pull", "Pulls WP data from remote host to the local machine"
@@ -45,6 +53,7 @@ module Wordmove
45
53
  method_option option, args
46
54
  end
47
55
  def pull
56
+ ensure_wordpress_options_presence!(options)
48
57
  deployer = Wordmove::Deployer::Base.deployer_for(options)
49
58
  handle_options(options) do |task|
50
59
  deployer.send("pull_#{task}")
@@ -56,6 +65,7 @@ module Wordmove
56
65
  method_option option, args
57
66
  end
58
67
  def push
68
+ ensure_wordpress_options_presence!(options)
59
69
  deployer = Wordmove::Deployer::Base.deployer_for(options)
60
70
  handle_options(options) do |task|
61
71
  deployer.send("push_#{task}")
@@ -44,7 +44,12 @@ module Wordmove
44
44
 
45
45
  found = entries.first
46
46
  logger.task("Using Movefile: #{found}")
47
- YAML::load(File.open(found))
47
+ begin
48
+ YAML::load(File.open(found))
49
+ rescue Psych::SyntaxError
50
+ puts "Your Movefile is not a valid YAML file. Please, check your Movefile with a YAML linter such as http://lmgtfy.com/?q=yaml+linter"
51
+ exit 1
52
+ end
48
53
  end
49
54
 
50
55
  def current_dir
@@ -175,7 +180,7 @@ module Wordmove
175
180
  end
176
181
 
177
182
  def mysql_dump_command(options, save_to_path)
178
- command = [ "mysqldump" ]
183
+ command = ["mysqldump"]
179
184
  command << "--host=#{Shellwords.escape(options[:host])}" if options[:host].present?
180
185
  command << "--port=#{Shellwords.escape(options[:port])}" if options[:port].present?
181
186
  command << "--user=#{Shellwords.escape(options[:user])}" if options[:user].present?
@@ -188,7 +193,7 @@ module Wordmove
188
193
  end
189
194
 
190
195
  def mysql_import_command(dump_path, options)
191
- command = [ "mysql" ]
196
+ command = ["mysql"]
192
197
  command << "--host=#{Shellwords.escape(options[:host])}" if options[:host].present?
193
198
  command << "--port=#{Shellwords.escape(options[:port])}" if options[:port].present?
194
199
  command << "--user=#{Shellwords.escape(options[:user])}" if options[:user].present?
@@ -200,6 +205,21 @@ module Wordmove
200
205
  command.join(" ")
201
206
  end
202
207
 
208
+ def compress_command(path)
209
+ command = ["gzip"]
210
+ command << "--best"
211
+ command << Shellwords.escape(path)
212
+ puts command.join(" ")
213
+ command.join(" ")
214
+ end
215
+
216
+ def uncompress_command(path)
217
+ command = ["gunzip"]
218
+ command << Shellwords.escape(path)
219
+ puts command.join(" ")
220
+ command.join(" ")
221
+ end
222
+
203
223
  def rm_command(path)
204
224
  "rm #{Shellwords.escape(path)}"
205
225
  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
- local_backup_path = local_wp_content_dir.path("#{environment}-backup-#{Time.now.to_i}.sql")
15
- download_remote_db(local_backup_path)
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
- import_remote_dump(local_dump_path)
20
- run rm_command(local_dump_path)
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(local_dump_path)
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)
@@ -52,22 +59,26 @@ module Wordmove
52
59
  end
53
60
  end
54
61
 
55
- def download_remote_db(local_dump_path)
62
+ def download_remote_db(local_gizipped_dump_path)
56
63
  remote_dump_path = remote_wp_content_dir.path("dump.sql")
57
64
  # dump remote db into file
58
65
  remote_run mysql_dump_command(remote_options[:database], remote_dump_path)
66
+ remote_run compress_command(remote_dump_path)
67
+ remote_dump_path += '.gz'
59
68
  # download remote dump
60
- remote_get(remote_dump_path, local_dump_path)
69
+ remote_get(remote_dump_path, local_gizipped_dump_path)
61
70
  remote_delete(remote_dump_path)
62
71
  end
63
72
 
64
- def import_remote_dump(local_dump_path)
73
+ def import_remote_dump(local_gizipped_dump_path)
65
74
  remote_dump_path = remote_wp_content_dir.path("dump.sql")
66
- remote_put(local_dump_path, remote_dump_path)
75
+ remote_gizipped_dump_path = remote_dump_path + '.gz'
76
+
77
+ remote_put(local_gizipped_dump_path, remote_gizipped_dump_path)
78
+ remote_run uncompress_command(remote_gizipped_dump_path)
67
79
  remote_run mysql_import_command(remote_dump_path, remote_options[:database])
68
80
  remote_delete(remote_dump_path)
69
81
  end
70
-
71
82
  end
72
83
  end
73
84
  end
@@ -1,3 +1,3 @@
1
1
  module Wordmove
2
- VERSION = "1.4.0.pre"
2
+ VERSION = "1.4.0.pre2"
3
3
  end
@@ -4,7 +4,7 @@ class WordpressDirectory < Struct.new(:type, :options)
4
4
  WP_CONTENT = :wp_content
5
5
  WP_CONFIG = :wp_config
6
6
  PLUGINS = :plugins
7
- MU_PLUGINS = :mu_plugins
7
+ MU_PLUGINS = :mu_plugins
8
8
  THEMES = :themes
9
9
  UPLOADS = :uploads
10
10
  LANGUAGES = :languages
@@ -14,7 +14,7 @@ class WordpressDirectory < Struct.new(:type, :options)
14
14
  PATH::WP_CONTENT => 'wp-content',
15
15
  PATH::WP_CONFIG => 'wp-config.php',
16
16
  PATH::PLUGINS => 'wp-content/plugins',
17
- PATH::MU_PLUGINS => 'wp-content/mu-plugins',
17
+ PATH::MU_PLUGINS => 'wp-content/mu-plugins',
18
18
  PATH::THEMES => 'wp-content/themes',
19
19
  PATH::UPLOADS => 'wp-content/uploads',
20
20
  PATH::LANGUAGES => 'wp-content/languages'
data/wordmove.gemspec CHANGED
@@ -32,4 +32,11 @@ Gem::Specification.new do |spec|
32
32
  spec.add_development_dependency "simplecov", "~> 0.9"
33
33
  spec.add_development_dependency "pry-byebug", "~> 3.1"
34
34
  spec.add_development_dependency "priscilla", "~> 1.0"
35
+
36
+ spec.post_install_message = <<-RAINBOW
37
+ Starting from 1.4.0 Wordmove will compress SQL dumps both in remote and locale environments.
38
+ If something will broke, please check if gzip and gunzip executables are present locally and
39
+ remotely. We are considering obviuos they are installed in any web environment.
40
+ Open an issue on github at your needs.
41
+ RAINBOW
35
42
  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.pre
4
+ version: 1.4.0.pre2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Stefano Verna
@@ -166,6 +166,7 @@ extra_rdoc_files: []
166
166
  files:
167
167
  - ".gitignore"
168
168
  - ".rspec"
169
+ - ".rubocop.yml"
169
170
  - ".ruby-gemset"
170
171
  - ".ruby-version"
171
172
  - ".travis.yml"
@@ -201,7 +202,11 @@ homepage: https://github.com/welaika/wordmove
201
202
  licenses:
202
203
  - MIT
203
204
  metadata: {}
204
- post_install_message:
205
+ post_install_message: |2
206
+ Starting from 1.4.0 Wordmove will compress SQL dumps both in remote and locale environments.
207
+ If something will broke, please check if gzip and gunzip executables are present locally and
208
+ remotely. We are considering obviuos they are installed in any web environment.
209
+ Open an issue on github at your needs.
205
210
  rdoc_options: []
206
211
  require_paths:
207
212
  - lib
@@ -217,7 +222,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
217
222
  version: 1.3.1
218
223
  requirements: []
219
224
  rubyforge_project:
220
- rubygems_version: 2.4.5
225
+ rubygems_version: 2.4.8
221
226
  signing_key:
222
227
  specification_version: 4
223
228
  summary: Wordmove, Capistrano for Wordpress