runit-man 1.2 → 1.3
Sign up to get free protection for your applications and to get access to all the features.
- data/bin/runit-man.rb +4 -0
- data/lib/runit-man/app.rb +18 -2
- data/sv/run +1 -1
- metadata +22 -5
data/bin/runit-man.rb
CHANGED
@@ -14,6 +14,10 @@ OptionParser.new { |op|
|
|
14
14
|
op.on('-b addr') { |val| RunitMan.set :bind, val }
|
15
15
|
op.on('-a active_services_directory (/etc/service by default)') { |val| RunitMan.set :active_services_directory, val }
|
16
16
|
op.on('-f all_services_directory (/etc/sv by default)') { |val| RunitMan.set :all_services_directory, val }
|
17
|
+
op.on_tail('-r', '--register', 'Register as runit service') do
|
18
|
+
RunitMan.register_as_runit_service
|
19
|
+
exit
|
20
|
+
end
|
17
21
|
}.parse!(ARGV.dup)
|
18
22
|
|
19
23
|
RunitMan.run!
|
data/lib/runit-man/app.rb
CHANGED
@@ -8,6 +8,8 @@ require 'runit-man/helpers'
|
|
8
8
|
|
9
9
|
R18n::Filters.on :variables
|
10
10
|
|
11
|
+
GEM_FOLDER = File.expand_path(File.join('..', '..'), File.dirname(__FILE__)).freeze
|
12
|
+
|
11
13
|
CONTENT_TYPES = {
|
12
14
|
:html => 'text/html',
|
13
15
|
:css => 'text/css',
|
@@ -22,7 +24,7 @@ class RunitMan < Sinatra::Base
|
|
22
24
|
set :logging, true
|
23
25
|
set :dump_errors, true
|
24
26
|
set :raise_errors, false
|
25
|
-
set :root,
|
27
|
+
set :root, GEM_FOLDER
|
26
28
|
|
27
29
|
register Sinatra::R18n
|
28
30
|
|
@@ -62,7 +64,8 @@ class RunitMan < Sinatra::Base
|
|
62
64
|
end
|
63
65
|
|
64
66
|
def log_action(name, text)
|
65
|
-
|
67
|
+
env = request.env
|
68
|
+
addr = env.include?('X_REAL_IP') ? env['X_REAL_IP'] : env['REMOTE_ADDR']
|
66
69
|
puts "#{addr} - - [#{Time.now}] \"Do #{text} on #{name}\""
|
67
70
|
end
|
68
71
|
|
@@ -74,4 +77,17 @@ class RunitMan < Sinatra::Base
|
|
74
77
|
log_action(name, action)
|
75
78
|
''
|
76
79
|
end
|
80
|
+
|
81
|
+
class << self
|
82
|
+
def register_as_runit_service
|
83
|
+
return if File.symlink?(File.join(RunitMan.all_services_directory, 'runit-man'))
|
84
|
+
do_cmd("ln -sf #{File.join(GEM_FOLDER, 'sv')} #{File.join(RunitMan.all_services_directory, 'runit-man')}")
|
85
|
+
do_cmd("ln -sf #{File.join(RunitMan.all_services_directory, 'runit-man')} #{File.join(RunitMan.active_services_directory, 'runit-man')}")
|
86
|
+
end
|
87
|
+
|
88
|
+
private
|
89
|
+
def do_cmd(command)
|
90
|
+
system(command) or raise "Cannot execute #{command}"
|
91
|
+
end
|
92
|
+
end
|
77
93
|
end
|
data/sv/run
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: runit-man
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: "1.
|
4
|
+
version: "1.3"
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Akzhan Abdulin
|
@@ -92,9 +92,26 @@ dependencies:
|
|
92
92
|
- !ruby/object:Gem::Version
|
93
93
|
version: "0"
|
94
94
|
version:
|
95
|
-
description:
|
96
|
-
runit
|
97
|
-
|
95
|
+
description: |+
|
96
|
+
Simple runit web management tool.
|
97
|
+
|
98
|
+
Server will run by runit-man.rb script.
|
99
|
+
|
100
|
+
Take a look at its options:
|
101
|
+
-p - Port to listen (4567 by default)
|
102
|
+
-b - IP Address to bind (0.0.0.0 by default)
|
103
|
+
-a - Directory of activated services (/etc/service by default)
|
104
|
+
-f - Directory of all known services (/etc/sv by default)
|
105
|
+
-r - Register runit-man as runit service (127.0.0.1:12343 by default)
|
106
|
+
|
107
|
+
Usually you need thin or mongrel gem to run runit-man fine.
|
108
|
+
gem install thin
|
109
|
+
|
110
|
+
Any localization can be done by editing of ./i18n/*.yml locale files.
|
111
|
+
|
112
|
+
Yours sincerely,
|
113
|
+
Akzhan.
|
114
|
+
|
98
115
|
email: akzhan.abdulin@gmail.com
|
99
116
|
executables:
|
100
117
|
- runit-man.rb
|
@@ -128,7 +145,7 @@ files:
|
|
128
145
|
- sv/run
|
129
146
|
- sv/log/run
|
130
147
|
has_rdoc: true
|
131
|
-
homepage:
|
148
|
+
homepage: http://github.com/akzhan/runit-man
|
132
149
|
licenses: []
|
133
150
|
|
134
151
|
post_install_message:
|