runit-man 1.4.5 → 1.4.6
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/i18n/en.yml +3 -2
- data/i18n/ru.yml +3 -2
- data/lib/runit-man/app.rb +14 -9
- data/lib/runit-man/helpers.rb +10 -0
- data/sv/run +3 -0
- data/views/_service_info.erb +1 -1
- data/views/log.erb +4 -1
- metadata +62 -46
data/i18n/en.yml
CHANGED
@@ -29,7 +29,8 @@ runit:
|
|
29
29
|
switch_down: Deactivate
|
30
30
|
switch_up: Activate
|
31
31
|
log:
|
32
|
-
title: "Tail
|
33
|
-
header: "Tail
|
32
|
+
title: "Tail %3 lines of service %1 log - %2"
|
33
|
+
header: "Tail %3 lines of service <strong>%1</strong> log: %2 (<code>%4</code>)"
|
34
|
+
counts: "Show %1 lines of log"
|
34
35
|
updated: "Page updated at %1"
|
35
36
|
reload: Reload
|
data/i18n/ru.yml
CHANGED
@@ -31,7 +31,8 @@ runit:
|
|
31
31
|
switch_down: Выключить
|
32
32
|
switch_up: Включить
|
33
33
|
log:
|
34
|
-
title: "Последние
|
35
|
-
header: "Последние
|
34
|
+
title: "Последние %3 строк лога сервиса %1 - %2"
|
35
|
+
header: "Последние %3 строк лога сервиса <strong>%1</strong>: %2 (<code>%4</code>)"
|
36
|
+
counts: "Показать %1 строк лога"
|
36
37
|
updated: "Страница обновлена %1"
|
37
38
|
reload: Обновить страницу
|
data/lib/runit-man/app.rb
CHANGED
@@ -5,10 +5,9 @@ require 'sinatra/r18n'
|
|
5
5
|
require 'runit-man/erb-to-erubis'
|
6
6
|
require 'runit-man/helpers'
|
7
7
|
|
8
|
-
|
9
|
-
|
10
|
-
GEM_FOLDER
|
11
|
-
|
8
|
+
MIN_TAIL = 100
|
9
|
+
MAX_TAIL = 10000
|
10
|
+
GEM_FOLDER = File.expand_path(File.join('..', '..'), File.dirname(__FILE__)).freeze
|
12
11
|
CONTENT_TYPES = {
|
13
12
|
:html => 'text/html',
|
14
13
|
:css => 'text/css',
|
@@ -16,6 +15,7 @@ CONTENT_TYPES = {
|
|
16
15
|
:json => 'application/json'
|
17
16
|
}.freeze
|
18
17
|
|
18
|
+
R18n::Filters.on :variables
|
19
19
|
|
20
20
|
class RunitMan < Sinatra::Base
|
21
21
|
set :environment, :production
|
@@ -55,14 +55,19 @@ class RunitMan < Sinatra::Base
|
|
55
55
|
service_infos.to_json
|
56
56
|
end
|
57
57
|
|
58
|
-
get
|
59
|
-
|
58
|
+
get %r[/([^/]+)/log(?:/(\d+))?] do |name, count|
|
59
|
+
count = count.to_i
|
60
|
+
count = MIN_TAIL if count < MIN_TAIL
|
61
|
+
count = MAX_TAIL if count > MAX_TAIL
|
62
|
+
srv = ServiceInfo[name]
|
60
63
|
return not_found if srv.nil? || !srv.logged?
|
61
64
|
@scripts = []
|
62
|
-
@title = t.runit.services.log.title(h(name), h(host_name))
|
65
|
+
@title = t.runit.services.log.title(h(name), h(host_name), h(count), h(srv.log_file_location))
|
63
66
|
erb :log, :locals => {
|
64
|
-
:name
|
65
|
-
:
|
67
|
+
:name => name,
|
68
|
+
:count => count,
|
69
|
+
:log_location => srv.log_file_location,
|
70
|
+
:text => `tail -n #{count} #{srv.log_file_location}`
|
66
71
|
}
|
67
72
|
end
|
68
73
|
|
data/lib/runit-man/helpers.rb
CHANGED
@@ -34,6 +34,16 @@ module Helpers
|
|
34
34
|
}
|
35
35
|
end
|
36
36
|
|
37
|
+
def log_link(name, options = {})
|
38
|
+
count = (options[:count] || 100).to_i
|
39
|
+
title = options[:title].to_s || count
|
40
|
+
blank = options[:blank] || false
|
41
|
+
hint = options[:hint].to_s || ''
|
42
|
+
hint = " title=\"#{h(hint)}\"" unless hint.empty?
|
43
|
+
blank = blank ? ' target="_blank"' : ''
|
44
|
+
"<a#{hint}#{blank} href=\"/#{h(name)}/log#{ (count != 100) ? "/#{count}" : '' }#footer\">#{h(title)}</a>"
|
45
|
+
end
|
46
|
+
|
37
47
|
def even_or_odd
|
38
48
|
self.even_or_odd_state = !even_or_odd_state
|
39
49
|
even_or_odd_state
|
data/sv/run
ADDED
data/views/_service_info.erb
CHANGED
@@ -21,7 +21,7 @@
|
|
21
21
|
</td>
|
22
22
|
<td>
|
23
23
|
<% if service_info.logged? %>
|
24
|
-
|
24
|
+
<%= log_link(service_info.name, :hint => t.runit.services.table.values.log_hint(service_info.name), :blank => true, :title => service_info.log_file_location) %>
|
25
25
|
<% else %>
|
26
26
|
<%= t.runit.services.table.values.log_absent %>
|
27
27
|
<% end %>
|
data/views/log.erb
CHANGED
@@ -1,5 +1,8 @@
|
|
1
1
|
<% content_for :content do %>
|
2
|
-
<%= t.runit.services.log.header(h(name), h(host_name)) %>
|
2
|
+
<%= t.runit.services.log.header(h(name), h(host_name), h(count), h(log_location)) %>
|
3
|
+
<p>
|
4
|
+
<%= t.runit.services.log.counts([100, 250, 500, 1000, 5000].map { |n| log_link(name, :count => n, :title => n) }.join(' ')) %>
|
5
|
+
</p>
|
3
6
|
<pre><%= h(text) %></pre>
|
4
7
|
<% end %>
|
5
8
|
<% content_for :footer do %>
|
metadata
CHANGED
@@ -1,7 +1,12 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: runit-man
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
|
4
|
+
prerelease: false
|
5
|
+
segments:
|
6
|
+
- 1
|
7
|
+
- 4
|
8
|
+
- 6
|
9
|
+
version: 1.4.6
|
5
10
|
platform: ruby
|
6
11
|
authors:
|
7
12
|
- Akzhan Abdulin
|
@@ -9,99 +14,107 @@ autorequire:
|
|
9
14
|
bindir: bin
|
10
15
|
cert_chain: []
|
11
16
|
|
12
|
-
date: 2010-
|
17
|
+
date: 2010-04-01 00:00:00 +04:00
|
13
18
|
default_executable:
|
14
19
|
dependencies:
|
15
20
|
- !ruby/object:Gem::Dependency
|
16
21
|
name: json
|
17
|
-
|
18
|
-
|
19
|
-
version_requirements: !ruby/object:Gem::Requirement
|
22
|
+
prerelease: false
|
23
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
20
24
|
requirements:
|
21
25
|
- - ">="
|
22
26
|
- !ruby/object:Gem::Version
|
27
|
+
segments:
|
28
|
+
- 0
|
23
29
|
version: "0"
|
24
|
-
|
30
|
+
type: :runtime
|
31
|
+
version_requirements: *id001
|
25
32
|
- !ruby/object:Gem::Dependency
|
26
33
|
name: erubis
|
27
|
-
|
28
|
-
|
29
|
-
version_requirements: !ruby/object:Gem::Requirement
|
34
|
+
prerelease: false
|
35
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
30
36
|
requirements:
|
31
37
|
- - ">="
|
32
38
|
- !ruby/object:Gem::Version
|
39
|
+
segments:
|
40
|
+
- 0
|
33
41
|
version: "0"
|
34
|
-
|
42
|
+
type: :runtime
|
43
|
+
version_requirements: *id002
|
35
44
|
- !ruby/object:Gem::Dependency
|
36
45
|
name: sinatra
|
37
|
-
|
38
|
-
|
39
|
-
version_requirements: !ruby/object:Gem::Requirement
|
46
|
+
prerelease: false
|
47
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
40
48
|
requirements:
|
41
49
|
- - ">="
|
42
50
|
- !ruby/object:Gem::Version
|
51
|
+
segments:
|
52
|
+
- 0
|
43
53
|
version: "0"
|
44
|
-
|
54
|
+
type: :runtime
|
55
|
+
version_requirements: *id003
|
45
56
|
- !ruby/object:Gem::Dependency
|
46
57
|
name: sinatra-content-for
|
47
|
-
|
48
|
-
|
49
|
-
version_requirements: !ruby/object:Gem::Requirement
|
58
|
+
prerelease: false
|
59
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
50
60
|
requirements:
|
51
61
|
- - ">="
|
52
62
|
- !ruby/object:Gem::Version
|
63
|
+
segments:
|
64
|
+
- 0
|
53
65
|
version: "0"
|
54
|
-
version:
|
55
|
-
- !ruby/object:Gem::Dependency
|
56
|
-
name: r18n-core
|
57
66
|
type: :runtime
|
58
|
-
|
59
|
-
version_requirements: !ruby/object:Gem::Requirement
|
60
|
-
requirements:
|
61
|
-
- - ">="
|
62
|
-
- !ruby/object:Gem::Version
|
63
|
-
version: 0.4.2
|
64
|
-
version:
|
67
|
+
version_requirements: *id004
|
65
68
|
- !ruby/object:Gem::Dependency
|
66
69
|
name: sinatra-r18n
|
67
|
-
|
68
|
-
|
69
|
-
version_requirements: !ruby/object:Gem::Requirement
|
70
|
+
prerelease: false
|
71
|
+
requirement: &id005 !ruby/object:Gem::Requirement
|
70
72
|
requirements:
|
71
73
|
- - ">="
|
72
74
|
- !ruby/object:Gem::Version
|
75
|
+
segments:
|
76
|
+
- 0
|
77
|
+
- 4
|
78
|
+
- 2
|
73
79
|
version: 0.4.2
|
74
|
-
|
80
|
+
type: :runtime
|
81
|
+
version_requirements: *id005
|
75
82
|
- !ruby/object:Gem::Dependency
|
76
83
|
name: rspec
|
77
|
-
|
78
|
-
|
79
|
-
version_requirements: !ruby/object:Gem::Requirement
|
84
|
+
prerelease: false
|
85
|
+
requirement: &id006 !ruby/object:Gem::Requirement
|
80
86
|
requirements:
|
81
87
|
- - ">="
|
82
88
|
- !ruby/object:Gem::Version
|
89
|
+
segments:
|
90
|
+
- 0
|
83
91
|
version: "0"
|
84
|
-
|
92
|
+
type: :development
|
93
|
+
version_requirements: *id006
|
85
94
|
- !ruby/object:Gem::Dependency
|
86
95
|
name: rr
|
87
|
-
|
88
|
-
|
89
|
-
version_requirements: !ruby/object:Gem::Requirement
|
96
|
+
prerelease: false
|
97
|
+
requirement: &id007 !ruby/object:Gem::Requirement
|
90
98
|
requirements:
|
91
99
|
- - ">="
|
92
100
|
- !ruby/object:Gem::Version
|
101
|
+
segments:
|
102
|
+
- 0
|
93
103
|
version: "0"
|
94
|
-
|
104
|
+
type: :development
|
105
|
+
version_requirements: *id007
|
95
106
|
- !ruby/object:Gem::Dependency
|
96
107
|
name: rack-test
|
97
|
-
|
98
|
-
|
99
|
-
version_requirements: !ruby/object:Gem::Requirement
|
108
|
+
prerelease: false
|
109
|
+
requirement: &id008 !ruby/object:Gem::Requirement
|
100
110
|
requirements:
|
101
111
|
- - ">="
|
102
112
|
- !ruby/object:Gem::Version
|
113
|
+
segments:
|
114
|
+
- 0
|
103
115
|
version: "0"
|
104
|
-
|
116
|
+
type: :development
|
117
|
+
version_requirements: *id008
|
105
118
|
description: |
|
106
119
|
Simple runit (http://smarden.org/runit/) web management tool with i18n.
|
107
120
|
|
@@ -138,6 +151,7 @@ files:
|
|
138
151
|
- views/_service_info.erb
|
139
152
|
- i18n/ru.yml
|
140
153
|
- i18n/en.yml
|
154
|
+
- sv/run
|
141
155
|
- sv/log/run
|
142
156
|
- sv/run.erb
|
143
157
|
has_rdoc: true
|
@@ -153,18 +167,20 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
153
167
|
requirements:
|
154
168
|
- - ">="
|
155
169
|
- !ruby/object:Gem::Version
|
170
|
+
segments:
|
171
|
+
- 0
|
156
172
|
version: "0"
|
157
|
-
version:
|
158
173
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
159
174
|
requirements:
|
160
175
|
- - ">="
|
161
176
|
- !ruby/object:Gem::Version
|
177
|
+
segments:
|
178
|
+
- 0
|
162
179
|
version: "0"
|
163
|
-
version:
|
164
180
|
requirements:
|
165
181
|
- none
|
166
182
|
rubyforge_project:
|
167
|
-
rubygems_version: 1.3.
|
183
|
+
rubygems_version: 1.3.6
|
168
184
|
signing_key:
|
169
185
|
specification_version: 3
|
170
186
|
summary: Runit web management tool.
|