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.
@@ -7,6 +7,7 @@ module ThemeJuice
7
7
  attr_accessor :name
8
8
  attr_accessor :location
9
9
  attr_accessor :url
10
+ attr_accessor :xip
10
11
  attr_accessor :theme
11
12
  attr_accessor :vm_root
12
13
  attr_accessor :vm_location
@@ -0,0 +1,50 @@
1
+ # encoding: UTF-8
2
+
3
+ module ThemeJuice
4
+ module Tasks
5
+ class Apache < Task
6
+
7
+ def initialize(opts = {})
8
+ super
9
+ end
10
+
11
+ def execute
12
+ create_apache_file
13
+ end
14
+
15
+ def unexecute
16
+ remove_apache_file
17
+ end
18
+
19
+ private
20
+
21
+ def apache_file
22
+ "#{@env.vm_path}/config/apache-config/sites/#{@project.name}.conf"
23
+ end
24
+
25
+ def apache_is_setup?
26
+ File.exist? apache_file
27
+ end
28
+
29
+ def create_apache_file
30
+ unless apache_is_setup?
31
+ @io.log "Creating apache conf file"
32
+ @util.create_file apache_file, :verbose => @env.verbose do
33
+ %Q{<VirtualHost *:80>
34
+ DocumentRoot #{@project.vm_srv}
35
+ ServerName #{@project.url}
36
+ ServerAlias *.#{@project.url} #{@project.xip}.*.xip.io *.#{@project.xip}.*.xip.io
37
+ </VirtualHost>
38
+
39
+ }
40
+ end
41
+ end
42
+ end
43
+
44
+ def remove_apache_file
45
+ @io.log "Removing apache conf file"
46
+ @util.remove_file apache_file, :verbose => @env.verbose
47
+ end
48
+ end
49
+ end
50
+ end
@@ -9,13 +9,22 @@ module ThemeJuice
9
9
  end
10
10
 
11
11
  def execute
12
+ is_user_a_smarty_pants?
12
13
  confirm
13
14
  end
14
15
 
15
16
  private
17
+
18
+ def is_user_a_smarty_pants?
19
+ if @env.yolo && @project.use_defaults
20
+ @io.say "Well, don't you just have everything all figured out?", {
21
+ :color => :blue, :icon => :general }
22
+ end
23
+ end
16
24
 
17
25
  def confirm
18
26
  @io.list "Your settings :", :yellow, settings
27
+
19
28
  unless @io.agree? "Do these settings look correct?"
20
29
  @io.error "Dang typos..."
21
30
  end
@@ -9,10 +9,18 @@ module ThemeJuice
9
9
  end
10
10
 
11
11
  def unexecute
12
+ boom?
12
13
  confirm
13
14
  end
14
15
 
15
16
  private
17
+
18
+ def boom?
19
+ if @env.yolo
20
+ @io.say "Why in the world would you run this command with yolo? Anyways...", {
21
+ :color => :yellow, :icon => :general }
22
+ end
23
+ end
16
24
 
17
25
  def confirm
18
26
  unless @io.agree? "Are you sure you want to remove '#{@project.name}'?"
@@ -0,0 +1,54 @@
1
+ # encoding: UTF-8
2
+
3
+ module ThemeJuice
4
+ module Tasks
5
+ class ForwardPorts < Entry
6
+
7
+ def initialize(opts = {})
8
+ super
9
+
10
+ @entry = {
11
+ :project => "ports",
12
+ :file => "#{@env.vm_path}/Customfile",
13
+ :name => "ports",
14
+ :id => "FP"
15
+ }
16
+ end
17
+
18
+ def execute
19
+ unless @env.no_port_forward
20
+ create_entry_file
21
+ create_entry do
22
+ %Q{#{forward_host_ports}config.vm.network "forwarded_port", guest: 80, host: 8080
23
+ config.vm.network "forwarded_port", guest: 443, host: 8443}
24
+ end
25
+ end
26
+ end
27
+
28
+ def unexecute
29
+ remove_entry
30
+ end
31
+
32
+ private
33
+
34
+ # @TODO I'd like to eventually support every OS. I'm only familiar with
35
+ # OSX, so that's why there's nothing else here
36
+ def forward_host_ports
37
+ if OS.osx?
38
+ %Q{if defined? VagrantPlugins::Triggers
39
+ config.trigger.after [:up, :reload, :provision], :stdout => true do
40
+ system \%Q{echo "
41
+ rdr pass inet proto tcp from any to any port 80 -> 127.0.0.1 port 8080
42
+ rdr pass inet proto tcp from any to any port 443 -> 127.0.0.1 port 8443
43
+ " | sudo pfctl -ef - >/dev/null 2>&1; echo "Forwarding ports (80 => 8080)\\nForwarding ports (443 => 8443)"}
44
+ end
45
+ config.trigger.after [:halt, :suspend, :destroy], :stdout => true do
46
+ system \%Q{sudo pfctl -F all -f /etc/pf.conf >/dev/null 2>&1; echo "Removing forwarded ports (80 => 8080)\\nRemoving forwarded ports (443 => 8443)"}
47
+ end
48
+ end
49
+ }
50
+ end
51
+ end
52
+ end
53
+ end
54
+ end
@@ -14,7 +14,7 @@ module ThemeJuice
14
14
  if self.send(prop).empty?
15
15
  @io.log "Nothing to list"
16
16
  else
17
- @io.list "Projects :", :green, self.send(prop)
17
+ @io.list "#{prop.capitalize} :", :green, self.send(prop)
18
18
  end
19
19
  end
20
20
 
@@ -19,7 +19,7 @@ module ThemeJuice
19
19
  private
20
20
 
21
21
  def nginx_file
22
- "#{@project.location}/vvv-nginx.conf"
22
+ "#{@env.vm_path}/config/nginx-config/sites/#{@project.name}.conf"
23
23
  end
24
24
 
25
25
  def nginx_is_setup?
@@ -28,22 +28,23 @@ module ThemeJuice
28
28
 
29
29
  def create_nginx_file
30
30
  unless nginx_is_setup?
31
- @io.log "Creating nginx file"
31
+ @io.log "Creating nginx conf file"
32
32
  @util.create_file nginx_file, :verbose => @env.verbose do
33
- %Q{server \{
34
- listen 80;
35
- server_name .#{@project.url};
36
- root {vvv_path_to_folder};
37
- include /etc/nginx/nginx-wp-common.conf;
38
- \}
39
-
33
+ %Q(server {
34
+ listen 80;
35
+ listen 443 ssl;
36
+ server_name .#{@project.url} ~(^|^[a-z0-9.-]*\\.)#{@project.xip}\\.\\d+\\.\\d+\\.\\d+\\.\\d+\\.xip\\.io$;
37
+ root #{@project.vm_srv};
38
+ include /etc/nginx/nginx-wp-common.conf;
40
39
  }
40
+
41
+ )
41
42
  end
42
43
  end
43
44
  end
44
45
 
45
46
  def remove_nginx_file
46
- @io.log "Removing nginx file"
47
+ @io.log "Removing nginx conf file"
47
48
  @util.remove_file nginx_file, :verbose => @env.verbose
48
49
  end
49
50
  end
@@ -2,7 +2,7 @@
2
2
 
3
3
  module ThemeJuice
4
4
  module Tasks
5
- class VM < Task
5
+ class VMBox < Task
6
6
 
7
7
  def initialize(opts = {})
8
8
  super
@@ -27,7 +27,7 @@ module ThemeJuice
27
27
 
28
28
  @util.inside @env.vm_path do
29
29
  res = @util.run("vagrant status --machine-readable", {
30
- :verbose => @env.verbose, :capture => true}).include? "running"
30
+ :verbose => @env.verbose, :capture => true }).include? "running"
31
31
  end
32
32
 
33
33
  res
@@ -1,5 +1,5 @@
1
1
  # encoding: UTF-8
2
2
 
3
3
  module ThemeJuice
4
- VERSION = "0.8.3"
4
+ VERSION = "0.9.0"
5
5
  end
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.8.3
4
+ version: 0.9.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-06-01 00:00:00.000000000 Z
11
+ date: 2015-06-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: thor
@@ -53,78 +53,51 @@ dependencies:
53
53
  - !ruby/object:Gem::Version
54
54
  version: '0.9'
55
55
  - !ruby/object:Gem::Dependency
56
- name: bundler
57
- requirement: !ruby/object:Gem::Requirement
58
- requirements:
59
- - - ~>
60
- - !ruby/object:Gem::Version
61
- version: '1.0'
62
- type: :development
63
- prerelease: false
64
- version_requirements: !ruby/object:Gem::Requirement
65
- requirements:
66
- - - ~>
67
- - !ruby/object:Gem::Version
68
- version: '1.0'
69
- - !ruby/object:Gem::Dependency
70
- name: rake
71
- requirement: !ruby/object:Gem::Requirement
72
- requirements:
73
- - - ~>
74
- - !ruby/object:Gem::Version
75
- version: '10.4'
76
- type: :development
77
- prerelease: false
78
- version_requirements: !ruby/object:Gem::Requirement
79
- requirements:
80
- - - ~>
81
- - !ruby/object:Gem::Version
82
- version: '10.4'
83
- - !ruby/object:Gem::Dependency
84
- name: rspec
56
+ name: capistrano
85
57
  requirement: !ruby/object:Gem::Requirement
86
58
  requirements:
87
59
  - - ~>
88
60
  - !ruby/object:Gem::Version
89
- version: '3.2'
90
- type: :development
61
+ version: '3.3'
62
+ type: :runtime
91
63
  prerelease: false
92
64
  version_requirements: !ruby/object:Gem::Requirement
93
65
  requirements:
94
66
  - - ~>
95
67
  - !ruby/object:Gem::Version
96
- version: '3.2'
68
+ version: '3.3'
97
69
  - !ruby/object:Gem::Dependency
98
- name: fakefs
70
+ name: bundler
99
71
  requirement: !ruby/object:Gem::Requirement
100
72
  requirements:
101
73
  - - ~>
102
74
  - !ruby/object:Gem::Version
103
- version: '0.6'
75
+ version: '1.0'
104
76
  type: :development
105
77
  prerelease: false
106
78
  version_requirements: !ruby/object:Gem::Requirement
107
79
  requirements:
108
80
  - - ~>
109
81
  - !ruby/object:Gem::Version
110
- version: '0.6'
82
+ version: '1.0'
111
83
  - !ruby/object:Gem::Dependency
112
- name: ronn
84
+ name: rake
113
85
  requirement: !ruby/object:Gem::Requirement
114
86
  requirements:
115
87
  - - ~>
116
88
  - !ruby/object:Gem::Version
117
- version: '0.7'
89
+ version: '10.4'
118
90
  type: :development
119
91
  prerelease: false
120
92
  version_requirements: !ruby/object:Gem::Requirement
121
93
  requirements:
122
94
  - - ~>
123
95
  - !ruby/object:Gem::Version
124
- version: '0.7'
96
+ version: '10.4'
125
97
  description: Theme Juice is a WordPress development command line utility that allows
126
- you to scaffold out entire Vagrant development environments in seconds, manage dependencies
127
- and build tools, and even handle deployments.
98
+ you to scaffold out an entire Vagrant development environment in seconds (using
99
+ an Apache fork of VVV called VVV-Apache as the VM). It also helps you manage dependencies
100
+ and build tools, and can even handle your deployments.
128
101
  email:
129
102
  - ezekg@yahoo.com
130
103
  executables:
@@ -149,12 +122,14 @@ files:
149
122
  - lib/theme-juice/man/tj-create.txt
150
123
  - lib/theme-juice/man/tj-delete
151
124
  - lib/theme-juice/man/tj-delete.txt
125
+ - lib/theme-juice/man/tj-deploy
126
+ - lib/theme-juice/man/tj-deploy.txt
152
127
  - lib/theme-juice/man/tj-setup
153
128
  - lib/theme-juice/man/tj-setup.txt
154
129
  - lib/theme-juice/man/tj.txt
155
- - lib/theme-juice/patches/option.rb
156
130
  - lib/theme-juice/project.rb
157
131
  - lib/theme-juice/task.rb
132
+ - lib/theme-juice/tasks/apache.rb
158
133
  - lib/theme-juice/tasks/create_confirm.rb
159
134
  - lib/theme-juice/tasks/create_success.rb
160
135
  - lib/theme-juice/tasks/database.rb
@@ -163,7 +138,7 @@ files:
163
138
  - lib/theme-juice/tasks/dns.rb
164
139
  - lib/theme-juice/tasks/dot_env.rb
165
140
  - lib/theme-juice/tasks/entry.rb
166
- - lib/theme-juice/tasks/hosts.rb
141
+ - lib/theme-juice/tasks/forward_ports.rb
167
142
  - lib/theme-juice/tasks/import_database.rb
168
143
  - lib/theme-juice/tasks/landrush.rb
169
144
  - lib/theme-juice/tasks/list.rb
@@ -172,7 +147,7 @@ files:
172
147
  - lib/theme-juice/tasks/repo.rb
173
148
  - lib/theme-juice/tasks/synced_folder.rb
174
149
  - lib/theme-juice/tasks/theme.rb
175
- - lib/theme-juice/tasks/vm.rb
150
+ - lib/theme-juice/tasks/vm_box.rb
176
151
  - lib/theme-juice/tasks/vm_customfile.rb
177
152
  - lib/theme-juice/tasks/vm_location.rb
178
153
  - lib/theme-juice/tasks/vm_plugins.rb
@@ -183,7 +158,7 @@ files:
183
158
  - lib/theme-juice/version.rb
184
159
  homepage: https://themejuice.it
185
160
  licenses:
186
- - MIT
161
+ - GNU
187
162
  metadata: {}
188
163
  post_install_message:
189
164
  rdoc_options: []
@@ -1,34 +0,0 @@
1
- # encoding: UTF-8
2
-
3
- #
4
- # Monkey patch to not print out reverse bool options on --help
5
- #
6
- # @see https://github.com/erikhuda/thor/issues/417
7
- #
8
- class Thor
9
- class Option < Argument
10
- def usage(padding = 0)
11
- sample = if banner && !banner.to_s.empty?
12
- "#{switch_name}=#{banner}"
13
- else
14
- switch_name
15
- end
16
-
17
- sample = "[#{sample}]" unless required?
18
-
19
- if aliases.empty?
20
- (" " * padding) << sample
21
- else
22
- "#{aliases.join(', ')}, #{sample}"
23
- end
24
- end
25
-
26
- VALID_TYPES.each do |type|
27
- class_eval <<-RUBY, __FILE__, __LINE__ + 1
28
- def #{type}?
29
- self.type == #{type.inspect}
30
- end
31
- RUBY
32
- end
33
- end
34
- end
@@ -1,43 +0,0 @@
1
- # encoding: UTF-8
2
-
3
- module ThemeJuice
4
- module Tasks
5
- class Hosts < Task
6
-
7
- def initialize(opts = {})
8
- super
9
- end
10
-
11
- def execute
12
- create_hosts_file
13
- end
14
-
15
- def unexecute
16
- remove_hosts_file
17
- end
18
-
19
- private
20
-
21
- def hosts_file
22
- "#{@project.location}/vvv-hosts"
23
- end
24
-
25
- def hosts_is_setup?
26
- File.exist? hosts_file
27
- end
28
-
29
- def create_hosts_file
30
- unless hosts_is_setup?
31
- @io.log "Creating hosts file"
32
- @util.create_file hosts_file, "#{@project.url}",
33
- :verbose => @env.verbose
34
- end
35
- end
36
-
37
- def remove_hosts_file
38
- @io.log "Removing hosts file"
39
- @util.remove_file hosts_file, :verbose => @env.verbose
40
- end
41
- end
42
- end
43
- end