theme-juice 0.10.3 → 0.11.0
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/README.md +51 -4
- data/lib/theme-juice.rb +7 -0
- data/lib/theme-juice/cli.rb +70 -70
- data/lib/theme-juice/commands/deploy.rb +21 -1
- data/lib/theme-juice/config.rb +14 -8
- data/lib/theme-juice/env.rb +2 -0
- data/lib/theme-juice/helpers/hash_helper.rb +41 -0
- data/lib/theme-juice/man/tj +20 -24
- data/lib/theme-juice/man/tj-create +3 -3
- data/lib/theme-juice/man/tj-create.txt +3 -3
- data/lib/theme-juice/man/tj-delete +2 -2
- data/lib/theme-juice/man/tj-delete.txt +3 -3
- data/lib/theme-juice/man/tj-deploy +175 -3
- data/lib/theme-juice/man/tj-deploy.txt +150 -3
- data/lib/theme-juice/man/tj-setup +3 -3
- data/lib/theme-juice/man/tj-setup.txt +3 -3
- data/lib/theme-juice/man/tj.txt +37 -37
- data/lib/theme-juice/tasks/capistrano/db.rb +81 -0
- data/lib/theme-juice/tasks/capistrano/env.rb +22 -0
- data/lib/theme-juice/tasks/capistrano/rsync.rb +39 -0
- data/lib/theme-juice/tasks/capistrano/uploads.rb +22 -0
- data/lib/theme-juice/tasks/invoke.rb +36 -0
- data/lib/theme-juice/tasks/load.rb +38 -0
- data/lib/theme-juice/tasks/settings.rb +56 -0
- data/lib/theme-juice/tasks/stage.rb +39 -0
- data/lib/theme-juice/tasks/theme.rb +1 -1
- data/lib/theme-juice/tasks/vm_stage.rb +38 -0
- data/lib/theme-juice/version.rb +1 -1
- metadata +64 -12
@@ -0,0 +1,22 @@
|
|
1
|
+
# encoding: UTF-8
|
2
|
+
|
3
|
+
namespace :env do
|
4
|
+
|
5
|
+
desc "Push environment file to remote"
|
6
|
+
task :push do
|
7
|
+
on roles(:app) do
|
8
|
+
if File.exist? ".env.#{fetch(:stage)}"
|
9
|
+
upload! ".env.#{fetch(:stage)}", shared_path.join(".env.#{fetch(:stage)}")
|
10
|
+
else
|
11
|
+
error "Could not locate local .env.#{fetch(:stage)} file"
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
desc "Pull environment file from remote"
|
17
|
+
task :pull do
|
18
|
+
on roles(:app) do
|
19
|
+
download! shared_path.join(".env.#{fetch(:stage)}"), ".env.#{fetch(:stage)}"
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,39 @@
|
|
1
|
+
# encoding: UTF-8
|
2
|
+
|
3
|
+
namespace :rsync do
|
4
|
+
|
5
|
+
after :stage, :precompile do
|
6
|
+
Dir.chdir fetch(:rsync_stage) do
|
7
|
+
fetch(:rsync_install, []).each { |t| system t }
|
8
|
+
end
|
9
|
+
end
|
10
|
+
|
11
|
+
after :precompile, :ignore do
|
12
|
+
Dir.chdir fetch(:rsync_stage) do
|
13
|
+
fetch(:rsync_ignore, []).each { |f| system "rm #{f}" }
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
after "deploy:finished", :clean do
|
18
|
+
run_locally do
|
19
|
+
execute :rm, "-rf", fetch(:rsync_stage)
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
namespace :prepare do
|
24
|
+
|
25
|
+
before "deploy:check:directories", :directories do
|
26
|
+
on roles(:app) do
|
27
|
+
within fetch(:deploy_to) do
|
28
|
+
execute :mkdir, "-p", fetch(:rsync_cache)
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
before "deploy:check:linked_files", :files do
|
34
|
+
on roles(:app) do
|
35
|
+
fetch(:linked_files).each { |f| execute :touch, shared_path.join(f) }
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
# encoding: UTF-8
|
2
|
+
|
3
|
+
namespace :uploads do
|
4
|
+
|
5
|
+
desc "Push local uploads to remote"
|
6
|
+
task :push do
|
7
|
+
on roles(:app) do
|
8
|
+
upload! fetch(:vm_uploads_dir), fetch(:uploads_dir), {
|
9
|
+
recursive: true
|
10
|
+
}
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
desc "Pull remote uploads to local"
|
15
|
+
task :pull do
|
16
|
+
on roles(:app) do
|
17
|
+
download! fetch(:uploads_dir), fetch(:vm_uploads_dir), {
|
18
|
+
recursive: true
|
19
|
+
}
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,36 @@
|
|
1
|
+
# encoding: UTF-8
|
2
|
+
|
3
|
+
module ThemeJuice
|
4
|
+
module Tasks
|
5
|
+
class Invoke < Task
|
6
|
+
attr_reader :args
|
7
|
+
|
8
|
+
def initialize(args = [])
|
9
|
+
super
|
10
|
+
|
11
|
+
@args = args
|
12
|
+
end
|
13
|
+
|
14
|
+
def execute
|
15
|
+
invoke_capistrano
|
16
|
+
end
|
17
|
+
|
18
|
+
private
|
19
|
+
|
20
|
+
def invoke_capistrano
|
21
|
+
@io.log "Invoking Capistrano"
|
22
|
+
|
23
|
+
case args.last
|
24
|
+
when nil
|
25
|
+
@env.cap.invoke "deploy"
|
26
|
+
when "rollback"
|
27
|
+
@env.cap.invoke "deploy:rollback"
|
28
|
+
when "setup", "check"
|
29
|
+
@env.cap.invoke "deploy:check"
|
30
|
+
else
|
31
|
+
@env.cap.invoke *args
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
@@ -0,0 +1,38 @@
|
|
1
|
+
# encoding: UTF-8
|
2
|
+
|
3
|
+
module ThemeJuice
|
4
|
+
module Tasks
|
5
|
+
class Load < Task
|
6
|
+
|
7
|
+
def initialize
|
8
|
+
super
|
9
|
+
end
|
10
|
+
|
11
|
+
def execute
|
12
|
+
load_capistrano
|
13
|
+
load_tasks
|
14
|
+
end
|
15
|
+
|
16
|
+
private
|
17
|
+
|
18
|
+
def load_capistrano
|
19
|
+
@io.log "Loading Capistrano"
|
20
|
+
|
21
|
+
require "capistrano/setup"
|
22
|
+
require "capistrano/deploy"
|
23
|
+
require "capistrano/rsync"
|
24
|
+
require "capistrano/slackify" if @config.deployment.key? "slack"
|
25
|
+
require "capistrano/framework"
|
26
|
+
end
|
27
|
+
|
28
|
+
def load_tasks
|
29
|
+
@io.log "Loading Capistrano tasks"
|
30
|
+
|
31
|
+
tasks_dir = "#{File.dirname(__FILE__)}/capistrano"
|
32
|
+
tasks = %w[db uploads env rsync]
|
33
|
+
|
34
|
+
tasks.each { |task| load "#{tasks_dir}/#{task}.rb" }
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
@@ -0,0 +1,56 @@
|
|
1
|
+
# encoding: UTF-8
|
2
|
+
|
3
|
+
module ThemeJuice
|
4
|
+
module Tasks
|
5
|
+
class Settings < Task
|
6
|
+
include Capistrano::DSL
|
7
|
+
|
8
|
+
def initialize
|
9
|
+
super
|
10
|
+
end
|
11
|
+
|
12
|
+
def execute
|
13
|
+
configure_required_settings
|
14
|
+
configure_optional_settings
|
15
|
+
end
|
16
|
+
|
17
|
+
private
|
18
|
+
|
19
|
+
# Required global settings
|
20
|
+
def configure_required_settings
|
21
|
+
@io.log "Configuring Capistrano"
|
22
|
+
|
23
|
+
begin
|
24
|
+
set :application, @config.deployment.application.name
|
25
|
+
|
26
|
+
set :linked_files, fetch(:linked_files, []).concat(fetch(:shared_files, []))
|
27
|
+
set :linked_dirs, fetch(:linked_dirs, []).push(fetch(:uploads_dir, ""))
|
28
|
+
|
29
|
+
%w[settings repository].each do |task|
|
30
|
+
@config.deployment.send(task).symbolize_keys.each do |key, value|
|
31
|
+
set key, proc { value }
|
32
|
+
end
|
33
|
+
end
|
34
|
+
rescue NoMethodError => err
|
35
|
+
@io.error "Oops! It looks like you're missing a few deployment settings" do
|
36
|
+
puts err
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
# Optional namespaced settings
|
42
|
+
def configure_optional_settings
|
43
|
+
set :rsync_ignore, @config.deployment.stages.send(@env.stage)
|
44
|
+
.symbolize_keys.fetch(:ignore, []) rescue nil
|
45
|
+
|
46
|
+
%w[rsync slack].each do |task|
|
47
|
+
if @config.deployment.key? task
|
48
|
+
@config.deployment.send(task).each do |key, value|
|
49
|
+
set :"#{task}_#{key}", proc { value }
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|
56
|
+
end
|
@@ -0,0 +1,39 @@
|
|
1
|
+
# encoding: UTF-8
|
2
|
+
|
3
|
+
module ThemeJuice
|
4
|
+
module Tasks
|
5
|
+
class Stage < Task
|
6
|
+
include Capistrano::DSL
|
7
|
+
|
8
|
+
def initialize
|
9
|
+
super
|
10
|
+
|
11
|
+
@stage = @config.deployment.stages.send(@env.stage)
|
12
|
+
end
|
13
|
+
|
14
|
+
def execute
|
15
|
+
configure_stage
|
16
|
+
end
|
17
|
+
|
18
|
+
private
|
19
|
+
|
20
|
+
def configure_stage
|
21
|
+
@io.log "Configuring stage '#{@env.stage}'"
|
22
|
+
|
23
|
+
stages = "#{@env.stage}"
|
24
|
+
|
25
|
+
server @stage.server, {
|
26
|
+
:user => @stage.user,
|
27
|
+
:roles => @stage.roles
|
28
|
+
}
|
29
|
+
|
30
|
+
set :deploy_to, -> { @stage.path }
|
31
|
+
set :stage_url, -> { @stage.url }
|
32
|
+
set :uploads_dir, -> { @stage.uploads }
|
33
|
+
set :shared_files, -> { @stage.shared }
|
34
|
+
set :tmp_dir, -> { @stage.tmp }
|
35
|
+
set :stage, -> { @env.stage }
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
@@ -0,0 +1,38 @@
|
|
1
|
+
# encoding: UTF-8
|
2
|
+
|
3
|
+
module ThemeJuice
|
4
|
+
module Tasks
|
5
|
+
class VMStage < Task
|
6
|
+
include Capistrano::DSL
|
7
|
+
|
8
|
+
def initialize
|
9
|
+
super
|
10
|
+
|
11
|
+
@vagrant = @config.deployment.stages.vagrant
|
12
|
+
end
|
13
|
+
|
14
|
+
def execute
|
15
|
+
configure_vm_stage
|
16
|
+
end
|
17
|
+
|
18
|
+
private
|
19
|
+
|
20
|
+
def configure_vm_stage
|
21
|
+
@io.log "Configuring VM stage"
|
22
|
+
|
23
|
+
server @vagrant.server, {
|
24
|
+
:user => @vagrant.user,
|
25
|
+
:password => @vagrant.pass,
|
26
|
+
:roles => @vagrant.roles,
|
27
|
+
:no_release => true
|
28
|
+
}
|
29
|
+
|
30
|
+
set :dev_path, -> { @vagrant.path }
|
31
|
+
set :vm_url, -> { @vagrant.url }
|
32
|
+
set :vm_uploads_dir, -> { @vagrant.uploads }
|
33
|
+
set :vm_backup_dir, -> { @vagrant.backup }
|
34
|
+
set :vm_tmp_dir, -> { @vagrant.tmp }
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
data/lib/theme-juice/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: theme-juice
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.11.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ezekiel Gabrielse
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-
|
11
|
+
date: 2015-07-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: thor
|
@@ -16,42 +16,84 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - ~>
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version:
|
19
|
+
version: 0.19.0
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - ~>
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version:
|
26
|
+
version: 0.19.0
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: faker
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
31
|
- - ~>
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version:
|
33
|
+
version: 1.4.0
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - ~>
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version:
|
40
|
+
version: 1.4.0
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: os
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
45
|
- - ~>
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version:
|
47
|
+
version: 0.9.0
|
48
48
|
type: :runtime
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
52
|
- - ~>
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version:
|
54
|
+
version: 0.9.0
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: capistrano
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ~>
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: 3.4.0
|
62
|
+
type: :runtime
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ~>
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: 3.4.0
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: capistrano-slackify
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - ~>
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: 2.4.0
|
76
|
+
type: :runtime
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - ~>
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: 2.4.0
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: capistrano-rsync-bladrak
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - ~>
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: 1.3.2
|
90
|
+
type: :runtime
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - ~>
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: 1.3.2
|
55
97
|
- !ruby/object:Gem::Dependency
|
56
98
|
name: bundler
|
57
99
|
requirement: !ruby/object:Gem::Requirement
|
@@ -80,10 +122,10 @@ dependencies:
|
|
80
122
|
- - ~>
|
81
123
|
- !ruby/object:Gem::Version
|
82
124
|
version: '10.4'
|
83
|
-
description: tj is a
|
84
|
-
scaffold out
|
85
|
-
|
86
|
-
and build tools, and can even handle your deployments.
|
125
|
+
description: Theme Juice (tj) is a command line utility modern for WordPress development.
|
126
|
+
It allows you to scaffold out a Vagrant development environment in seconds, and
|
127
|
+
generate/manage an unlimited number of development projects. It also helps you manage
|
128
|
+
dependencies and build tools, and can even handle your deployments.
|
87
129
|
email:
|
88
130
|
- ezekg@yahoo.com
|
89
131
|
executables:
|
@@ -101,6 +143,7 @@ files:
|
|
101
143
|
- lib/theme-juice/commands/deploy.rb
|
102
144
|
- lib/theme-juice/config.rb
|
103
145
|
- lib/theme-juice/env.rb
|
146
|
+
- lib/theme-juice/helpers/hash_helper.rb
|
104
147
|
- lib/theme-juice/helpers/singleton_helper.rb
|
105
148
|
- lib/theme-juice/io.rb
|
106
149
|
- lib/theme-juice/man/tj
|
@@ -116,6 +159,10 @@ files:
|
|
116
159
|
- lib/theme-juice/project.rb
|
117
160
|
- lib/theme-juice/task.rb
|
118
161
|
- lib/theme-juice/tasks/apache.rb
|
162
|
+
- lib/theme-juice/tasks/capistrano/db.rb
|
163
|
+
- lib/theme-juice/tasks/capistrano/env.rb
|
164
|
+
- lib/theme-juice/tasks/capistrano/rsync.rb
|
165
|
+
- lib/theme-juice/tasks/capistrano/uploads.rb
|
119
166
|
- lib/theme-juice/tasks/create_confirm.rb
|
120
167
|
- lib/theme-juice/tasks/create_success.rb
|
121
168
|
- lib/theme-juice/tasks/database.rb
|
@@ -126,11 +173,15 @@ files:
|
|
126
173
|
- lib/theme-juice/tasks/entry.rb
|
127
174
|
- lib/theme-juice/tasks/forward_ports.rb
|
128
175
|
- lib/theme-juice/tasks/import_database.rb
|
176
|
+
- lib/theme-juice/tasks/invoke.rb
|
129
177
|
- lib/theme-juice/tasks/landrush.rb
|
130
178
|
- lib/theme-juice/tasks/list.rb
|
179
|
+
- lib/theme-juice/tasks/load.rb
|
131
180
|
- lib/theme-juice/tasks/location.rb
|
132
181
|
- lib/theme-juice/tasks/nginx.rb
|
133
182
|
- lib/theme-juice/tasks/repo.rb
|
183
|
+
- lib/theme-juice/tasks/settings.rb
|
184
|
+
- lib/theme-juice/tasks/stage.rb
|
134
185
|
- lib/theme-juice/tasks/synced_folder.rb
|
135
186
|
- lib/theme-juice/tasks/theme.rb
|
136
187
|
- lib/theme-juice/tasks/vm_box.rb
|
@@ -139,6 +190,7 @@ files:
|
|
139
190
|
- lib/theme-juice/tasks/vm_plugins.rb
|
140
191
|
- lib/theme-juice/tasks/vm_provision.rb
|
141
192
|
- lib/theme-juice/tasks/vm_restart.rb
|
193
|
+
- lib/theme-juice/tasks/vm_stage.rb
|
142
194
|
- lib/theme-juice/tasks/wp_cli.rb
|
143
195
|
- lib/theme-juice/util.rb
|
144
196
|
- lib/theme-juice/version.rb
|