snap 0.1.3 → 0.1.4
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.
- data/VERSION +1 -1
- data/bin/snap +48 -8
- metadata +2 -2
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.1.
|
1
|
+
0.1.4
|
data/bin/snap
CHANGED
@@ -3,22 +3,62 @@
|
|
3
3
|
require 'snap'
|
4
4
|
require 'optparse'
|
5
5
|
require 'launchy'
|
6
|
+
require 'socket'
|
6
7
|
|
7
8
|
options = {}
|
8
9
|
if ARGV.any?
|
9
10
|
OptionParser.new { |op|
|
10
11
|
op.banner = "Usage: snap [options]"
|
11
|
-
op.on('-e env') { |val| options[:environment] = val.to_sym }
|
12
|
-
op.on('-s server') { |val| options[:server] = val }
|
13
|
-
op.on('-p port') { |val| options[:port] = val.to_i }
|
14
|
-
op.on('-r root') { |val| options[:root] = val }
|
15
|
-
op.on('-
|
12
|
+
op.on('-e env', 'Specify the server environment on which to run') { |val| options[:environment] = val.to_sym }
|
13
|
+
op.on('-s server', 'Specify the address to bind to') { |val| options[:server] = val }
|
14
|
+
op.on('-p port', 'Specify the port on which to run') { |val| options[:port] = val.to_i }
|
15
|
+
op.on('-r root', 'Specify the root of the directory listing') { |val| options[:root] = val }
|
16
|
+
op.on('-n', 'Do not open browser') { |val| options[:do_not_open] = true }
|
17
|
+
op.on('-c', 'Cold snap') { |val| options[:cold] = true }
|
16
18
|
}.parse!(ARGV.dup)
|
17
19
|
end
|
18
20
|
|
19
|
-
if
|
20
|
-
|
21
|
+
# if a port isn't specified, find the first open one between 4567 and 49151
|
22
|
+
unless options[:port]
|
23
|
+
options[:port] = 4567
|
24
|
+
begin
|
25
|
+
TCPServer.new('0.0.0.0', options[:port]).close
|
26
|
+
rescue Errno::EADDRINUSE
|
27
|
+
raise "Cannot find an open port on [4567, 49151]" if options[:port] == 49151
|
28
|
+
options[:port] += 1
|
29
|
+
retry
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
if options[:cold]
|
34
|
+
cold_snap = <<COLDSNAP
|
35
|
+
/~~~~~~\ _______________________
|
36
|
+
/' -s- ~~~~\____/ Brr, it's a cold snap |
|
37
|
+
/'dHHb ~~~/ \_______________________/
|
38
|
+
/'dHHHA :
|
39
|
+
/' VHHHHaadHHb:
|
40
|
+
/' `VHHHHHHHHb:
|
41
|
+
/' `VHHHHHHH:
|
42
|
+
/' dHHHHHHH:
|
43
|
+
| dHHHHHHHH:
|
44
|
+
| dHHHHHHHH:
|
45
|
+
| VHHHHHHHHH:
|
46
|
+
| b HHHHHHHHV:
|
47
|
+
| Hb HHHHHHHV'
|
48
|
+
| HH dHHHHHHV'
|
49
|
+
| VHbdHHHHHHV'
|
50
|
+
| VHHHHHHHV'
|
51
|
+
\ VHHHHHHH:
|
52
|
+
\oodboooooodH
|
53
|
+
HHHHHHHHHHHHHHHHHHHHHHHHGGN94
|
54
|
+
COLDSNAP
|
55
|
+
puts cold_snap
|
21
56
|
end
|
22
57
|
|
23
58
|
# run!
|
24
|
-
|
59
|
+
if fork
|
60
|
+
Snap::Server.run!(options)
|
61
|
+
else
|
62
|
+
sleep 0.5 # let the server start up
|
63
|
+
Launchy.open("http://127.0.0.1:#{options[:port]}") unless options[:do_not_open]
|
64
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: snap
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Nick Stielau
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2010-01-
|
12
|
+
date: 2010-01-07 00:00:00 -08:00
|
13
13
|
default_executable: snap
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|