wordmove 0.0.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.
- data/.gitignore +1 -0
- data/Gemfile +4 -0
- data/Gemfile.lock +64 -0
- data/README +0 -0
- data/Rakefile +2 -0
- data/bin/wordmove +4 -0
- data/features/generator.feature +30 -0
- data/features/pull.feature +0 -0
- data/features/push.feature +0 -0
- data/features/step_definitions/aruba_ext_steps.rb +3 -0
- data/features/support/setup.rb +2 -0
- data/lib/wordmove.rb +4 -0
- data/lib/wordmove/cli.rb +39 -0
- data/lib/wordmove/deployer.rb +132 -0
- data/lib/wordmove/generators/Movefile +26 -0
- data/lib/wordmove/generators/movefile.rb +18 -0
- data/lib/wordmove/hosts/local_host.rb +40 -0
- data/lib/wordmove/hosts/remote_host.rb +66 -0
- data/lib/wordmove/logger.rb +27 -0
- data/lib/wordmove/version.rb +3 -0
- data/spec/foodie_spec.rb +9 -0
- data/wordmove.gemspec +31 -0
- metadata +206 -0
data/.gitignore
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
tmp/*
|
data/Gemfile
ADDED
data/Gemfile.lock
ADDED
@@ -0,0 +1,64 @@
|
|
1
|
+
PATH
|
2
|
+
remote: .
|
3
|
+
specs:
|
4
|
+
wordmove (0.0.1)
|
5
|
+
activesupport (~> 3.0.0)
|
6
|
+
colored
|
7
|
+
escape
|
8
|
+
hashie
|
9
|
+
i18n
|
10
|
+
net-scp
|
11
|
+
net-ssh
|
12
|
+
rake
|
13
|
+
thor
|
14
|
+
|
15
|
+
GEM
|
16
|
+
remote: http://rubygems.org/
|
17
|
+
specs:
|
18
|
+
activesupport (3.0.11)
|
19
|
+
aruba (0.4.7)
|
20
|
+
childprocess (>= 0.2.2)
|
21
|
+
cucumber (>= 1.1.1)
|
22
|
+
ffi (= 1.0.9)
|
23
|
+
rspec (>= 2.7.0)
|
24
|
+
builder (3.0.0)
|
25
|
+
childprocess (0.2.3)
|
26
|
+
ffi (~> 1.0.6)
|
27
|
+
colored (1.2)
|
28
|
+
cucumber (1.1.3)
|
29
|
+
builder (>= 2.1.2)
|
30
|
+
diff-lcs (>= 1.1.2)
|
31
|
+
gherkin (~> 2.6.7)
|
32
|
+
json (>= 1.4.6)
|
33
|
+
term-ansicolor (>= 1.0.6)
|
34
|
+
diff-lcs (1.1.3)
|
35
|
+
escape (0.0.4)
|
36
|
+
ffi (1.0.9)
|
37
|
+
gherkin (2.6.8)
|
38
|
+
json (>= 1.4.6)
|
39
|
+
hashie (1.2.0)
|
40
|
+
i18n (0.6.0)
|
41
|
+
json (1.6.2)
|
42
|
+
net-scp (1.0.4)
|
43
|
+
net-ssh (>= 1.99.1)
|
44
|
+
net-ssh (2.2.1)
|
45
|
+
rake (0.9.2.2)
|
46
|
+
rspec (2.7.0)
|
47
|
+
rspec-core (~> 2.7.0)
|
48
|
+
rspec-expectations (~> 2.7.0)
|
49
|
+
rspec-mocks (~> 2.7.0)
|
50
|
+
rspec-core (2.7.1)
|
51
|
+
rspec-expectations (2.7.0)
|
52
|
+
diff-lcs (~> 1.1.2)
|
53
|
+
rspec-mocks (2.7.0)
|
54
|
+
term-ansicolor (1.0.7)
|
55
|
+
thor (0.14.6)
|
56
|
+
|
57
|
+
PLATFORMS
|
58
|
+
ruby
|
59
|
+
|
60
|
+
DEPENDENCIES
|
61
|
+
aruba
|
62
|
+
cucumber
|
63
|
+
rspec
|
64
|
+
wordmove!
|
data/README
ADDED
File without changes
|
data/Rakefile
ADDED
data/bin/wordmove
ADDED
@@ -0,0 +1,30 @@
|
|
1
|
+
Feature: Generating Movefile
|
2
|
+
In order to configure Wordmove
|
3
|
+
As a WP developer
|
4
|
+
I want Wordmove to generate me a Wordmove skeleton file
|
5
|
+
|
6
|
+
Scenario: Wordmove creation
|
7
|
+
When I run "wordmove init"
|
8
|
+
Then the following files should exist:
|
9
|
+
| Movefile |
|
10
|
+
Then the file "Movefile" should contain:
|
11
|
+
"""
|
12
|
+
local:
|
13
|
+
vhost: "http://vhost.local"
|
14
|
+
wordpress_path: "~/dev/sites/your_site"
|
15
|
+
database:
|
16
|
+
username: "username"
|
17
|
+
password: "password"
|
18
|
+
host: "host"
|
19
|
+
remote:
|
20
|
+
vhost: "http://remote.com"
|
21
|
+
wordpress_path: "/var/www/your_site"
|
22
|
+
database:
|
23
|
+
username: "username"
|
24
|
+
password: "password"
|
25
|
+
host: "host"
|
26
|
+
ssh:
|
27
|
+
username: "username"
|
28
|
+
password: "password"
|
29
|
+
host: "host"
|
30
|
+
"""
|
File without changes
|
File without changes
|
data/lib/wordmove.rb
ADDED
data/lib/wordmove/cli.rb
ADDED
@@ -0,0 +1,39 @@
|
|
1
|
+
require 'thor'
|
2
|
+
require 'wordmove/generators/movefile'
|
3
|
+
require 'wordmove/deployer'
|
4
|
+
|
5
|
+
|
6
|
+
module Wordmove
|
7
|
+
class CLI < Thor
|
8
|
+
|
9
|
+
desc "init", "Generates a brand new Movefile"
|
10
|
+
def init
|
11
|
+
Wordmove::Generators::Movefile.start
|
12
|
+
end
|
13
|
+
|
14
|
+
desc "pull", "Pulls Wordpress data from remote host to the local machine"
|
15
|
+
method_option :skip_db, :aliases => "-d", :type => :boolean
|
16
|
+
method_option :skip_uploads, :aliases => "-u", :type => :boolean
|
17
|
+
method_option :skip_themes, :aliases => "-t", :type => :boolean
|
18
|
+
method_option :skip_plugins, :aliases => "-p", :type => :boolean
|
19
|
+
method_option :verbose, :aliases => "-v", :type => :boolean
|
20
|
+
method_option :config, :aliases => "-c"
|
21
|
+
def pull
|
22
|
+
deployer = Wordmove::Deployer.new(options)
|
23
|
+
deployer.pull
|
24
|
+
end
|
25
|
+
|
26
|
+
desc "push", "Push Wordpress data to remote host from local machine"
|
27
|
+
method_option :skip_db, :aliases => "-d", :type => :boolean
|
28
|
+
method_option :skip_uploads, :aliases => "-u", :type => :boolean
|
29
|
+
method_option :skip_themes, :aliases => "-t", :type => :boolean
|
30
|
+
method_option :skip_plugins, :aliases => "-p", :type => :boolean
|
31
|
+
method_option :verbose, :aliases => "-v", :type => :boolean
|
32
|
+
method_option :config, :aliases => "-c"
|
33
|
+
def push
|
34
|
+
deployer = Wordmove::Deployer.new(options)
|
35
|
+
deployer.push
|
36
|
+
end
|
37
|
+
|
38
|
+
end
|
39
|
+
end
|
@@ -0,0 +1,132 @@
|
|
1
|
+
require 'active_support/core_ext'
|
2
|
+
require 'hashie'
|
3
|
+
require 'wordmove/hosts/local_host'
|
4
|
+
require 'wordmove/hosts/remote_host'
|
5
|
+
require 'wordmove/logger'
|
6
|
+
|
7
|
+
module Wordmove
|
8
|
+
|
9
|
+
class Deployer
|
10
|
+
|
11
|
+
attr_reader :options
|
12
|
+
attr_reader :logger
|
13
|
+
|
14
|
+
def initialize(options = {})
|
15
|
+
@options = Hashie::Mash.new(options)
|
16
|
+
@logger = Logger.new
|
17
|
+
@logger.level = options.verbose ? Logger::VERBOSE : Logger::INFO
|
18
|
+
end
|
19
|
+
|
20
|
+
def push
|
21
|
+
unless options.skip_db
|
22
|
+
logger.info "Pushing the DB..."
|
23
|
+
push_db
|
24
|
+
end
|
25
|
+
|
26
|
+
remotely do |host|
|
27
|
+
%w(uploads themes plugins).each do |step|
|
28
|
+
unless options.send("skip_#{step}")
|
29
|
+
logger.info "Pushing wp-content/#{step}..."
|
30
|
+
host.download_dir local_wpcontent_path(step), remote_wpcontent_path(step)
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
def pull
|
37
|
+
unless options.skip_db
|
38
|
+
logger.info "Pushing the DB..."
|
39
|
+
pull_db
|
40
|
+
end
|
41
|
+
|
42
|
+
remotely do |host|
|
43
|
+
%w(uploads themes plugins).each do |step|
|
44
|
+
unless options.send("skip_#{step}")
|
45
|
+
logger.info "Pushing wp-content/#{step}..."
|
46
|
+
host.upload_dir remote_wpcontent_path(step), local_wpcontent_path(step)
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
51
|
+
|
52
|
+
private
|
53
|
+
|
54
|
+
def push_db
|
55
|
+
local_mysql_dump_path = local_wpcontent_path("database_dump.sql")
|
56
|
+
remote_mysql_dump_path = remote_wpcontent_path("database_dump.sql")
|
57
|
+
|
58
|
+
locally do |host|
|
59
|
+
host.run "mysqldump", "--host=#{config.local.database.host}", "--user=#{config.local.database.username}", "--password=#{config.local.database.password}", config.local.database.name, :stdout => local_mysql_dump_path
|
60
|
+
File.open(local_mysql_dump_path, 'a') do |file|
|
61
|
+
file.write "UPDATE wp_options SET option_value=\"#{config.remote.vhost}\" WHERE option_name=\"siteurl\" OR option_name=\"home\";\n"
|
62
|
+
end
|
63
|
+
end
|
64
|
+
|
65
|
+
remotely do |host|
|
66
|
+
host.download_file local_mysql_dump_path, remote_mysql_dump_path
|
67
|
+
host.run "mysql", "--user=#{config.remote.database.username}", "--password=#{config.remote.database.password}", "--host=#{config.remote.database.host}", "--database=#{config.remote.database.name}", :stdin => remote_mysql_dump_path
|
68
|
+
host.run "rm", remote_mysql_dump_path
|
69
|
+
end
|
70
|
+
|
71
|
+
locally do |host|
|
72
|
+
host.run "rm", local_mysql_dump_path
|
73
|
+
end
|
74
|
+
end
|
75
|
+
|
76
|
+
|
77
|
+
def pull_db
|
78
|
+
local_mysql_dump_path = local_wpcontent_path("database_dump.sql")
|
79
|
+
remote_mysql_dump_path = remote_wpcontent_path("database_dump.sql")
|
80
|
+
|
81
|
+
remotely do |host|
|
82
|
+
host.run "mysqldump", "--host=#{config.remote.database.host}", "--user=#{config.remote.database.username}", "--password=#{config.remote.database.password}", config.remote.database.name, :stdout => remote_mysql_dump_path
|
83
|
+
host.upload_file remote_mysql_dump_path, local_mysql_dump_path
|
84
|
+
end
|
85
|
+
|
86
|
+
locally do |host|
|
87
|
+
File.open(local_mysql_dump_path, 'a') do |file|
|
88
|
+
file.write "UPDATE wp_options SET option_value=\"#{config.local.vhost}\" WHERE option_name=\"siteurl\" OR option_name=\"home\";\n"
|
89
|
+
end
|
90
|
+
host.run "mysql", "--user=#{config.local.database.username}", "--password=#{config.local.database.password}", "--host=#{config.local.database.host}", "--database=#{config.local.database.name}", :stdin => local_mysql_dump_path
|
91
|
+
host.run "rm", local_mysql_dump_path
|
92
|
+
end
|
93
|
+
|
94
|
+
remotely do |host|
|
95
|
+
host.run "rm", remote_mysql_dump_path
|
96
|
+
end
|
97
|
+
|
98
|
+
end
|
99
|
+
|
100
|
+
def config
|
101
|
+
if @config.blank?
|
102
|
+
config_path = @options[:config] || "Movefile"
|
103
|
+
unless File.exists? config_path
|
104
|
+
raise Thor::Error, "Could not find a valid Movefile"
|
105
|
+
end
|
106
|
+
@config = Hashie::Mash.new(YAML::load(File.open(config_path)))
|
107
|
+
end
|
108
|
+
@config
|
109
|
+
end
|
110
|
+
|
111
|
+
def local_wpcontent_path(*args)
|
112
|
+
File.join(config.local.wordpress_path, "wp-content", *args)
|
113
|
+
end
|
114
|
+
|
115
|
+
def remote_wpcontent_path(*args)
|
116
|
+
File.join(config.remote.wordpress_path, "wp-content", *args)
|
117
|
+
end
|
118
|
+
|
119
|
+
def locally
|
120
|
+
host = LocalHost.new(config.local.merge(:logger => @logger))
|
121
|
+
yield host
|
122
|
+
host.close
|
123
|
+
end
|
124
|
+
|
125
|
+
def remotely
|
126
|
+
host = RemoteHost.new(config.remote.merge(:logger => @logger))
|
127
|
+
yield host
|
128
|
+
host.close
|
129
|
+
end
|
130
|
+
|
131
|
+
end
|
132
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
local:
|
2
|
+
vhost: "http://vhost.local"
|
3
|
+
wordpress_path: "~/dev/sites/your_site"
|
4
|
+
database:
|
5
|
+
name: "database_name"
|
6
|
+
username: "username"
|
7
|
+
password: "password"
|
8
|
+
host: "host"
|
9
|
+
remote:
|
10
|
+
vhost: "http://remote.com"
|
11
|
+
wordpress_path: "/var/www/your_site"
|
12
|
+
exclude:
|
13
|
+
- .git
|
14
|
+
- .DS_Store
|
15
|
+
- .sass-cache
|
16
|
+
- Movefile
|
17
|
+
database:
|
18
|
+
name: "database_name"
|
19
|
+
username: "username"
|
20
|
+
password: "password"
|
21
|
+
host: "host"
|
22
|
+
ssh:
|
23
|
+
username: "username"
|
24
|
+
password: "password"
|
25
|
+
host: "host"
|
26
|
+
|
@@ -0,0 +1,18 @@
|
|
1
|
+
require 'thor/group'
|
2
|
+
|
3
|
+
module Wordmove
|
4
|
+
module Generators
|
5
|
+
class Movefile < Thor::Group
|
6
|
+
include Thor::Actions
|
7
|
+
|
8
|
+
def self.source_root
|
9
|
+
File.dirname(__FILE__)
|
10
|
+
end
|
11
|
+
|
12
|
+
def copy_movefile
|
13
|
+
template "Movefile"
|
14
|
+
end
|
15
|
+
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,40 @@
|
|
1
|
+
require 'escape'
|
2
|
+
|
3
|
+
module Wordmove
|
4
|
+
class LocalHost
|
5
|
+
|
6
|
+
attr_reader :options
|
7
|
+
attr_reader :logger
|
8
|
+
|
9
|
+
def initialize(options = {})
|
10
|
+
@options = Hashie::Mash.new(options)
|
11
|
+
@logger = @options[:logger]
|
12
|
+
end
|
13
|
+
|
14
|
+
def run(*args)
|
15
|
+
command = shell_command(*args)
|
16
|
+
logger.verbose "Executing locally #{command}"
|
17
|
+
unless system(command)
|
18
|
+
raise Thor::Error, "Error executing \"#{command}\""
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
def close
|
23
|
+
end
|
24
|
+
|
25
|
+
protected
|
26
|
+
|
27
|
+
def shell_command(*args)
|
28
|
+
options = args.extract_options!
|
29
|
+
command = Escape.shell_command(args)
|
30
|
+
if options[:stdin]
|
31
|
+
command += " < #{options[:stdin]}"
|
32
|
+
end
|
33
|
+
if options[:stdout]
|
34
|
+
command += " > #{options[:stdout]}"
|
35
|
+
end
|
36
|
+
command
|
37
|
+
end
|
38
|
+
|
39
|
+
end
|
40
|
+
end
|
@@ -0,0 +1,66 @@
|
|
1
|
+
require 'net/ssh'
|
2
|
+
require 'net/scp'
|
3
|
+
|
4
|
+
module Wordmove
|
5
|
+
class RemoteHost < LocalHost
|
6
|
+
|
7
|
+
alias :locally_run :run
|
8
|
+
|
9
|
+
attr_reader :session
|
10
|
+
|
11
|
+
def initialize(options = {})
|
12
|
+
super
|
13
|
+
end
|
14
|
+
|
15
|
+
def session
|
16
|
+
logger.verbose "Connecting to #{options.ssh.host}..." unless @session.present?
|
17
|
+
@session ||= Net::SSH.start(options.ssh.host, options.ssh.username, :password => options.ssh.password)
|
18
|
+
end
|
19
|
+
|
20
|
+
def close
|
21
|
+
session.close
|
22
|
+
end
|
23
|
+
|
24
|
+
def upload_file(source_file, destination_file)
|
25
|
+
logger.verbose "Copying remote #{source_file} to #{destination_file}..."
|
26
|
+
Net::SCP.download!(options.ssh.host, options.ssh.username, source_file, destination_file, :password => options.ssh.password)
|
27
|
+
end
|
28
|
+
|
29
|
+
def download_file(source_file, destination_file)
|
30
|
+
logger.verbose "Copying local #{source_file} to #{destination_file}..."
|
31
|
+
Net::SCP.upload!(options.ssh.host, options.ssh.username, source_file, destination_file, :password => options.ssh.password)
|
32
|
+
end
|
33
|
+
|
34
|
+
def download_dir(source_dir, destination_dir)
|
35
|
+
rsync "#{source_dir}/", "#{options.ssh.username}@#{options.ssh.host}:#{destination_dir}"
|
36
|
+
end
|
37
|
+
|
38
|
+
def upload_dir(source_dir, destination_dir)
|
39
|
+
rsync "#{options.ssh.username}@#{options.ssh.host}:#{source_dir}/", destination_dir
|
40
|
+
end
|
41
|
+
|
42
|
+
def run(*args)
|
43
|
+
command = shell_command(*args)
|
44
|
+
logger.verbose "Executing remotely #{command}"
|
45
|
+
session.exec!(command)
|
46
|
+
end
|
47
|
+
|
48
|
+
private
|
49
|
+
|
50
|
+
def rsync(source_dir, destination_dir)
|
51
|
+
password_file = Tempfile.new('rsync_password')
|
52
|
+
password_file.write(options.ssh.password)
|
53
|
+
password_file.close
|
54
|
+
|
55
|
+
exclude_file = Tempfile.new('exclude')
|
56
|
+
exclude_file.write(options.exclude.join("\n"))
|
57
|
+
exclude_file.close
|
58
|
+
|
59
|
+
locally_run "rsync", "-az", "--password-file=#{password_file.path}", "--exclude-from=#{exclude_file.path}", "--delete", source_dir, destination_dir
|
60
|
+
|
61
|
+
password_file.unlink
|
62
|
+
exclude_file.unlink
|
63
|
+
end
|
64
|
+
|
65
|
+
end
|
66
|
+
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
require 'colored'
|
2
|
+
|
3
|
+
module Wordmove
|
4
|
+
class Logger
|
5
|
+
|
6
|
+
INFO = 0
|
7
|
+
VERBOSE = 1
|
8
|
+
|
9
|
+
attr_accessor :level
|
10
|
+
|
11
|
+
def log(l, message)
|
12
|
+
colors = [ :green, :cyan ]
|
13
|
+
if l <= level
|
14
|
+
puts " " * l + message.send(colors[l])
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
def info(message)
|
19
|
+
log INFO, message
|
20
|
+
end
|
21
|
+
|
22
|
+
def verbose(message)
|
23
|
+
log VERBOSE, message
|
24
|
+
end
|
25
|
+
|
26
|
+
end
|
27
|
+
end
|
data/spec/foodie_spec.rb
ADDED
data/wordmove.gemspec
ADDED
@@ -0,0 +1,31 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
require File.expand_path('../lib/wordmove/version', __FILE__)
|
3
|
+
|
4
|
+
Gem::Specification.new do |gem|
|
5
|
+
gem.authors = ["Stefano Verna"]
|
6
|
+
gem.email = ["stefano.verna@welaika.com"]
|
7
|
+
gem.description = %q{Capistrano for Wordpress}
|
8
|
+
gem.summary = %q{Capistrano for Wordpress}
|
9
|
+
gem.homepage = ""
|
10
|
+
|
11
|
+
gem.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
12
|
+
gem.files = `git ls-files`.split("\n")
|
13
|
+
gem.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
14
|
+
gem.name = "wordmove"
|
15
|
+
gem.require_paths = ["lib"]
|
16
|
+
gem.version = Wordmove::VERSION
|
17
|
+
|
18
|
+
gem.add_dependency 'colored'
|
19
|
+
gem.add_dependency 'escape'
|
20
|
+
gem.add_dependency 'rake'
|
21
|
+
gem.add_dependency 'net-ssh'
|
22
|
+
gem.add_dependency 'net-scp'
|
23
|
+
gem.add_dependency "thor"
|
24
|
+
gem.add_dependency "activesupport", "~> 3.0.0"
|
25
|
+
gem.add_dependency "i18n"
|
26
|
+
gem.add_dependency "hashie"
|
27
|
+
|
28
|
+
gem.add_development_dependency "rspec"
|
29
|
+
gem.add_development_dependency "cucumber"
|
30
|
+
gem.add_development_dependency "aruba"
|
31
|
+
end
|
metadata
ADDED
@@ -0,0 +1,206 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: wordmove
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1
|
5
|
+
prerelease:
|
6
|
+
platform: ruby
|
7
|
+
authors:
|
8
|
+
- Stefano Verna
|
9
|
+
autorequire:
|
10
|
+
bindir: bin
|
11
|
+
cert_chain: []
|
12
|
+
date: 2011-11-30 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: colored
|
16
|
+
requirement: &70236824991780 !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
18
|
+
requirements:
|
19
|
+
- - ! '>='
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: '0'
|
22
|
+
type: :runtime
|
23
|
+
prerelease: false
|
24
|
+
version_requirements: *70236824991780
|
25
|
+
- !ruby/object:Gem::Dependency
|
26
|
+
name: escape
|
27
|
+
requirement: &70236824991120 !ruby/object:Gem::Requirement
|
28
|
+
none: false
|
29
|
+
requirements:
|
30
|
+
- - ! '>='
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: '0'
|
33
|
+
type: :runtime
|
34
|
+
prerelease: false
|
35
|
+
version_requirements: *70236824991120
|
36
|
+
- !ruby/object:Gem::Dependency
|
37
|
+
name: rake
|
38
|
+
requirement: &70236824990120 !ruby/object:Gem::Requirement
|
39
|
+
none: false
|
40
|
+
requirements:
|
41
|
+
- - ! '>='
|
42
|
+
- !ruby/object:Gem::Version
|
43
|
+
version: '0'
|
44
|
+
type: :runtime
|
45
|
+
prerelease: false
|
46
|
+
version_requirements: *70236824990120
|
47
|
+
- !ruby/object:Gem::Dependency
|
48
|
+
name: net-ssh
|
49
|
+
requirement: &70236824989300 !ruby/object:Gem::Requirement
|
50
|
+
none: false
|
51
|
+
requirements:
|
52
|
+
- - ! '>='
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
55
|
+
type: :runtime
|
56
|
+
prerelease: false
|
57
|
+
version_requirements: *70236824989300
|
58
|
+
- !ruby/object:Gem::Dependency
|
59
|
+
name: net-scp
|
60
|
+
requirement: &70236824988840 !ruby/object:Gem::Requirement
|
61
|
+
none: false
|
62
|
+
requirements:
|
63
|
+
- - ! '>='
|
64
|
+
- !ruby/object:Gem::Version
|
65
|
+
version: '0'
|
66
|
+
type: :runtime
|
67
|
+
prerelease: false
|
68
|
+
version_requirements: *70236824988840
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: thor
|
71
|
+
requirement: &70236824988300 !ruby/object:Gem::Requirement
|
72
|
+
none: false
|
73
|
+
requirements:
|
74
|
+
- - ! '>='
|
75
|
+
- !ruby/object:Gem::Version
|
76
|
+
version: '0'
|
77
|
+
type: :runtime
|
78
|
+
prerelease: false
|
79
|
+
version_requirements: *70236824988300
|
80
|
+
- !ruby/object:Gem::Dependency
|
81
|
+
name: activesupport
|
82
|
+
requirement: &70236824987660 !ruby/object:Gem::Requirement
|
83
|
+
none: false
|
84
|
+
requirements:
|
85
|
+
- - ~>
|
86
|
+
- !ruby/object:Gem::Version
|
87
|
+
version: 3.0.0
|
88
|
+
type: :runtime
|
89
|
+
prerelease: false
|
90
|
+
version_requirements: *70236824987660
|
91
|
+
- !ruby/object:Gem::Dependency
|
92
|
+
name: i18n
|
93
|
+
requirement: &70236824986980 !ruby/object:Gem::Requirement
|
94
|
+
none: false
|
95
|
+
requirements:
|
96
|
+
- - ! '>='
|
97
|
+
- !ruby/object:Gem::Version
|
98
|
+
version: '0'
|
99
|
+
type: :runtime
|
100
|
+
prerelease: false
|
101
|
+
version_requirements: *70236824986980
|
102
|
+
- !ruby/object:Gem::Dependency
|
103
|
+
name: hashie
|
104
|
+
requirement: &70236825713180 !ruby/object:Gem::Requirement
|
105
|
+
none: false
|
106
|
+
requirements:
|
107
|
+
- - ! '>='
|
108
|
+
- !ruby/object:Gem::Version
|
109
|
+
version: '0'
|
110
|
+
type: :runtime
|
111
|
+
prerelease: false
|
112
|
+
version_requirements: *70236825713180
|
113
|
+
- !ruby/object:Gem::Dependency
|
114
|
+
name: rspec
|
115
|
+
requirement: &70236825712460 !ruby/object:Gem::Requirement
|
116
|
+
none: false
|
117
|
+
requirements:
|
118
|
+
- - ! '>='
|
119
|
+
- !ruby/object:Gem::Version
|
120
|
+
version: '0'
|
121
|
+
type: :development
|
122
|
+
prerelease: false
|
123
|
+
version_requirements: *70236825712460
|
124
|
+
- !ruby/object:Gem::Dependency
|
125
|
+
name: cucumber
|
126
|
+
requirement: &70236825711560 !ruby/object:Gem::Requirement
|
127
|
+
none: false
|
128
|
+
requirements:
|
129
|
+
- - ! '>='
|
130
|
+
- !ruby/object:Gem::Version
|
131
|
+
version: '0'
|
132
|
+
type: :development
|
133
|
+
prerelease: false
|
134
|
+
version_requirements: *70236825711560
|
135
|
+
- !ruby/object:Gem::Dependency
|
136
|
+
name: aruba
|
137
|
+
requirement: &70236825710660 !ruby/object:Gem::Requirement
|
138
|
+
none: false
|
139
|
+
requirements:
|
140
|
+
- - ! '>='
|
141
|
+
- !ruby/object:Gem::Version
|
142
|
+
version: '0'
|
143
|
+
type: :development
|
144
|
+
prerelease: false
|
145
|
+
version_requirements: *70236825710660
|
146
|
+
description: Capistrano for Wordpress
|
147
|
+
email:
|
148
|
+
- stefano.verna@welaika.com
|
149
|
+
executables:
|
150
|
+
- wordmove
|
151
|
+
extensions: []
|
152
|
+
extra_rdoc_files: []
|
153
|
+
files:
|
154
|
+
- .gitignore
|
155
|
+
- Gemfile
|
156
|
+
- Gemfile.lock
|
157
|
+
- README
|
158
|
+
- Rakefile
|
159
|
+
- bin/wordmove
|
160
|
+
- features/generator.feature
|
161
|
+
- features/pull.feature
|
162
|
+
- features/push.feature
|
163
|
+
- features/step_definitions/aruba_ext_steps.rb
|
164
|
+
- features/support/setup.rb
|
165
|
+
- lib/wordmove.rb
|
166
|
+
- lib/wordmove/cli.rb
|
167
|
+
- lib/wordmove/deployer.rb
|
168
|
+
- lib/wordmove/generators/Movefile
|
169
|
+
- lib/wordmove/generators/movefile.rb
|
170
|
+
- lib/wordmove/hosts/local_host.rb
|
171
|
+
- lib/wordmove/hosts/remote_host.rb
|
172
|
+
- lib/wordmove/logger.rb
|
173
|
+
- lib/wordmove/version.rb
|
174
|
+
- spec/foodie_spec.rb
|
175
|
+
- wordmove.gemspec
|
176
|
+
homepage: ''
|
177
|
+
licenses: []
|
178
|
+
post_install_message:
|
179
|
+
rdoc_options: []
|
180
|
+
require_paths:
|
181
|
+
- lib
|
182
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
183
|
+
none: false
|
184
|
+
requirements:
|
185
|
+
- - ! '>='
|
186
|
+
- !ruby/object:Gem::Version
|
187
|
+
version: '0'
|
188
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
189
|
+
none: false
|
190
|
+
requirements:
|
191
|
+
- - ! '>='
|
192
|
+
- !ruby/object:Gem::Version
|
193
|
+
version: '0'
|
194
|
+
requirements: []
|
195
|
+
rubyforge_project:
|
196
|
+
rubygems_version: 1.8.10
|
197
|
+
signing_key:
|
198
|
+
specification_version: 3
|
199
|
+
summary: Capistrano for Wordpress
|
200
|
+
test_files:
|
201
|
+
- features/generator.feature
|
202
|
+
- features/pull.feature
|
203
|
+
- features/push.feature
|
204
|
+
- features/step_definitions/aruba_ext_steps.rb
|
205
|
+
- features/support/setup.rb
|
206
|
+
- spec/foodie_spec.rb
|