mongrel2 0.9.2 → 0.10.0
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.tar.gz.sig +0 -0
- data/ChangeLog +169 -18
- data/History.rdoc +21 -0
- data/Manifest.txt +2 -0
- data/README.rdoc +0 -1
- data/Rakefile +8 -5
- data/bin/m2sh.rb +105 -38
- data/data/mongrel2/bootstrap.html +1 -1
- data/data/mongrel2/config.sql +7 -7
- data/examples/config.rb +10 -5
- data/lib/mongrel2.rb +2 -2
- data/lib/mongrel2/config.rb +26 -1
- data/lib/mongrel2/config/dsl.rb +22 -22
- data/lib/mongrel2/config/filter.rb +24 -0
- data/lib/mongrel2/config/server.rb +47 -1
- data/lib/mongrel2/constants.rb +3 -0
- data/lib/mongrel2/httpresponse.rb +8 -8
- data/lib/mongrel2/response.rb +2 -1
- data/lib/mongrel2/table.rb +4 -0
- data/spec/mongrel2/config/dsl_spec.rb +27 -0
- data/spec/mongrel2/config/filter_spec.rb +30 -0
- data/spec/mongrel2/config/route_spec.rb +1 -1
- data/spec/mongrel2/config/server_spec.rb +25 -0
- data/spec/mongrel2/config_spec.rb +9 -0
- metadata +63 -28
- metadata.gz.sig +0 -0
data.tar.gz.sig
CHANGED
Binary file
|
data/ChangeLog
CHANGED
@@ -1,8 +1,159 @@
|
|
1
|
+
2012-02-06 Michael Granger <ged@FaerieMUD.org>
|
2
|
+
|
3
|
+
* .hgtags:
|
4
|
+
Added tag v0.10.0 for changeset 1e9885cbcafd
|
5
|
+
[d3f06f6344ad] [tip]
|
6
|
+
|
7
|
+
* .hgsigs:
|
8
|
+
Added signature for changeset 948877fd6c9d
|
9
|
+
[1e9885cbcafd] [v0.10.0]
|
10
|
+
|
11
|
+
* Manifest.txt:
|
12
|
+
Updating the manifest
|
13
|
+
[948877fd6c9d]
|
14
|
+
|
15
|
+
* .hgsigs:
|
16
|
+
Added signature for changeset 2fcffa9c789b
|
17
|
+
[457375acdf50]
|
18
|
+
|
19
|
+
* History.rdoc:
|
20
|
+
Updated the date in the History file
|
21
|
+
[2fcffa9c789b]
|
22
|
+
|
23
|
+
2012-01-25 Michael Granger <ged@FaerieMUD.org>
|
24
|
+
|
25
|
+
* .tm_properties, History.rdoc, data/mongrel2/config.sql,
|
26
|
+
examples/config.rb, lib/mongrel2/config.rb,
|
27
|
+
lib/mongrel2/config/dsl.rb, lib/mongrel2/config/filter.rb,
|
28
|
+
lib/mongrel2/config/server.rb, spec/mongrel2/config/dsl_spec.rb,
|
29
|
+
spec/mongrel2/config/filter_spec.rb,
|
30
|
+
spec/mongrel2/config/route_spec.rb:
|
31
|
+
Updating config database schema/classes for Mongrel 1.8.
|
32
|
+
[6d2608b23873] [github/master]
|
33
|
+
|
34
|
+
* examples/config.rb:
|
35
|
+
Move the example server back to port 8113
|
36
|
+
[05d301010931]
|
37
|
+
|
38
|
+
* History.rdoc, lib/mongrel2.rb:
|
39
|
+
Bumped minor version, updated history.
|
40
|
+
[b3ed6f931afa]
|
41
|
+
|
42
|
+
* .rvm.gems, .rvmrc, Rakefile, bin/m2sh.rb, lib/mongrel2/config.rb,
|
43
|
+
lib/mongrel2/config/server.rb, lib/mongrel2/constants.rb,
|
44
|
+
spec/mongrel2/config/server_spec.rb, spec/mongrel2/config_spec.rb:
|
45
|
+
Adding the rest of the m2sh commands to the ruby analog
|
46
|
+
[23ec891231d3]
|
47
|
+
|
48
|
+
2012-01-11 Michael Granger <ged@FaerieMUD.org>
|
49
|
+
|
50
|
+
* .pryrc:
|
51
|
+
Adding a .pryrc
|
52
|
+
[08d0aad8c902]
|
53
|
+
|
54
|
+
2012-01-09 Michael Granger <ged@FaerieMUD.org>
|
55
|
+
|
56
|
+
* History.rdoc, lib/mongrel2.rb:
|
57
|
+
Bumped patch version; updated history file
|
58
|
+
[e05d8ed6d64b]
|
59
|
+
|
60
|
+
* bin/m2sh.rb:
|
61
|
+
Adding a "sudo" option to m2sh.rb to start the server as root
|
62
|
+
[a03146c94124]
|
63
|
+
|
64
|
+
2012-01-05 Michael Granger <ged@FaerieMUD.org>
|
65
|
+
|
66
|
+
* .rvm.gems, Rakefile:
|
67
|
+
Add rvm gemset, update dependencies.
|
68
|
+
[492faafc9c10]
|
69
|
+
|
70
|
+
2011-12-29 Michael Granger <ged@FaerieMUD.org>
|
71
|
+
|
72
|
+
* examples/config.rb:
|
73
|
+
Modified values to be a bit more like the Mongrel2 example
|
74
|
+
[12866b0f1910]
|
75
|
+
|
76
|
+
* .tm_properties:
|
77
|
+
Adding my TextMate2 properties file
|
78
|
+
[7ad85509639e]
|
79
|
+
|
80
|
+
2011-12-07 Michael Granger <ged@FaerieMUD.org>
|
81
|
+
|
82
|
+
* .rvmrc:
|
83
|
+
Use a gemset in the .rvmrc.
|
84
|
+
[0faddd8ecca1]
|
85
|
+
|
86
|
+
2011-11-21 Michael Granger <ged@FaerieMUD.org>
|
87
|
+
|
88
|
+
* lib/mongrel2/config.rb:
|
89
|
+
Enable the json_serializer plugin for the config ORM classes
|
90
|
+
[95702dafbe39]
|
91
|
+
|
92
|
+
2011-10-17 Michael Granger <ged@FaerieMUD.org>
|
93
|
+
|
94
|
+
* README.rdoc, lib/mongrel2/httpresponse.rb, lib/mongrel2/response.rb,
|
95
|
+
lib/mongrel2/table.rb:
|
96
|
+
Backing out the change to HTTPResponse to use the @body ivar:
|
97
|
+
changed the negotiation plugin to use the #to_s method instead.
|
98
|
+
[989199eb3731]
|
99
|
+
|
1
100
|
2011-10-12 Michael Granger <ged@FaerieMUD.org>
|
2
101
|
|
102
|
+
* .hgtags:
|
103
|
+
Added tag v0.9.2 for changeset 4b86af172b1c
|
104
|
+
[cb02d92719e6]
|
105
|
+
|
106
|
+
* .hgsigs:
|
107
|
+
Added signature for changeset c0a5ad8a50f7
|
108
|
+
[4b86af172b1c] [v0.9.2]
|
109
|
+
|
110
|
+
* History.rdoc, lib/mongrel2.rb:
|
111
|
+
Bump the patch version, update history.
|
112
|
+
[c0a5ad8a50f7]
|
113
|
+
|
114
|
+
* lib/mongrel2/httpresponse.rb:
|
115
|
+
Bugfix: dup instead of clone to get rid of frozen status.
|
116
|
+
[d721f3550aa6]
|
117
|
+
|
118
|
+
* .hgtags:
|
119
|
+
Added tag v0.9.1 for changeset c4bcdadb0ea8
|
120
|
+
[a0fde2550745]
|
121
|
+
|
122
|
+
* .hgsigs:
|
123
|
+
Added signature for changeset f8aa9d64dbd4
|
124
|
+
[c4bcdadb0ea8] [v0.9.1]
|
125
|
+
|
126
|
+
* History.rdoc, lib/mongrel2.rb:
|
127
|
+
Bump the patch version, update history.
|
128
|
+
[f8aa9d64dbd4]
|
129
|
+
|
130
|
+
* lib/mongrel2/httpresponse.rb:
|
131
|
+
Bugfix: don't use the default content type string constant directly.
|
132
|
+
[d82673c8c1ae]
|
133
|
+
|
134
|
+
* .hgtags:
|
135
|
+
Added tag v0.9.0 for changeset 990255c9d9b2
|
136
|
+
[ef6f05d42f79]
|
137
|
+
|
138
|
+
* .hgsigs:
|
139
|
+
Added signature for changeset 180ebbaeb4a0
|
140
|
+
[990255c9d9b2] [v0.9.0]
|
141
|
+
|
142
|
+
* History.rdoc, lib/mongrel2.rb:
|
143
|
+
Bumped minor version, updated history.
|
144
|
+
[180ebbaeb4a0]
|
145
|
+
|
146
|
+
* lib/mongrel2/table.rb, spec/mongrel2/table_spec.rb:
|
147
|
+
Fix Mongrel2::Table not duping/cloning its internal values.
|
148
|
+
[34cb2a0bfee6]
|
149
|
+
|
150
|
+
* lib/mongrel2/httpresponse.rb, spec/mongrel2/httpresponse_spec.rb:
|
151
|
+
Set a default Content-type header in HTTP responses
|
152
|
+
[a9914061817c]
|
153
|
+
|
3
154
|
* .hgtags:
|
4
155
|
Added tag v0.8.0 for changeset 27d84902263b
|
5
|
-
[51ad37ddc1cd]
|
156
|
+
[51ad37ddc1cd]
|
6
157
|
|
7
158
|
* .hgsigs:
|
8
159
|
Added signature for changeset 986182bd469e
|
@@ -109,7 +260,7 @@
|
|
109
260
|
|
110
261
|
* .hgtags:
|
111
262
|
Added tag v0.4.0 for changeset 25f2272fc9f8
|
112
|
-
[0b4e011b72b4]
|
263
|
+
[0b4e011b72b4]
|
113
264
|
|
114
265
|
* .hgsigs:
|
115
266
|
Added signature for changeset 3fb74e2ce308
|
@@ -357,6 +508,10 @@
|
|
357
508
|
* Automated merge with ssh://deveiate.org/Ruby-Mongrel2
|
358
509
|
[2da76acfb8db]
|
359
510
|
|
511
|
+
* History.rdoc:
|
512
|
+
Updating History
|
513
|
+
[3b013d4918c6]
|
514
|
+
|
360
515
|
* Rakefile:
|
361
516
|
Automated merge with ssh://deveiate.org/Ruby-Mongrel2
|
362
517
|
[e3908fd8e744]
|
@@ -365,10 +520,6 @@
|
|
365
520
|
Remove ChangeLog task, since hoe-deveiate already does it
|
366
521
|
[5f4982a32949]
|
367
522
|
|
368
|
-
* History.rdoc:
|
369
|
-
Updating History
|
370
|
-
[3b013d4918c6]
|
371
|
-
|
372
523
|
* .hgtags:
|
373
524
|
Added tag v0.1.1 for changeset 42da048fe158
|
374
525
|
[2489be2693d5]
|
@@ -538,18 +689,6 @@
|
|
538
689
|
* Merged with 6ea60b67e106
|
539
690
|
[6d5341f30cc4]
|
540
691
|
|
541
|
-
* Manifest.txt:
|
542
|
-
Updating the manifest for the first release
|
543
|
-
[916a79570cdc]
|
544
|
-
|
545
|
-
* examples/helloworld-handler.rb, lib/mongrel2/handler.rb:
|
546
|
-
More Handler API docs.
|
547
|
-
[47427db9b4fb]
|
548
|
-
|
549
|
-
* lib/mongrel2/handler.rb:
|
550
|
-
Adding some Mongrel2::Handler API docs.
|
551
|
-
[da95bfdf83da]
|
552
|
-
|
553
692
|
* lib/mongrel2/config/host.rb:
|
554
693
|
Adding a many_to_one association for the server belonging to a
|
555
694
|
Mongrel2::Config::Host
|
@@ -569,6 +708,18 @@
|
|
569
708
|
Adding a proftools dump of the requestdumper app
|
570
709
|
[00cbc1b89a61]
|
571
710
|
|
711
|
+
* Manifest.txt:
|
712
|
+
Updating the manifest for the first release
|
713
|
+
[916a79570cdc]
|
714
|
+
|
715
|
+
* examples/helloworld-handler.rb, lib/mongrel2/handler.rb:
|
716
|
+
More Handler API docs.
|
717
|
+
[47427db9b4fb]
|
718
|
+
|
719
|
+
* lib/mongrel2/handler.rb:
|
720
|
+
Adding some Mongrel2::Handler API docs.
|
721
|
+
[da95bfdf83da]
|
722
|
+
|
572
723
|
2011-09-08 Michael Granger <ged@FaerieMUD.org>
|
573
724
|
|
574
725
|
* README.rdoc, lib/mongrel2.rb, lib/mongrel2/config.rb,
|
data/History.rdoc
CHANGED
@@ -1,3 +1,24 @@
|
|
1
|
+
== v0.10.0 [2012-02-06] Michael Granger <ged@FaerieMUD.org>
|
2
|
+
|
3
|
+
This release includes updates for Mongrel 1.8 and finishes up the m2sh.rb tool.
|
4
|
+
|
5
|
+
- New config class: Mongrel2::Config::Filter
|
6
|
+
- New DSL directive inside a 'server' section: 'filter'
|
7
|
+
- New methods:
|
8
|
+
* Mongrel2::Config.settings
|
9
|
+
* Mongrel2::Server
|
10
|
+
- #control_socket_uri
|
11
|
+
- #control_socket
|
12
|
+
- #pid_file_path
|
13
|
+
- Added a new Mongrel2::Constants::DEFAULT_CONTROL_SOCKET constant
|
14
|
+
- Finished implementation of the rest of the m2sh commands in the ruby
|
15
|
+
analog
|
16
|
+
- Adding a "sudo" option to m2sh.rb to start the server as root
|
17
|
+
- Enable the json_serializer plugin for the config ORM classes
|
18
|
+
- Backing out the change to HTTPResponse to use the @body ivar: changed
|
19
|
+
the negotiation
|
20
|
+
|
21
|
+
|
1
22
|
== v0.9.2 [2011-10-12] Michael Granger <ged@FaerieMUD.org>
|
2
23
|
|
3
24
|
Bugfix: dup instead of clone to get rid of frozen status.
|
data/Manifest.txt
CHANGED
@@ -20,6 +20,7 @@ lib/mongrel2.rb
|
|
20
20
|
lib/mongrel2/config.rb
|
21
21
|
lib/mongrel2/config/directory.rb
|
22
22
|
lib/mongrel2/config/dsl.rb
|
23
|
+
lib/mongrel2/config/filter.rb
|
23
24
|
lib/mongrel2/config/handler.rb
|
24
25
|
lib/mongrel2/config/host.rb
|
25
26
|
lib/mongrel2/config/log.rb
|
@@ -49,6 +50,7 @@ spec/lib/helpers.rb
|
|
49
50
|
spec/lib/matchers.rb
|
50
51
|
spec/mongrel2/config/directory_spec.rb
|
51
52
|
spec/mongrel2/config/dsl_spec.rb
|
53
|
+
spec/mongrel2/config/filter_spec.rb
|
52
54
|
spec/mongrel2/config/handler_spec.rb
|
53
55
|
spec/mongrel2/config/host_spec.rb
|
54
56
|
spec/mongrel2/config/log_spec.rb
|
data/README.rdoc
CHANGED
data/Rakefile
CHANGED
@@ -26,14 +26,16 @@ hoespec = Hoe.spec 'mongrel2' do
|
|
26
26
|
self.developer 'Michael Granger', 'ged@FaerieMUD.org'
|
27
27
|
|
28
28
|
self.dependency 'nokogiri', '~> 1.5'
|
29
|
-
self.dependency 'sequel', '~> 3.
|
29
|
+
self.dependency 'sequel', '~> 3.31'
|
30
30
|
self.dependency 'amalgalite', '~> 1.1'
|
31
31
|
self.dependency 'tnetstring', '~> 0.3'
|
32
|
-
self.dependency 'yajl-ruby', '~> 0
|
32
|
+
self.dependency 'yajl-ruby', '~> 1.0'
|
33
|
+
self.dependency 'trollop', '~> 1.16'
|
34
|
+
self.dependency 'sysexits', '~> 1.0'
|
33
35
|
self.dependency 'zmq', '~> 2.1.4'
|
34
36
|
|
35
37
|
self.dependency 'configurability', '~> 1.0', :developer
|
36
|
-
self.dependency 'rspec', '~> 2.
|
38
|
+
self.dependency 'rspec', '~> 2.8', :developer
|
37
39
|
|
38
40
|
self.spec_extras[:licenses] = ["BSD"]
|
39
41
|
self.require_ruby_version( '>= 1.9.2' )
|
@@ -47,12 +49,13 @@ end
|
|
47
49
|
ENV['VERSION'] ||= hoespec.spec.version.to_s
|
48
50
|
|
49
51
|
# Ensure the specs pass before checking in
|
50
|
-
task 'hg:precheckin' => [
|
51
|
-
|
52
|
+
task 'hg:precheckin' => [:check_manifest, :check_history, :spec]
|
52
53
|
|
53
54
|
# Rebuild the ChangeLog immediately before release
|
54
55
|
task :prerelease => [:check_manifest, :check_history, 'ChangeLog']
|
55
56
|
|
57
|
+
task :check_manifest => 'ChangeLog'
|
58
|
+
|
56
59
|
|
57
60
|
desc "Build a coverage report"
|
58
61
|
task :coverage do
|
data/bin/m2sh.rb
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
|
3
|
-
require '
|
3
|
+
require 'uri'
|
4
|
+
require 'pathname'
|
4
5
|
require 'shellwords'
|
5
6
|
require 'fileutils'
|
6
7
|
require 'tnetstring'
|
@@ -29,18 +30,20 @@ require 'mongrel2/config'
|
|
29
30
|
# [√] commit Adds a message to the log.
|
30
31
|
# [√] log Prints the commit log.
|
31
32
|
# [√] start Starts a server.
|
32
|
-
# [
|
33
|
-
# [
|
34
|
-
# [
|
35
|
-
# [
|
33
|
+
# [√] stop Stops a server.
|
34
|
+
# [√] reload Reloads a server.
|
35
|
+
# [√] running Tells you what's running.
|
36
|
+
# [-] control Connects to the control port.
|
36
37
|
# [√] version Prints the Mongrel2 and m2sh version.
|
37
38
|
# [√] help Get help, lists commands.
|
38
39
|
# [-] uuid Prints out a randomly generated UUID.
|
39
40
|
#
|
40
41
|
# I just use 'uuidgen' to generate uuids (which is all m2sh does, as
|
41
|
-
# well), so I don't plan to implement that.
|
42
|
-
#
|
43
|
-
#
|
42
|
+
# well), so I don't plan to implement that. The 'control' command is more-easily
|
43
|
+
# accessed via pry+Mongrel2::Control, so I'm not going to implement that, either.
|
44
|
+
# Everything else should be analagous to (or better than) the m2sh that comes with
|
45
|
+
# mongrel2.
|
46
|
+
#
|
44
47
|
class Mongrel2::M2SHCommand
|
45
48
|
extend ::Sysexits
|
46
49
|
include Sysexits,
|
@@ -49,11 +52,11 @@ class Mongrel2::M2SHCommand
|
|
49
52
|
|
50
53
|
# Make a HighLine color scheme
|
51
54
|
COLOR_SCHEME = HighLine::ColorScheme.new do |scheme|
|
52
|
-
scheme[:header]
|
55
|
+
scheme[:header] = [ :bold, :yellow ]
|
53
56
|
scheme[:subheader] = [ :bold, :white ]
|
54
|
-
scheme[:key]
|
55
|
-
scheme[:value]
|
56
|
-
scheme[:error]
|
57
|
+
scheme[:key] = [ :white ]
|
58
|
+
scheme[:value] = [ :bold, :white ]
|
59
|
+
scheme[:error] = [ :red ]
|
57
60
|
scheme[:warning] = [ :yellow ]
|
58
61
|
scheme[:message] = [ :reset ]
|
59
62
|
end
|
@@ -101,7 +104,7 @@ class Mongrel2::M2SHCommand
|
|
101
104
|
def self::prompt
|
102
105
|
unless @prompt
|
103
106
|
@prompt = HighLine.new
|
104
|
-
@prompt.wrap_at = @prompt.output_cols -
|
107
|
+
# @prompt.wrap_at = @prompt.output_cols - 3
|
105
108
|
end
|
106
109
|
|
107
110
|
return @prompt
|
@@ -180,6 +183,7 @@ class Mongrel2::M2SHCommand
|
|
180
183
|
text 'Global Options'
|
181
184
|
opt :config, "Specify the configfile to use.",
|
182
185
|
:default => DEFAULT_CONFIG_URI
|
186
|
+
opt :sudo, "Use 'sudo' to run the mongrel2 server."
|
183
187
|
text ''
|
184
188
|
|
185
189
|
text 'Other Options:'
|
@@ -491,33 +495,14 @@ class Mongrel2::M2SHCommand
|
|
491
495
|
|
492
496
|
### The 'start' command
|
493
497
|
def start_command( *args )
|
494
|
-
|
495
|
-
|
496
|
-
|
497
|
-
raise "No servers are configured." if servers.empty?
|
498
|
-
server = nil
|
499
|
-
|
500
|
-
# If there's only one configured server, just make sure if a serverspec was given
|
501
|
-
# that it would have matched.
|
502
|
-
if servers.length == 1
|
503
|
-
server = servers.first if !serverspec ||
|
504
|
-
servers.first.values_at( :uuid, :default_host, :name ).include?( serverspec )
|
505
|
-
|
506
|
-
# Otherwise, require an argument and search for the desired server if there is one
|
507
|
-
else
|
508
|
-
raise "You must specify a server uuid/hostname/name when more " +
|
509
|
-
"than one server is configured." if servers.length > 1 && !serverspec
|
510
|
-
|
511
|
-
server = servers.find {|s| s.uuid == serverspec } ||
|
512
|
-
servers.find {|s| s.default_host == serverspec } ||
|
513
|
-
servers.find {|s| s.name == serverspec }
|
514
|
-
end
|
515
|
-
|
516
|
-
raise "No servers match '#{serverspec}'" unless server
|
498
|
+
server = find_server( args.shift )
|
499
|
+
mongrel2 = ENV['MONGREL2'] || 'mongrel2'
|
517
500
|
|
518
501
|
# Run the command, waiting for it to finish if invoked from shell mode, or
|
519
502
|
# execing it if not.
|
520
|
-
cmd = [
|
503
|
+
cmd = [ mongrel2, Mongrel2::Config.pathname.to_s, server.uuid ]
|
504
|
+
cmd.unshift( 'sudo' ) if self.options.sudo
|
505
|
+
|
521
506
|
if @shellmode
|
522
507
|
system( *cmd )
|
523
508
|
else
|
@@ -529,12 +514,65 @@ class Mongrel2::M2SHCommand
|
|
529
514
|
[SERVER]
|
530
515
|
If not specified, SERVER is assumed to be the only server entry in the
|
531
516
|
current config. If there are more than one, you must specify a SERVER.
|
532
|
-
|
517
|
+
|
533
518
|
The SERVER can be a uuid, hostname, or server name, and are searched for
|
534
519
|
in that order.
|
535
520
|
END_USAGE
|
536
521
|
|
537
522
|
|
523
|
+
### The 'reload' command
|
524
|
+
def reload_command( *args )
|
525
|
+
server = find_server( args.shift )
|
526
|
+
control = server.control_socket
|
527
|
+
|
528
|
+
header "Reloading '%s'" % [ server.name ]
|
529
|
+
control.reload
|
530
|
+
message "done."
|
531
|
+
end
|
532
|
+
help :reload, "Reload the specified server's configuration"
|
533
|
+
usage :reload, "[server]"
|
534
|
+
|
535
|
+
|
536
|
+
### The 'stop' command
|
537
|
+
def stop_command( *args )
|
538
|
+
server = find_server( args.shift )
|
539
|
+
control = server.control_socket
|
540
|
+
|
541
|
+
header "Stopping '%s' gracefully." % [ server.name ]
|
542
|
+
control.stop
|
543
|
+
message "done."
|
544
|
+
end
|
545
|
+
help :stop, "Stop the specified server gracefully"
|
546
|
+
usage :stop, "[server]"
|
547
|
+
|
548
|
+
|
549
|
+
### The 'running' command
|
550
|
+
def running_command( *args )
|
551
|
+
server = find_server( args.shift )
|
552
|
+
pidfile = server.pid_file_path
|
553
|
+
|
554
|
+
header "Checking the status of the '%s' server." % [ server.name ]
|
555
|
+
unless pidfile.exist?
|
556
|
+
message "Not running: PID file (%s) doesn't exist." % [ pidfile ]
|
557
|
+
exit :noinput
|
558
|
+
end
|
559
|
+
|
560
|
+
pid = Integer( pidfile.read )
|
561
|
+
begin
|
562
|
+
Process.kill( 0, pid )
|
563
|
+
rescue Errno::ESRCH
|
564
|
+
message " mongrel2 at PID %d is NOT running" % [ pid ]
|
565
|
+
exit :unavailable
|
566
|
+
rescue => err
|
567
|
+
error " %p while signalling PID %d: %s" % [ err.class, pid, err.message ]
|
568
|
+
end
|
569
|
+
|
570
|
+
message " mongrel2 at PID %d is running." % [ pid ]
|
571
|
+
end
|
572
|
+
help :running, "Show the status of a server."
|
573
|
+
usage :running, "[server]"
|
574
|
+
|
575
|
+
|
538
576
|
### The 'version' command
|
539
577
|
def version_command( *args )
|
540
578
|
message( "<%= color 'Version:', :header %> " + Mongrel2.version_string(true) )
|
@@ -594,6 +632,35 @@ class Mongrel2::M2SHCommand
|
|
594
632
|
end
|
595
633
|
|
596
634
|
|
635
|
+
### Search the current mongrel2 config for a server matching +serverspec+ and
|
636
|
+
### return it as a Mongrel2::Config::Server object.
|
637
|
+
def find_server( serverspec=nil )
|
638
|
+
server = nil
|
639
|
+
servers = Mongrel2::Config.servers
|
640
|
+
|
641
|
+
raise "No servers are configured." if servers.empty?
|
642
|
+
|
643
|
+
# If there's only one configured server, just make sure if a serverspec was given
|
644
|
+
# that it would have matched.
|
645
|
+
if servers.length == 1
|
646
|
+
server = servers.first if !serverspec ||
|
647
|
+
servers.first.values_at( :uuid, :default_host, :name ).include?( serverspec )
|
648
|
+
|
649
|
+
# Otherwise, require an argument and search for the desired server if there is one
|
650
|
+
else
|
651
|
+
raise "You must specify a server uuid/hostname/name when more " +
|
652
|
+
"than one server is configured." if servers.length > 1 && !serverspec
|
653
|
+
|
654
|
+
server = servers.find {|s| s.uuid == serverspec } ||
|
655
|
+
servers.find {|s| s.default_host == serverspec } ||
|
656
|
+
servers.find {|s| s.name == serverspec }
|
657
|
+
end
|
658
|
+
|
659
|
+
raise "No servers match '#{serverspec}'" unless server
|
660
|
+
|
661
|
+
return server
|
662
|
+
end
|
663
|
+
|
597
664
|
end # class Mongrel2::M2SHCommand
|
598
665
|
|
599
666
|
|