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