theme-juice 0.8.3 → 0.9.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 +141 -35
- data/lib/theme-juice.rb +3 -3
- data/lib/theme-juice/cli.rb +35 -31
- data/lib/theme-juice/commands/create.rb +28 -15
- data/lib/theme-juice/commands/delete.rb +13 -6
- data/lib/theme-juice/env.rb +13 -3
- data/lib/theme-juice/io.rb +82 -85
- data/lib/theme-juice/man/tj +154 -102
- data/lib/theme-juice/man/tj-create +13 -49
- data/lib/theme-juice/man/tj-create.txt +17 -29
- data/lib/theme-juice/man/tj-delete +5 -17
- data/lib/theme-juice/man/tj-delete.txt +6 -10
- data/lib/theme-juice/man/tj-deploy +13 -0
- data/lib/theme-juice/man/tj-deploy.txt +16 -0
- data/lib/theme-juice/man/tj-setup +10 -40
- data/lib/theme-juice/man/tj-setup.txt +10 -20
- data/lib/theme-juice/man/tj.txt +136 -53
- data/lib/theme-juice/project.rb +1 -0
- data/lib/theme-juice/tasks/apache.rb +50 -0
- data/lib/theme-juice/tasks/create_confirm.rb +9 -0
- data/lib/theme-juice/tasks/delete_confirm.rb +8 -0
- data/lib/theme-juice/tasks/forward_ports.rb +54 -0
- data/lib/theme-juice/tasks/list.rb +1 -1
- data/lib/theme-juice/tasks/nginx.rb +11 -10
- data/lib/theme-juice/tasks/{vm.rb → vm_box.rb} +1 -1
- data/lib/theme-juice/tasks/vm_provision.rb +1 -1
- data/lib/theme-juice/version.rb +1 -1
- metadata +21 -46
- data/lib/theme-juice/patches/option.rb +0 -34
- data/lib/theme-juice/tasks/hosts.rb +0 -43
@@ -12,6 +12,11 @@ module ThemeJuice
|
|
12
12
|
runner do |tasks|
|
13
13
|
tasks << Tasks::DeleteConfirm.new
|
14
14
|
tasks << Tasks::Database.new
|
15
|
+
if @env.nginx
|
16
|
+
tasks << Tasks::Nginx.new
|
17
|
+
else
|
18
|
+
tasks << Tasks::Apache.new
|
19
|
+
end
|
15
20
|
tasks << Tasks::VMLocation.new
|
16
21
|
tasks << Tasks::SyncedFolder.new
|
17
22
|
tasks << Tasks::DNS.new
|
@@ -23,14 +28,14 @@ module ThemeJuice
|
|
23
28
|
private
|
24
29
|
|
25
30
|
def init_project
|
26
|
-
@project.name
|
27
|
-
@project.url
|
28
|
-
@project.db_drop
|
29
|
-
@project.vm_restart
|
31
|
+
@project.name = @opts.fetch("name") { name }
|
32
|
+
@project.url = @opts.fetch("url") { url }
|
33
|
+
@project.db_drop = @opts.fetch("db_drop") { false }
|
34
|
+
@project.vm_restart = @opts.fetch("vm_restart") { false }
|
30
35
|
end
|
31
36
|
|
32
37
|
def name
|
33
|
-
name = @io.
|
38
|
+
name = @io.ask "What's the project name?"
|
34
39
|
|
35
40
|
unless @list.projects.include? name
|
36
41
|
@io.error "Project '#{name}' doesn't exist"
|
@@ -40,7 +45,9 @@ module ThemeJuice
|
|
40
45
|
end
|
41
46
|
|
42
47
|
def url
|
43
|
-
|
48
|
+
return "#{@project.name}.dev" if @env.no_landrush
|
49
|
+
|
50
|
+
url = @io.ask "What is the project's development url?", :default => "#{@project.name}.dev"
|
44
51
|
|
45
52
|
unless @list.urls.include? url
|
46
53
|
@io.notice "Project url '#{url}' doesn't exist within DNS records. Skipping..."
|
data/lib/theme-juice/env.rb
CHANGED
@@ -3,7 +3,7 @@
|
|
3
3
|
module ThemeJuice
|
4
4
|
module Env
|
5
5
|
include SingletonHelper
|
6
|
-
|
6
|
+
|
7
7
|
attr_accessor :vm_box
|
8
8
|
attr_accessor :vm_path
|
9
9
|
attr_accessor :vm_ip
|
@@ -14,11 +14,13 @@ module ThemeJuice
|
|
14
14
|
attr_accessor :no_colors
|
15
15
|
attr_accessor :no_animations
|
16
16
|
attr_accessor :no_landrush
|
17
|
+
attr_accessor :no_port_forward
|
17
18
|
attr_accessor :verbose
|
18
19
|
attr_accessor :dryrun
|
19
|
-
|
20
|
+
attr_accessor :nginx
|
21
|
+
|
20
22
|
def vm_box=(val)
|
21
|
-
@vm_box = val ||= ENV.fetch("TJ_VM_BOX") { "
|
23
|
+
@vm_box = val ||= ENV.fetch("TJ_VM_BOX") { "git@github.com:ericmann/vvv-apache.git" }
|
22
24
|
end
|
23
25
|
|
24
26
|
def vm_path=(val)
|
@@ -57,6 +59,10 @@ module ThemeJuice
|
|
57
59
|
@no_landrush = val ||= ENV.fetch("TJ_NO_LANDRUSH") { false }
|
58
60
|
end
|
59
61
|
|
62
|
+
def no_port_forward=(val)
|
63
|
+
@no_port_forward = val ||= ENV.fetch("TJ_NO_PORT_FORWARD") { false }
|
64
|
+
end
|
65
|
+
|
60
66
|
def verbose=(val)
|
61
67
|
@verbose = val ||= ENV.fetch("TJ_VERBOSE") { false }
|
62
68
|
end
|
@@ -65,6 +71,10 @@ module ThemeJuice
|
|
65
71
|
@dryrun = val ||= ENV.fetch("TJ_DRYRUN") { false }
|
66
72
|
end
|
67
73
|
|
74
|
+
def nginx=(val)
|
75
|
+
@nginx = val ||= ENV.fetch("TJ_NGINX") { false }
|
76
|
+
end
|
77
|
+
|
68
78
|
extend self
|
69
79
|
end
|
70
80
|
end
|
data/lib/theme-juice/io.rb
CHANGED
@@ -4,16 +4,19 @@ module ThemeJuice
|
|
4
4
|
module IO
|
5
5
|
include Thor::Shell
|
6
6
|
|
7
|
+
alias_method :_say, :say
|
8
|
+
alias_method :_ask, :ask
|
9
|
+
|
7
10
|
ICONS = {
|
8
|
-
:success => "✓",
|
9
|
-
:error => "↑",
|
10
|
-
:notice => "→",
|
11
|
-
:question => "•",
|
12
|
-
:general => "›",
|
13
|
-
:log => "…",
|
14
|
-
:restart => "↪",
|
15
|
-
:selected => "•",
|
16
|
-
:unselected => "○",
|
11
|
+
:success => "✓",
|
12
|
+
:error => "↑",
|
13
|
+
:notice => "→",
|
14
|
+
:question => "•",
|
15
|
+
:general => "›",
|
16
|
+
:log => "…",
|
17
|
+
:restart => "↪",
|
18
|
+
:selected => "•",
|
19
|
+
:unselected => "○",
|
17
20
|
:fallback_success => "+",
|
18
21
|
:fallback_error => "!",
|
19
22
|
:fallback_notice => "!",
|
@@ -38,58 +41,48 @@ module ThemeJuice
|
|
38
41
|
" " => "space",
|
39
42
|
}
|
40
43
|
|
41
|
-
@env
|
42
|
-
@
|
44
|
+
@env = Env
|
45
|
+
@project = Project
|
46
|
+
@sel = 0
|
43
47
|
|
44
|
-
def
|
45
|
-
format_message
|
46
|
-
output_message
|
48
|
+
def say(message, opts = {})
|
49
|
+
output_message format_message(message, opts), opts
|
47
50
|
end
|
48
51
|
|
49
|
-
def
|
50
|
-
|
51
|
-
|
52
|
-
|
52
|
+
def ask(question, *opts)
|
53
|
+
indentation = if opts[0].respond_to? :fetch
|
54
|
+
opts[0].fetch :indent, 0
|
55
|
+
else
|
56
|
+
0
|
57
|
+
end
|
58
|
+
|
59
|
+
q = format_message question, {
|
60
|
+
:color => :blue,
|
61
|
+
:icon => :question,
|
62
|
+
:indent => indentation
|
53
63
|
}
|
54
64
|
|
55
|
-
opts.
|
56
|
-
|
57
|
-
# if opt[:default]
|
58
|
-
# opt[:default] = set_color(opt[:default], :black, :bold) unless @env.no_colors
|
59
|
-
# end
|
60
|
-
|
61
|
-
if opt[:indent]
|
62
|
-
with(question) { |str| (" " * opt[:indent]) << str }
|
63
|
-
end
|
64
|
-
|
65
|
-
break
|
66
|
-
end
|
67
|
-
|
68
|
-
ask("#{question} :", *opts).gsub /\e\[\d+m/, ""
|
65
|
+
_ask("#{q} :", *opts).gsub /\e\[\d+m/, ""
|
69
66
|
end
|
70
67
|
|
71
68
|
def agree?(question, opts = {})
|
72
|
-
format_message question, {
|
69
|
+
q = format_message question, {
|
73
70
|
:color => opts.fetch("color", :blue),
|
74
71
|
:icon => :question
|
75
72
|
}
|
76
73
|
|
77
|
-
|
78
|
-
yes? " :", opts.fetch("color", {})
|
79
|
-
else
|
80
|
-
yes? "#{question} (y/N) :"
|
81
|
-
end
|
74
|
+
yes? "#{q} (y/N) :"
|
82
75
|
end
|
83
76
|
|
84
77
|
def log(message)
|
85
|
-
|
78
|
+
say message, {
|
86
79
|
:color => :yellow,
|
87
80
|
:icon => :log
|
88
81
|
}
|
89
82
|
end
|
90
83
|
|
91
84
|
def success(message)
|
92
|
-
|
85
|
+
say message, {
|
93
86
|
:color => [:black, :on_green, :bold],
|
94
87
|
:icon => :success,
|
95
88
|
:row => true
|
@@ -97,7 +90,7 @@ module ThemeJuice
|
|
97
90
|
end
|
98
91
|
|
99
92
|
def notice(message)
|
100
|
-
|
93
|
+
say message, {
|
101
94
|
:color => [:black, :on_yellow],
|
102
95
|
:icon => :notice,
|
103
96
|
:row => true
|
@@ -105,7 +98,7 @@ module ThemeJuice
|
|
105
98
|
end
|
106
99
|
|
107
100
|
def error(message, code = SystemExit)
|
108
|
-
|
101
|
+
say message, {
|
109
102
|
:color => [:white, :on_red],
|
110
103
|
:icon => :error,
|
111
104
|
:row => true
|
@@ -117,7 +110,7 @@ module ThemeJuice
|
|
117
110
|
end
|
118
111
|
|
119
112
|
def hello(opts = {})
|
120
|
-
|
113
|
+
say "Welcome to Theme Juice!", {
|
121
114
|
:color => [:black, :on_green, :bold],
|
122
115
|
:row => true
|
123
116
|
}.merge(opts)
|
@@ -132,17 +125,16 @@ module ThemeJuice
|
|
132
125
|
"Later, homes",
|
133
126
|
"I'll be back",
|
134
127
|
"Victory is ours!",
|
135
|
-
"May the
|
128
|
+
"May the juice be with you",
|
136
129
|
"Take a break, man...",
|
137
130
|
"It's not me, it's you",
|
138
131
|
"Go home, developer, you're drunk",
|
139
132
|
"Okay, this is getting a little out of hand...",
|
140
133
|
"I don't like it when you press my buttons",
|
141
134
|
"Ouch!",
|
142
|
-
":(",
|
143
135
|
]
|
144
136
|
|
145
|
-
|
137
|
+
say goodbyes.sample, {
|
146
138
|
:color => :yellow,
|
147
139
|
:newline => true
|
148
140
|
}.merge(opts)
|
@@ -151,14 +143,14 @@ module ThemeJuice
|
|
151
143
|
end
|
152
144
|
|
153
145
|
def list(header, color, list)
|
154
|
-
|
146
|
+
say header, {
|
155
147
|
:color => [:black, :"on_#{color}"],
|
156
148
|
:icon => :notice,
|
157
149
|
:row => true
|
158
150
|
}
|
159
151
|
|
160
152
|
list.each do |item|
|
161
|
-
|
153
|
+
say item, {
|
162
154
|
:color => :"#{color}",
|
163
155
|
:icon => :general
|
164
156
|
}
|
@@ -166,7 +158,7 @@ module ThemeJuice
|
|
166
158
|
end
|
167
159
|
|
168
160
|
def choose(header, color, list)
|
169
|
-
|
161
|
+
say "#{header} (#{choose_instructions})", {
|
170
162
|
:color => :"#{color}",
|
171
163
|
:icon => :question
|
172
164
|
}
|
@@ -186,13 +178,14 @@ module ThemeJuice
|
|
186
178
|
when "esc", "ctrl+c"
|
187
179
|
goodbye :newline => false
|
188
180
|
# else
|
189
|
-
#
|
181
|
+
# say key.inspect, { :color => :yellow }
|
190
182
|
end
|
191
183
|
end
|
192
184
|
end
|
193
185
|
|
194
186
|
private
|
195
187
|
|
188
|
+
# @TODO Windows has issues registering the arrow and enter keys
|
196
189
|
def choose_instructions
|
197
190
|
if OS.windows?
|
198
191
|
"use WASD keys and press space"
|
@@ -210,7 +203,7 @@ module ThemeJuice
|
|
210
203
|
|
211
204
|
list.each_with_index do |item, i|
|
212
205
|
icon = i == @sel ? "selected" : "unselected"
|
213
|
-
|
206
|
+
say "#{item}", {
|
214
207
|
:color => :"#{color}",
|
215
208
|
:icon => :"#{icon}",
|
216
209
|
:indent => 2
|
@@ -236,58 +229,62 @@ module ThemeJuice
|
|
236
229
|
end
|
237
230
|
|
238
231
|
def format_message(message, opts = {})
|
239
|
-
@message, @opts = message, opts
|
240
232
|
|
241
|
-
|
242
|
-
|
243
|
-
|
244
|
-
format_message_width
|
245
|
-
format_message_color
|
246
|
-
format_message_indent
|
233
|
+
%W[icon newline row width color indent].each do |f|
|
234
|
+
message = self.send "format_#{f}", message, opts
|
235
|
+
end
|
247
236
|
|
248
|
-
|
237
|
+
message
|
249
238
|
end
|
250
239
|
|
251
|
-
def
|
252
|
-
|
253
|
-
end
|
240
|
+
def format_icon(message, opts)
|
241
|
+
return " #{message}" if opts[:icon].nil?
|
254
242
|
|
255
|
-
|
256
|
-
|
243
|
+
icon = if @env.no_unicode
|
244
|
+
"fallback_#{opts[:icon]}"
|
245
|
+
else
|
246
|
+
"#{opts[:icon]}"
|
247
|
+
end
|
257
248
|
|
258
|
-
|
259
|
-
with(@message) { |msg| "#{ICONS[:"#{icon}"]}" << (@opts[:empty] ? nil : " #{msg}") }
|
260
|
-
else
|
261
|
-
with(@message) { |msg| "" << msg }
|
262
|
-
end
|
249
|
+
" #{ICONS[:"#{icon}"]} " << message
|
263
250
|
end
|
264
251
|
|
265
|
-
def
|
266
|
-
|
252
|
+
def format_newline(message, opts)
|
253
|
+
return message if opts[:newline].nil?
|
254
|
+
|
255
|
+
"\n#{message}"
|
267
256
|
end
|
268
257
|
|
269
|
-
def
|
270
|
-
|
271
|
-
|
272
|
-
|
258
|
+
def format_color(message, opts)
|
259
|
+
return message if @env.no_colors || opts[:color].nil?
|
260
|
+
|
261
|
+
set_color(message, *opts[:color])
|
273
262
|
end
|
274
263
|
|
275
|
-
def
|
276
|
-
|
277
|
-
|
278
|
-
|
264
|
+
def format_row(message, opts)
|
265
|
+
return message if OS.windows? || opts[:row].nil?
|
266
|
+
|
267
|
+
message.ljust terminal_width
|
279
268
|
end
|
280
269
|
|
281
|
-
def
|
282
|
-
|
270
|
+
def format_width(message, opts)
|
271
|
+
return message if opts[:width].nil?
|
272
|
+
|
273
|
+
message.ljust opts[:width]
|
283
274
|
end
|
284
275
|
|
285
|
-
def
|
286
|
-
|
276
|
+
def format_indent(message, opts)
|
277
|
+
return message if opts[:indent].nil?
|
278
|
+
|
279
|
+
(" " * opts[:indent]) << message
|
287
280
|
end
|
288
281
|
|
289
|
-
def output_message
|
290
|
-
|
282
|
+
def output_message(message, opts)
|
283
|
+
if opts[:quiet]
|
284
|
+
message
|
285
|
+
else
|
286
|
+
_say message
|
287
|
+
end
|
291
288
|
end
|
292
289
|
|
293
290
|
extend self
|
data/lib/theme-juice/man/tj
CHANGED
@@ -10,190 +10,242 @@
|
|
10
10
|
\fBtj\fR [\fIcommand\fR] [\-\-flag=\fIarg\fR] [\-\-flag]
|
11
11
|
.
|
12
12
|
.SH "DESCRIPTION"
|
13
|
-
\fBTheme Juice\fR is a WordPress development command line utility that allows you to scaffold out entire Vagrant development
|
13
|
+
\fBTheme Juice\fR is a WordPress development command line utility that allows you to scaffold out an entire Vagrant development environment in seconds (using an Apache fork of VVV \fIhttps://github\.com/Varying\-Vagrant\-Vagrants/VVV\fR called VVV\-Apache \fIhttps://github\.com/ericmann/vvv\-apache\.git\fR as the VM)\. It also helps you manage dependencies and build tools, and can even handle your deployments\.
|
14
14
|
.
|
15
15
|
.SH "GLOBAL OPTIONS"
|
16
16
|
.
|
17
17
|
.TP
|
18
|
-
\fB\-\-vm\-box\fR=\fIrepository\fR
|
19
|
-
|
20
|
-
.br
|
21
|
-
Force Vagrant box to use for VM
|
22
|
-
|
18
|
+
\fB\-\-vm\-box\fR=\fIrepository\fR
|
19
|
+
Force Vagrant box for use as VM
|
23
20
|
.
|
24
21
|
.TP
|
25
|
-
\fB\-\-vm\-path\fR=\fIpath\fR
|
26
|
-
.
|
27
|
-
.br
|
22
|
+
\fB\-\-vm\-path\fR=\fIpath\fR
|
28
23
|
Force path to VM
|
29
|
-
|
30
24
|
.
|
31
25
|
.TP
|
32
|
-
\fB\-\-vm\-ip\fR=\fIip\fR
|
33
|
-
.
|
34
|
-
.br
|
26
|
+
\fB\-\-vm\-ip\fR=\fIip\fR
|
35
27
|
Force IP address of VM
|
36
|
-
|
37
28
|
.
|
38
29
|
.TP
|
39
|
-
\fB\-\-vm\-prefix\fR=\fIstring\fR
|
40
|
-
.
|
41
|
-
.br
|
30
|
+
\fB\-\-vm\-prefix\fR=\fIstring\fR
|
42
31
|
Force directory prefix for project in VM
|
43
|
-
|
44
32
|
.
|
45
33
|
.TP
|
46
|
-
\fB\-\-yolo\fR
|
47
|
-
.
|
48
|
-
.br
|
34
|
+
\fB\-\-yolo\fR
|
49
35
|
Say yes to anything and everything
|
50
|
-
|
51
36
|
.
|
52
37
|
.TP
|
53
|
-
\fB\-\-boring\fR
|
54
|
-
.
|
55
|
-
.br
|
38
|
+
\fB\-\-boring\fR
|
56
39
|
Prints all output without any fancy formatting
|
57
|
-
|
58
40
|
.
|
59
41
|
.TP
|
60
|
-
\fB\-\-no\-unicode\fR
|
61
|
-
.
|
62
|
-
.br
|
42
|
+
\fB\-\-no\-unicode\fR
|
63
43
|
Prints all output without unicode characters
|
64
|
-
|
65
44
|
.
|
66
45
|
.TP
|
67
|
-
\fB\-\-no\-colors\fR, \fB\-\-no\-color\fR
|
68
|
-
.
|
69
|
-
.br
|
46
|
+
\fB\-\-no\-colors\fR, \fB\-\-no\-color\fR
|
70
47
|
Prints all output without color
|
71
|
-
|
72
48
|
.
|
73
49
|
.TP
|
74
|
-
\fB\-\-no\-animations\fR
|
75
|
-
|
76
|
-
.br
|
77
|
-
Prints all output without animations (coming soon)
|
78
|
-
|
50
|
+
\fB\-\-no\-animations\fR
|
51
|
+
Prints all output without animations
|
79
52
|
.
|
80
53
|
.TP
|
81
|
-
\fB\-\-no\-landrush\fR
|
82
|
-
.
|
83
|
-
.br
|
54
|
+
\fB\-\-no\-landrush\fR
|
84
55
|
Disable the \fBlandrush\fR gem for managing DNS
|
85
|
-
|
86
56
|
.
|
87
57
|
.TP
|
88
|
-
\fB\-\-
|
58
|
+
\fB\-\-no\-port\-forward\fR, \fB\-\-no\-port\-forwarding\fR
|
59
|
+
Disable automatic port forwarding
|
89
60
|
.
|
90
|
-
.
|
61
|
+
.TP
|
62
|
+
\fB\-\-verbose\fR
|
91
63
|
Prints out additional logging information
|
92
|
-
|
93
64
|
.
|
94
65
|
.TP
|
95
|
-
\fB\-\-dryrun\fR, \fB\-\-dry\-run\fR
|
96
|
-
.
|
97
|
-
.br
|
66
|
+
\fB\-\-dryrun\fR, \fB\-\-dry\-run\fR
|
98
67
|
Run a command without actually doing anything
|
99
|
-
|
68
|
+
.
|
69
|
+
.TP
|
70
|
+
\fB\-\-nginx\fR, \fB\-\-no\-apache\fR
|
71
|
+
Create conf files for nginx instead of apache
|
100
72
|
.
|
101
73
|
.SH "PRIMARY COMMANDS"
|
102
74
|
Run \fBtj help\fR [\fIcommand\fR] to view an individual command\'s man page\.
|
103
75
|
.
|
104
76
|
.TP
|
105
|
-
\fBcreate\fR, \fBnew\fR, \fBmk\fR
|
106
|
-
.
|
107
|
-
.br
|
77
|
+
\fBcreate\fR, \fBnew\fR, \fBmk\fR
|
108
78
|
Create a new project
|
109
|
-
|
110
79
|
.
|
111
80
|
.TP
|
112
|
-
\fBsetup\fR, \fBup\fR, \fBinit\fR
|
113
|
-
.
|
114
|
-
.br
|
81
|
+
\fBsetup\fR, \fBup\fR, \fBinit\fR
|
115
82
|
Setup an existing project
|
116
|
-
|
117
83
|
.
|
118
84
|
.TP
|
119
|
-
\fBdelete\fR, \fBrm\fR, \fBremove\fR, \fBtrash\fR
|
120
|
-
.
|
121
|
-
.br
|
85
|
+
\fBdelete\fR, \fBrm\fR, \fBremove\fR, \fBtrash\fR
|
122
86
|
Delete a project
|
123
|
-
|
87
|
+
.
|
88
|
+
.TP
|
89
|
+
\fBdeploy\fR, \fBserver\fR, \fBremote\fR
|
90
|
+
Deploy a project
|
124
91
|
.
|
125
92
|
.SH "SECONDARY COMMANDS"
|
126
93
|
.
|
127
94
|
.TP
|
128
|
-
\fBversion\fR, \fB\-\-version\fR, \fB\-v\fR
|
129
|
-
.
|
130
|
-
.br
|
95
|
+
\fBversion\fR, \fB\-\-version\fR, \fB\-v\fR
|
131
96
|
Print the current version
|
132
|
-
|
133
97
|
.
|
134
98
|
.TP
|
135
|
-
\fBlist\fR, \fBls\fR, \fBprojects\fR, \fBapps\fR, \fBsites\fR
|
136
|
-
.
|
137
|
-
.br
|
99
|
+
\fBlist\fR, \fBls\fR, \fBprojects\fR, \fBapps\fR, \fBsites\fR
|
138
100
|
List all projects
|
139
|
-
|
140
101
|
.
|
141
102
|
.TP
|
142
|
-
\fBvm\fR, \fBvagrant\fR, \fBvvv\fR=[\fIcommand\fR[,\fIcommand\fR]\.\.\.]
|
143
|
-
|
144
|
-
.br
|
145
|
-
Manage development environment\. Commands are proxied to your Vagrant installation so that they can be run from any directory\.
|
146
|
-
|
103
|
+
\fBvm\fR, \fBvagrant\fR, \fBvvv\fR=[\fIcommand\fR[,\fIcommand\fR]\.\.\.]
|
104
|
+
Manage development environment via \fBvagrant\fR\. Commands are proxied to your Vagrant installation so that they can be run from any directory\.
|
147
105
|
.
|
148
106
|
.SH "CONFIG COMMANDS"
|
149
|
-
These run the corresponding command from your project\'s config file\. They accept any number of
|
107
|
+
These run the corresponding command from your project\'s config file\. They accept any number of arguments, since the behavior and handling of input is defined within the config file itself\.
|
150
108
|
.
|
151
109
|
.TP
|
152
|
-
\fBinstall\fR, \fBbuild\fR=[\
|
153
|
-
.
|
154
|
-
.br
|
110
|
+
\fBinstall\fR, \fBbuild\fR=[\fIarg\fR[,\fIarg\fR]\.\.\.]
|
155
111
|
Run installation for project
|
156
|
-
|
157
112
|
.
|
158
113
|
.TP
|
159
|
-
\fBwatch\fR, \fBdev\fR=[\
|
160
|
-
.
|
161
|
-
.br
|
114
|
+
\fBwatch\fR, \fBdev\fR=[\fIarg\fR[,\fIarg\fR]\.\.\.]
|
162
115
|
Manage and run development build tools
|
163
|
-
|
164
116
|
.
|
165
117
|
.TP
|
166
|
-
\fBvendor\fR, \fBdeps\fR=[\
|
167
|
-
.
|
168
|
-
.br
|
118
|
+
\fBvendor\fR, \fBdeps\fR=[\fIarg\fR[,\fIarg\fR]\.\.\.]
|
169
119
|
Manage PHP vendor dependencies
|
170
|
-
|
171
120
|
.
|
172
121
|
.TP
|
173
|
-
\fBdist\fR, \fBpkg\fR, \fBpackage\fR, \fBzip\fR=[\
|
174
|
-
.
|
175
|
-
.br
|
122
|
+
\fBdist\fR, \fBpkg\fR, \fBpackage\fR, \fBzip\fR=[\fIarg\fR[,\fIarg\fR]\.\.\.]
|
176
123
|
Package project for distribution
|
177
|
-
|
178
124
|
.
|
179
125
|
.TP
|
180
|
-
\fBwp\fR, \fBwordpress\fR=[\
|
126
|
+
\fBwp\fR, \fBwordpress\fR=[\fIarg\fR[,\fIarg\fR]\.\.\.]
|
127
|
+
Manage WordPress installation
|
128
|
+
.
|
129
|
+
.TP
|
130
|
+
\fBbackup\fR, \fBbk\fR=[\fIarg\fR[,\fIarg\fR]\.\.\.]
|
131
|
+
Backup project
|
132
|
+
.
|
133
|
+
.TP
|
134
|
+
\fBtest\fR, \fBtests\fR, \fBspec\fR, \fBspecs\fR=[\fIarg\fR[,\fIarg\fR]\.\.\.]
|
135
|
+
Manage and run project tests
|
136
|
+
.
|
137
|
+
.SH "CONFIG FILE"
|
138
|
+
A YAML configuration file (\fBJuicefile\fR) can be used to store commonly\-used build scripts\. Each command block sequence can be mapped to an individual project\'s build tool, allowing a streamlined set of commands to be used across multiple projects that utilize different tools\.
|
139
|
+
.
|
140
|
+
.TP
|
141
|
+
\fBcommands\fR
|
142
|
+
Collection of various command block sequences
|
143
|
+
.
|
144
|
+
.TP
|
145
|
+
\fBcommands\.install\fR
|
146
|
+
Run theme installation
|
181
147
|
.
|
182
|
-
.
|
148
|
+
.TP
|
149
|
+
\fBcommands\.watch\fR
|
150
|
+
Manage development build tools
|
151
|
+
.
|
152
|
+
.TP
|
153
|
+
\fBcommands\.vendor\fR
|
154
|
+
Manage vendor dependencies
|
155
|
+
.
|
156
|
+
.TP
|
157
|
+
\fBcommands\.wp\fR
|
183
158
|
Manage WordPress installation
|
184
|
-
|
185
159
|
.
|
186
160
|
.TP
|
187
|
-
\
|
161
|
+
\fBcommands\.dist\fR
|
162
|
+
Package project for distribution
|
188
163
|
.
|
189
|
-
.
|
164
|
+
.TP
|
165
|
+
\fBcommands\.backup\fR
|
190
166
|
Backup project
|
191
|
-
|
192
167
|
.
|
193
168
|
.TP
|
194
|
-
\
|
195
|
-
.
|
196
|
-
.br
|
169
|
+
\fBcommands\.test\fR
|
197
170
|
Manage and run project tests
|
198
|
-
|
171
|
+
.
|
172
|
+
.TP
|
173
|
+
\fBdeployment\fR
|
174
|
+
Coming soon
|
175
|
+
.
|
176
|
+
.P
|
177
|
+
Placeholder arguments can be used within any command block sequence to allow splat or indexed arguments to be passed to the corresponding command when executed\.
|
178
|
+
.
|
179
|
+
.TP
|
180
|
+
\fB%args%\fR, \fB%arguments%\fR
|
181
|
+
Splat argument placeholder e\.g\. \fBcmd %args%\fR
|
182
|
+
.
|
183
|
+
.TP
|
184
|
+
\fB%argN%\fR, \fB%argumentN%\fR
|
185
|
+
Where \fBn\fR is the argument index e\.g\. \fBcmd %arg1% | cmd %arg2%\fR
|
186
|
+
.
|
187
|
+
.P
|
188
|
+
When naming your configuration file, use the recommended \fBJuicefile\fR, or \fB\.tj\.yaml\fR naming convention\. The raw filename regex matcher is below if you want to be a little different\.
|
189
|
+
.
|
190
|
+
.P
|
191
|
+
\fB/^(((\e\.)?(tj)|((J|j)uicefile))(\.y(a)?ml)?$)/\fR
|
192
|
+
.
|
193
|
+
.SH "ENVIRONMENT"
|
194
|
+
All of the global options have a corresponding \fBENV\fR variable that can be set to permanently use the specified value each time \fBtj\fR is run\. This is useful if you\'re using an alternate Vagrant box, or if you need to disable certain features due to limited support e\.g\. on Windows\.
|
195
|
+
.
|
196
|
+
.TP
|
197
|
+
\fBTJ_VM_BOX\fR=\fIrepository\fR
|
198
|
+
Force Vagrant box for use as VM
|
199
|
+
.
|
200
|
+
.TP
|
201
|
+
\fBTJ_PATH\fR=\fIpath\fR
|
202
|
+
Force path to VM
|
203
|
+
.
|
204
|
+
.TP
|
205
|
+
\fBTJ_IP\fR=\fIip\fR
|
206
|
+
Force IP address of VM
|
207
|
+
.
|
208
|
+
.TP
|
209
|
+
\fBTJ_PREFIX\fR=\fIstring\fR
|
210
|
+
Force directory prefix for project in VM
|
211
|
+
.
|
212
|
+
.TP
|
213
|
+
\fBTJ_YOLO\fR=\fIbool\fR
|
214
|
+
Say yes to anything and everything
|
215
|
+
.
|
216
|
+
.TP
|
217
|
+
\fBTJ_BORING\fR=\fIbool\fR
|
218
|
+
Prints all output without any fancy formatting
|
219
|
+
.
|
220
|
+
.TP
|
221
|
+
\fBTJ_NO_UNICODE\fR=\fIbool\fR
|
222
|
+
Prints all output without unicode characters
|
223
|
+
.
|
224
|
+
.TP
|
225
|
+
\fBTJ_NO_COLORS\fR=\fIbool\fR
|
226
|
+
Prints all output without color
|
227
|
+
.
|
228
|
+
.TP
|
229
|
+
\fBTJ_NO_ANIMATIONS\fR=\fIbool\fR
|
230
|
+
Prints all output without animations (coming soon)
|
231
|
+
.
|
232
|
+
.TP
|
233
|
+
\fBTJ_NO_LANDRUSH\fR=\fIbool\fR
|
234
|
+
Disable the \fBlandrush\fR gem for managing DNS
|
235
|
+
.
|
236
|
+
.TP
|
237
|
+
\fBTJ_NO_PORT_FORWARD\fR=\fIbool\fR
|
238
|
+
Disable automatic port forwarding
|
239
|
+
.
|
240
|
+
.TP
|
241
|
+
\fBTJ_VERBOSE\fR=\fIbool\fR
|
242
|
+
Prints out additional logging information
|
243
|
+
.
|
244
|
+
.TP
|
245
|
+
\fBTJ_DRYRUN\fR=\fIbool\fR
|
246
|
+
Run a command without actually doing anything
|
247
|
+
.
|
248
|
+
.TP
|
249
|
+
\fBTJ_NGINX\fR=\fIbool\fR
|
250
|
+
Create conf files for nginx instead of apache
|
199
251
|
|