flapjack 0.6.57 → 0.6.58
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/bin/flapjack +54 -21
- data/lib/flapjack/gateways/email.rb +1 -1
- data/lib/flapjack/version.rb +1 -1
- metadata +3 -3
data/bin/flapjack
CHANGED
@@ -15,6 +15,8 @@ options = OpenStruct.new
|
|
15
15
|
options.config = File.join('etc', 'flapjack_config.yaml')
|
16
16
|
options.daemonize = nil
|
17
17
|
|
18
|
+
@exe = File.basename(__FILE__)
|
19
|
+
|
18
20
|
OptionParser.new do |opts|
|
19
21
|
opts.banner = "Usage: flapjack COMMAND [OPTIONS]"
|
20
22
|
|
@@ -24,6 +26,7 @@ OptionParser.new do |opts|
|
|
24
26
|
opts.separator " stop #{" " * 26} stop flapjack"
|
25
27
|
opts.separator " restart #{" " * 23} (re)start flapjack"
|
26
28
|
opts.separator " reload #{" " * 24} reload flapjack configuration"
|
29
|
+
opts.separator " status #{" " * 24} see if flapjack is running"
|
27
30
|
opts.separator ""
|
28
31
|
opts.separator "Options"
|
29
32
|
|
@@ -68,21 +71,52 @@ daemonize = options.daemonize.nil? ?
|
|
68
71
|
!!config_env['daemonize'] :
|
69
72
|
options.daemonize
|
70
73
|
|
71
|
-
require 'flapjack/coordinator'
|
72
74
|
|
73
75
|
flapjack_coord = Proc.new {
|
76
|
+
require 'flapjack/coordinator'
|
74
77
|
coordinator = Flapjack::Coordinator.new(config)
|
75
78
|
coordinator.start(:signals => true)
|
76
79
|
}
|
77
80
|
|
81
|
+
@runner_opts = { :pid_path => pidfile, :log_path => logfile }
|
82
|
+
def get_runner
|
83
|
+
Dante::Runner.new(@exe, @runner_opts)
|
84
|
+
end
|
85
|
+
|
86
|
+
def process_exists(pid)
|
87
|
+
return unless pid
|
88
|
+
begin
|
89
|
+
Process.kill(0, pid)
|
90
|
+
return true
|
91
|
+
rescue Errno::ESRCH
|
92
|
+
return false
|
93
|
+
end
|
94
|
+
end
|
95
|
+
|
96
|
+
# wait until the specified pid no longer exists, or until a timeout is reached
|
97
|
+
def wait_pid_gone(pid, timeout = 30)
|
98
|
+
print "waiting for a max of #{timeout} seconds for process #{pid} to exit" if process_exists(pid)
|
99
|
+
started_at = Time.now.to_i
|
100
|
+
while process_exists(pid)
|
101
|
+
break unless (Time.now.to_i - started_at < timeout)
|
102
|
+
print '.'
|
103
|
+
sleep 1
|
104
|
+
end
|
105
|
+
puts ''
|
106
|
+
return !process_exists(pid)
|
107
|
+
end
|
108
|
+
|
109
|
+
begin
|
110
|
+
pid = IO.read(pidfile).chomp.to_i
|
111
|
+
rescue StandardError
|
112
|
+
pid = nil
|
113
|
+
end
|
114
|
+
|
78
115
|
case ARGV[0]
|
79
116
|
when "start"
|
80
|
-
runner =
|
81
|
-
:log_path => logfile)
|
82
|
-
|
117
|
+
runner = get_runner
|
83
118
|
if runner.daemon_running?
|
84
119
|
puts "Flapjack is already running."
|
85
|
-
exit 1
|
86
120
|
else
|
87
121
|
print "Flapjack starting..."
|
88
122
|
runner.execute(:daemonize => daemonize) {
|
@@ -92,37 +126,37 @@ when "start"
|
|
92
126
|
end
|
93
127
|
|
94
128
|
when "stop"
|
95
|
-
runner =
|
96
|
-
:log_path => logfile)
|
97
|
-
|
129
|
+
runner = get_runner
|
98
130
|
if runner.daemon_running?
|
99
131
|
print "Flapjack stopping..."
|
100
132
|
runner.execute(:kill => true)
|
101
133
|
puts " done."
|
102
134
|
else
|
103
135
|
puts "Flapjack is not running."
|
104
|
-
exit 1
|
105
136
|
end
|
137
|
+
exit 1 unless wait_pid_gone(pid)
|
106
138
|
|
107
139
|
when "restart"
|
108
|
-
runner =
|
109
|
-
|
140
|
+
runner = get_runner
|
141
|
+
if runner.daemon_running?
|
142
|
+
print "Flapjack stopping..."
|
143
|
+
runner.execute(:kill => true)
|
144
|
+
puts " done."
|
145
|
+
end
|
146
|
+
exit 1 unless wait_pid_gone(pid)
|
110
147
|
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
# be default behaviour when starting jabber gateway
|
148
|
+
runner = get_runner
|
149
|
+
print "Flapjack starting..."
|
150
|
+
runner.execute(:daemonize => daemonize) {
|
115
151
|
flapjack_coord.call
|
116
152
|
}
|
117
153
|
puts " done."
|
118
154
|
|
119
155
|
when "reload"
|
120
|
-
runner =
|
121
|
-
|
156
|
+
runner = get_runner
|
122
157
|
if runner.daemon_running?
|
123
158
|
print "Reloading Flapjack configuration..."
|
124
159
|
begin
|
125
|
-
pid = IO.read(pidfile).chomp.to_i
|
126
160
|
Process.kill('HUP', pid)
|
127
161
|
puts " sent HUP to pid #{pid}."
|
128
162
|
rescue => e
|
@@ -134,11 +168,10 @@ when "reload"
|
|
134
168
|
end
|
135
169
|
|
136
170
|
when "status"
|
137
|
-
runner =
|
138
|
-
|
171
|
+
runner = get_runner
|
139
172
|
uptime = (runner.daemon_running?) ? Time.now - File.stat(pidfile).ctime : 0
|
140
173
|
if runner.daemon_running?
|
141
|
-
puts "Flapjack is running: #{uptime}"
|
174
|
+
puts "Flapjack is running: pid #{pid}, uptime #{uptime}"
|
142
175
|
else
|
143
176
|
puts "Flapjack is not running"
|
144
177
|
exit 3
|
data/lib/flapjack/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: flapjack
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.6.
|
4
|
+
version: 0.6.58
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -465,7 +465,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
465
465
|
version: '0'
|
466
466
|
segments:
|
467
467
|
- 0
|
468
|
-
hash:
|
468
|
+
hash: -3258565481317401030
|
469
469
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
470
470
|
none: false
|
471
471
|
requirements:
|
@@ -474,7 +474,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
474
474
|
version: '0'
|
475
475
|
segments:
|
476
476
|
- 0
|
477
|
-
hash:
|
477
|
+
hash: -3258565481317401030
|
478
478
|
requirements: []
|
479
479
|
rubyforge_project:
|
480
480
|
rubygems_version: 1.8.23
|