nimbu 0.8.4 → 0.9.alpha.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/nimbu/auth.rb +1 -1
- data/lib/nimbu/command/server.rb +155 -99
- data/lib/nimbu/server/base.rb +9 -7
- data/lib/nimbu/version.rb +1 -1
- metadata +17 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7dbe608933863fe8ae8c081b13333a4c2a28232b
|
4
|
+
data.tar.gz: 0b1218097cfadb593d8489304a796f18713c52c2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b6916136b0247fb8095cec786c9d41a059d27c7a528ac25a816fe87e027326e5562bbea0cd7739e94c40815d0126bef0df685e7329b0221468db3832a2dc46ac
|
7
|
+
data.tar.gz: ee250cb7bae46aecea5d389c916500cb43a6bf844b0fd95a8a6e1d0f86f28ff09bda128480387706d78c6d576808aebad05f4f440eecccb96cee7c96ea02b799
|
data/lib/nimbu/auth.rb
CHANGED
@@ -248,7 +248,7 @@ class Nimbu::Auth
|
|
248
248
|
char = nil
|
249
249
|
password = ''
|
250
250
|
|
251
|
-
while char = Win32API.new("
|
251
|
+
while char = Win32API.new("msvcrt", "_getch", [ ], "L").Call do
|
252
252
|
break if char == 10 || char == 13 # received carriage return or newline
|
253
253
|
if char == 127 || char == 8 # backspace and delete
|
254
254
|
password.slice!(-1, 1)
|
data/lib/nimbu/command/server.rb
CHANGED
@@ -25,139 +25,196 @@ class Nimbu::Command::Server < Nimbu::Command::Base
|
|
25
25
|
if !Nimbu::Auth.read_configuration || !Nimbu::Auth.read_credentials
|
26
26
|
print red(bold("ERROR")), ": this directory does not seem to contain any Nimbu theme or your credentials are not set. \n ==> Run \"", bold { "nimbu init"}, "\" to initialize this directory."
|
27
27
|
else
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
if no_cookies
|
28
|
+
@with_haml = options[:haml]
|
29
|
+
@with_compass = options[:compass] || options[:c]
|
30
|
+
@no_cookies = options[:nocookies]
|
31
|
+
@webpack_resources = options[:webpack]
|
32
|
+
@webpack_url = options[:webpackurl]
|
33
|
+
|
34
|
+
if @no_cookies
|
36
35
|
Nimbu.cli_options[:nocookies] = true
|
37
36
|
end
|
38
37
|
|
39
|
-
if webpack_resources
|
40
|
-
Nimbu.cli_options[:webpack_resources] = webpack_resources.split(",").map(&:strip)
|
41
|
-
if webpack_url
|
42
|
-
Nimbu.cli_options[:webpack_url] = webpack_url
|
38
|
+
if @webpack_resources
|
39
|
+
Nimbu.cli_options[:webpack_resources] = @webpack_resources.split(",").map(&:strip)
|
40
|
+
if @webpack_url
|
41
|
+
Nimbu.cli_options[:webpack_url] = @webpack_url
|
43
42
|
else
|
44
43
|
Nimbu.cli_options[:webpack_url] = "http://localhost:8080"
|
45
44
|
end
|
46
45
|
end
|
47
46
|
|
48
|
-
if with_compass
|
47
|
+
if @with_compass
|
49
48
|
require 'compass'
|
50
49
|
require 'compass/exec'
|
51
50
|
end
|
52
51
|
|
53
|
-
if with_haml
|
52
|
+
if @with_haml
|
54
53
|
require 'haml'
|
55
54
|
end
|
56
55
|
|
57
56
|
services = []
|
58
|
-
services << "HAML" if with_haml
|
59
|
-
services << "Compass" if with_compass
|
57
|
+
services << "HAML" if @with_haml
|
58
|
+
services << "Compass" if @with_compass
|
60
59
|
title = "Starting up Nimbu Server"
|
61
|
-
title << " (with local #{services.join(' and ')} watcher)" if with_compass || with_haml
|
62
|
-
title << " (skipping cookies check)" if no_cookies
|
63
|
-
title << " (proxying webpack resources to #{Nimbu.cli_options[:webpack_url]})" if webpack_resources
|
60
|
+
title << " (with local #{services.join(' and ')} watcher)" if @with_compass || @with_haml
|
61
|
+
title << " (skipping cookies check)" if @no_cookies
|
62
|
+
title << " (proxying webpack resources to #{Nimbu.cli_options[:webpack_url]})" if @webpack_resources
|
64
63
|
title << " ..."
|
65
64
|
puts white("\n#{title}")
|
66
65
|
puts green(nimbu_header)
|
67
66
|
puts green("\nConnnected to '#{Nimbu::Auth.site}.#{Nimbu::Auth.admin_host}', using '#{Nimbu::Auth.theme}' theme#{Nimbu.debug ? ' (in debug mode)'.red : nil}.\n")
|
68
67
|
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
server_pid = Process.fork do
|
75
|
-
$stdout.reopen(server_write)
|
76
|
-
server_read.close
|
77
|
-
puts "Starting server..."
|
78
|
-
server_options = {
|
79
|
-
:Port => options[:port] || 4567,
|
80
|
-
:DocumentRoot => Dir.pwd
|
81
|
-
}
|
82
|
-
Rack::Handler::Thin.run Nimbu::Server::Base, server_options do |server|
|
83
|
-
[:INT, :TERM].each { |sig| trap(sig) { server.respond_to?(:stop!) ? server.stop! : server.stop } }
|
84
|
-
end
|
68
|
+
if Nimbu::Helpers.running_on_windows?
|
69
|
+
run_on_windows!
|
70
|
+
else
|
71
|
+
run_on_unix!
|
85
72
|
end
|
73
|
+
end
|
74
|
+
end
|
86
75
|
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
76
|
+
def bare
|
77
|
+
puts "Starting server..."
|
78
|
+
server_options = {
|
79
|
+
:Port => options[:port] || 4567,
|
80
|
+
:DocumentRoot => Dir.pwd
|
81
|
+
}
|
82
|
+
Rack::Handler::Thin.run Nimbu::Server::Base, server_options do |server|
|
83
|
+
[:INT, :TERM].each { |sig| trap(sig) { server.respond_to?(:stop!) ? server.stop! : server.stop } }
|
84
|
+
end
|
85
|
+
end
|
86
|
+
|
87
|
+
def haml
|
88
|
+
require 'haml'
|
89
|
+
puts "Starting..."
|
90
|
+
haml_listener = HamlWatcher.watch
|
91
|
+
sleep
|
92
|
+
end
|
93
|
+
|
94
|
+
def compass
|
95
|
+
require 'compass'
|
96
|
+
require 'compass/exec'
|
97
|
+
Compass::Exec::SubCommandUI.new(["watch","."]).run!
|
98
|
+
end
|
99
|
+
|
100
|
+
protected
|
101
|
+
|
102
|
+
def run_on_windows!
|
103
|
+
server_thread = Thread.new do
|
104
|
+
Thread.current[:stdout] = StringIO.new
|
105
|
+
puts "Starting server..."
|
106
|
+
server_options = {
|
107
|
+
:Port => options[:port] || 4567,
|
108
|
+
:DocumentRoot => Dir.pwd
|
109
|
+
}
|
110
|
+
Rack::Handler::Thin.run Nimbu::Server::Base, server_options do |server|
|
111
|
+
[:INT, :TERM].each { |sig| trap(sig) { server.respond_to?(:stop!) ? server.stop! : server.stop } }
|
112
|
+
end
|
113
|
+
end
|
114
|
+
|
115
|
+
haml_thread = Thread.new do
|
116
|
+
# $stdout.reopen(compiler_write)
|
117
|
+
# compiler_read.close
|
118
|
+
puts "Starting watcher..."
|
119
|
+
HamlWatcher.watch
|
120
|
+
end if @with_haml
|
121
|
+
|
122
|
+
if @with_compass
|
123
|
+
puts "Starting..."
|
124
|
+
cmd = "bundle exec nimbu server:compass"
|
125
|
+
compass_pid = Process.spawn(cmd, out: $stdout, err: [:child, :out])
|
126
|
+
end
|
127
|
+
|
128
|
+
server_thread.join
|
129
|
+
haml_thread.join if @with_haml
|
130
|
+
|
131
|
+
[:INT, :TERM].each do |sig|
|
132
|
+
trap(sig) do
|
133
|
+
puts yellow("\n== Waiting for all processes to finish...")
|
134
|
+
Process.kill('INT', compass_pid) if compass_pid && running?(compass_pid)
|
105
135
|
Process.waitall
|
106
|
-
|
107
|
-
|
108
|
-
compass_pid = Process.fork do
|
109
|
-
$stdout.reopen(compass_write)
|
110
|
-
compass_read.close
|
111
|
-
puts "Starting..."
|
112
|
-
Compass::Exec::SubCommandUI.new(["watch","."]).run!
|
113
|
-
end if with_compass
|
114
|
-
|
115
|
-
watch_server_pid = Process.fork do
|
116
|
-
trap('INT') { exit }
|
117
|
-
server_write.close
|
118
|
-
server_read.each do |line|
|
119
|
-
print cyan("SERVER: ") + white(line) + ""
|
120
|
-
end
|
136
|
+
puts green("== Nimbu has ended its work " + bold("(crowd applauds!)\n"))
|
121
137
|
end
|
138
|
+
end
|
122
139
|
|
123
|
-
|
124
|
-
|
125
|
-
# compiler_write.close
|
126
|
-
# compiler_read.each do |line|
|
127
|
-
# print magenta("ASSETS: ") + white(line) + ""
|
128
|
-
# end
|
129
|
-
# end unless no_compilation
|
130
|
-
|
131
|
-
watch_haml_pid = Process.fork do
|
132
|
-
trap('INT') { exit }
|
133
|
-
haml_write.close
|
134
|
-
haml_read.each do |line|
|
135
|
-
print magenta("HAML: ") + white(line) + ""
|
136
|
-
end
|
137
|
-
end if with_haml
|
140
|
+
Process.waitall
|
141
|
+
end
|
138
142
|
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
143
|
+
def run_on_unix!
|
144
|
+
server_read, server_write = IO::pipe
|
145
|
+
haml_read, haml_write = IO::pipe
|
146
|
+
compass_read, compass_write = IO::pipe
|
147
|
+
compiler_read, compiler_write = IO::pipe
|
148
|
+
|
149
|
+
server_pid = Process.fork do
|
150
|
+
$stdout.reopen(server_write)
|
151
|
+
server_read.close
|
152
|
+
puts "Starting server..."
|
153
|
+
server_options = {
|
154
|
+
:Port => options[:port] || 4567,
|
155
|
+
:DocumentRoot => Dir.pwd
|
156
|
+
}
|
157
|
+
Rack::Handler::Thin.run Nimbu::Server::Base, server_options do |server|
|
158
|
+
[:INT, :TERM].each { |sig| trap(sig) { server.respond_to?(:stop!) ? server.stop! : server.stop } }
|
159
|
+
end
|
160
|
+
end
|
146
161
|
|
162
|
+
haml_pid = Process.fork do
|
163
|
+
$stdout.reopen(haml_write)
|
164
|
+
haml_read.close
|
165
|
+
puts "Starting..."
|
166
|
+
haml_listener = HamlWatcher.watch
|
147
167
|
[:INT, :TERM].each do |sig|
|
148
|
-
trap(sig) do
|
149
|
-
puts
|
150
|
-
|
151
|
-
Process.waitall
|
152
|
-
puts green("== Nimbu has ended its work " + bold("(crowd applauds!)\n"))
|
168
|
+
Signal.trap(sig) do
|
169
|
+
puts green("== Stopping HAML watcher\n")
|
170
|
+
Thread.new { haml_listener.stop }
|
153
171
|
end
|
154
172
|
end
|
155
|
-
|
156
173
|
Process.waitall
|
174
|
+
end if @with_haml
|
175
|
+
|
176
|
+
compass_pid = Process.fork do
|
177
|
+
$stdout.reopen(compass_write)
|
178
|
+
compass_read.close
|
179
|
+
puts "Starting..."
|
180
|
+
Compass::Exec::SubCommandUI.new(["watch","."]).run!
|
181
|
+
end if @with_compass
|
182
|
+
|
183
|
+
watch_server_pid = Process.fork do
|
184
|
+
trap('INT') { exit }
|
185
|
+
server_write.close
|
186
|
+
server_read.each do |line|
|
187
|
+
print cyan("SERVER: ") + white(line) + ""
|
188
|
+
end
|
157
189
|
end
|
158
|
-
end
|
159
190
|
|
160
|
-
|
191
|
+
watch_haml_pid = Process.fork do
|
192
|
+
trap('INT') { exit }
|
193
|
+
haml_write.close
|
194
|
+
haml_read.each do |line|
|
195
|
+
print magenta("HAML: ") + white(line) + ""
|
196
|
+
end
|
197
|
+
end if @with_haml
|
198
|
+
|
199
|
+
watch_compass_pid = Process.fork do
|
200
|
+
trap('INT') { exit }
|
201
|
+
compass_write.close
|
202
|
+
compass_read.each do |line|
|
203
|
+
print yellow("COMPASS: ") + white(line) + ""
|
204
|
+
end
|
205
|
+
end if @with_compass
|
206
|
+
|
207
|
+
[:INT, :TERM].each do |sig|
|
208
|
+
trap(sig) do
|
209
|
+
puts yellow("\n== Waiting for all processes to finish...")
|
210
|
+
Process.kill('INT', haml_pid) if haml_pid && running?(haml_pid)
|
211
|
+
Process.waitall
|
212
|
+
puts green("== Nimbu has ended its work " + bold("(crowd applauds!)\n"))
|
213
|
+
end
|
214
|
+
end
|
215
|
+
|
216
|
+
Process.waitall
|
217
|
+
end
|
161
218
|
|
162
219
|
def nimbu_header
|
163
220
|
h = ""
|
@@ -182,7 +239,6 @@ end
|
|
182
239
|
|
183
240
|
require 'rubygems'
|
184
241
|
require 'listen'
|
185
|
-
require 'haml'
|
186
242
|
|
187
243
|
class HamlWatcher
|
188
244
|
class << self
|
data/lib/nimbu/server/base.rb
CHANGED
@@ -26,15 +26,17 @@ module Nimbu
|
|
26
26
|
set :views, File.expand_path('../views', __FILE__) # set up the views dir
|
27
27
|
set :haml, { format: :html5 } # if you use haml
|
28
28
|
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
29
|
+
unless Nimbu::Helpers.running_on_windows?
|
30
|
+
use Rack::StreamingProxy::Proxy do |request|
|
31
|
+
if request.path.start_with?('/favicon.ico')
|
32
|
+
"http://#{Nimbu::Auth.site}.#{Nimbu::Auth.admin_host}/favicon.ico"
|
33
|
+
elsif Nimbu.cli_options[:webpack_url] && webpack_resource?(request.path)
|
34
|
+
"#{Nimbu.cli_options[:webpack_url]}#{request.path}"
|
35
|
+
end
|
34
36
|
end
|
35
|
-
end
|
36
37
|
|
37
|
-
|
38
|
+
Rack::StreamingProxy::Proxy.logger = Logger.new(File::NULL)
|
39
|
+
end
|
38
40
|
|
39
41
|
# Your "actions" go here…
|
40
42
|
#
|
data/lib/nimbu/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: nimbu
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.9.alpha.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Zenjoy BVBA
|
@@ -178,6 +178,20 @@ dependencies:
|
|
178
178
|
- - ">="
|
179
179
|
- !ruby/object:Gem::Version
|
180
180
|
version: '0'
|
181
|
+
- !ruby/object:Gem::Dependency
|
182
|
+
name: wdm
|
183
|
+
requirement: !ruby/object:Gem::Requirement
|
184
|
+
requirements:
|
185
|
+
- - ">="
|
186
|
+
- !ruby/object:Gem::Version
|
187
|
+
version: '0'
|
188
|
+
type: :runtime
|
189
|
+
prerelease: false
|
190
|
+
version_requirements: !ruby/object:Gem::Requirement
|
191
|
+
requirements:
|
192
|
+
- - ">="
|
193
|
+
- !ruby/object:Gem::Version
|
194
|
+
version: '0'
|
181
195
|
- !ruby/object:Gem::Dependency
|
182
196
|
name: bundler
|
183
197
|
requirement: !ruby/object:Gem::Requirement
|
@@ -306,9 +320,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
306
320
|
version: '0'
|
307
321
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
308
322
|
requirements:
|
309
|
-
- - "
|
323
|
+
- - ">"
|
310
324
|
- !ruby/object:Gem::Version
|
311
|
-
version:
|
325
|
+
version: 1.3.1
|
312
326
|
requirements: []
|
313
327
|
rubyforge_project:
|
314
328
|
rubygems_version: 2.6.7
|