runit-man 1.4.6 → 1.4.7

Sign up to get free protection for your applications and to get access to all the features.
@@ -34,3 +34,4 @@ runit:
34
34
  counts: "Show %1 lines of log"
35
35
  updated: "Page updated at %1"
36
36
  reload: Reload
37
+ raw: Raw
@@ -36,3 +36,4 @@ runit:
36
36
  counts: "Показать %1 строк лога"
37
37
  updated: "Страница обновлена %1"
38
38
  reload: Обновить страницу
39
+ raw: Текст
@@ -10,6 +10,7 @@ MAX_TAIL = 10000
10
10
  GEM_FOLDER = File.expand_path(File.join('..', '..'), File.dirname(__FILE__)).freeze
11
11
  CONTENT_TYPES = {
12
12
  :html => 'text/html',
13
+ :txt => 'text/plain',
13
14
  :css => 'text/css',
14
15
  :js => 'application/x-javascript',
15
16
  :json => 'application/json'
@@ -32,12 +33,9 @@ class RunitMan < Sinatra::Base
32
33
  end
33
34
 
34
35
  before do
35
- base_content_type = case request.env['REQUEST_URI']
36
- when /\.css$/ then :css
37
- when /\.js$/ then :js
38
- when /\.json$/ then :json
39
- else :html
40
- end
36
+ base_content_type = CONTENT_TYPES.keys.detect do |t|
37
+ request.env['REQUEST_URI'] =~ /\.#{Regexp.escape(t.to_s)}$/
38
+ end || :html
41
39
  content_type CONTENT_TYPES[base_content_type], :charset => 'utf-8'
42
40
  end
43
41
 
@@ -55,15 +53,13 @@ class RunitMan < Sinatra::Base
55
53
  service_infos.to_json
56
54
  end
57
55
 
58
- get %r[/([^/]+)/log(?:/(\d+))?] do |name, count|
56
+ def log_of_service(name, count)
59
57
  count = count.to_i
60
58
  count = MIN_TAIL if count < MIN_TAIL
61
59
  count = MAX_TAIL if count > MAX_TAIL
62
60
  srv = ServiceInfo[name]
63
- return not_found if srv.nil? || !srv.logged?
64
- @scripts = []
65
- @title = t.runit.services.log.title(h(name), h(host_name), h(count), h(srv.log_file_location))
66
- erb :log, :locals => {
61
+ return nil if srv.nil? || !srv.logged?
62
+ {
67
63
  :name => name,
68
64
  :count => count,
69
65
  :log_location => srv.log_file_location,
@@ -71,6 +67,20 @@ class RunitMan < Sinatra::Base
71
67
  }
72
68
  end
73
69
 
70
+ get %r[^/([^/]+)/log(?:/(\d+))?/?$] do |name, count|
71
+ data = log_of_service(name, count)
72
+ return not_found if data.nil?
73
+ @scripts = []
74
+ @title = t.runit.services.log.title(h(name), h(host_name), h(count), h(data[:log_location]))
75
+ erb :log, :locals => data
76
+ end
77
+
78
+ get %r[^/([^/]+)/log(?:/(\d+))?\.txt$] do |name, count|
79
+ data = log_of_service(name, count)
80
+ return not_found if data.nil?
81
+ data[:text]
82
+ end
83
+
74
84
  def log_action(name, text)
75
85
  env = request.env
76
86
  addr = env.include?('X_REAL_IP') ? env['X_REAL_IP'] : env['REMOTE_ADDR']
@@ -39,9 +39,10 @@ module Helpers
39
39
  title = options[:title].to_s || count
40
40
  blank = options[:blank] || false
41
41
  hint = options[:hint].to_s || ''
42
+ raw = options[:raw] || false
42
43
  hint = " title=\"#{h(hint)}\"" unless hint.empty?
43
44
  blank = blank ? ' target="_blank"' : ''
44
- "<a#{hint}#{blank} href=\"/#{h(name)}/log#{ (count != 100) ? "/#{count}" : '' }#footer\">#{h(title)}</a>"
45
+ "<a#{hint}#{blank} href=\"/#{h(name)}/log#{ (count != 100) ? "/#{count}" : '' }#{ raw ? '.txt' : '' }#footer\">#{h(title)}</a>"
45
46
  end
46
47
 
47
48
  def even_or_odd
@@ -1,5 +1,6 @@
1
1
  <% content_for :content do %>
2
- <%= t.runit.services.log.header(h(name), h(host_name), h(count), h(log_location)) %>
2
+ <%= t.runit.services.log.header(h(name), h(host_name), h(count), h(log_location)) %> | <%= log_link(name, :count => count, :title => t.runit.services.log.raw, :raw => true) %>
3
+
3
4
  <p>
4
5
  <%= t.runit.services.log.counts([100, 250, 500, 1000, 5000].map { |n| log_link(name, :count => n, :title => n) }.join(' ')) %>
5
6
  </p>
metadata CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
5
5
  segments:
6
6
  - 1
7
7
  - 4
8
- - 6
9
- version: 1.4.6
8
+ - 7
9
+ version: 1.4.7
10
10
  platform: ruby
11
11
  authors:
12
12
  - Akzhan Abdulin
@@ -14,7 +14,7 @@ autorequire:
14
14
  bindir: bin
15
15
  cert_chain: []
16
16
 
17
- date: 2010-04-01 00:00:00 +04:00
17
+ date: 2010-04-05 00:00:00 +04:00
18
18
  default_executable:
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency