harbr 0.0.15 → 0.0.16
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/exe/harbr +1 -0
- data/lib/harbr/version.rb +1 -1
- data/lib/harbr.rb +51 -3
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 88c0dd3adce1ad345040506cca126a2e14e2d65a9453f82f15fe2e9d79ca2384
|
4
|
+
data.tar.gz: 181a68eb372c41f6d8f307534c2f69697e6d5be169833a3c81470b6fc40938e0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ca6f1cb377f3d1169de9cb007b053e90e54f9278ee2e7bc71d7b106864081af78963cf57178b3d8401eadbe448368c9b6e19e2af5b83288ebfe0712a6610f62a
|
7
|
+
data.tar.gz: d68708150403d9eefb2f3178dbad09b2f66b6ff6d197826486f1def1853baf4162bc842b44a6947dcc51ab1d0417c755fd59309fff8ee70b4338907cd8d737bf
|
data/exe/harbr
CHANGED
data/lib/harbr/version.rb
CHANGED
data/lib/harbr.rb
CHANGED
@@ -22,7 +22,8 @@ module Harbr
|
|
22
22
|
include SuckerPunch::Job
|
23
23
|
|
24
24
|
def perform(manifest)
|
25
|
-
|
25
|
+
|
26
|
+
puts "Starting container: #{manifest.name}"
|
26
27
|
|
27
28
|
Dddr.configure do |config|
|
28
29
|
config.data_dir = Harbr::DEFAULT_DIRECTORY_DATA_DIR
|
@@ -30,10 +31,57 @@ module Harbr
|
|
30
31
|
|
31
32
|
pool = Harbr::Port::Pool.new
|
32
33
|
port = pool.get_port(manifest.host)
|
33
|
-
|
34
|
+
|
35
|
+
create_run_script(manifest.name, port.number)
|
36
|
+
create_log_script(manifest.name)
|
34
37
|
|
35
|
-
|
38
|
+
system("sv restart #{manifest.name}")
|
39
|
+
system("sv status #{manifest.name}")
|
40
|
+
|
36
41
|
end
|
42
|
+
|
43
|
+
def create_run_script(container_name, port)
|
44
|
+
service_dir = "/etc/sv/harbr/#{container_name}"
|
45
|
+
if File.directory?(log_dir)
|
46
|
+
puts "Directory already exists: #{log_dir}"
|
47
|
+
return
|
48
|
+
end
|
49
|
+
|
50
|
+
script_template = <<~SCRIPT
|
51
|
+
#!/bin/sh
|
52
|
+
exec 2>&1
|
53
|
+
cd /var/harbr/#{container_name}/current
|
54
|
+
exec bundle exec puma -p #{port}
|
55
|
+
SCRIPT
|
56
|
+
|
57
|
+
service_dir = "/etc/sv/harbr/#{container_name}"
|
58
|
+
FileUtils.mkdir_p(service_dir)
|
59
|
+
|
60
|
+
File.write("#{service_dir}/run", script_template)
|
61
|
+
FileUtils.chmod("+x", "#{service_dir}/run")
|
62
|
+
puts "Run script created and made executable for container: #{container_name}"
|
63
|
+
end
|
64
|
+
|
65
|
+
def create_log_script(container_name)
|
66
|
+
log_dir = "/var/log/harbr/#{container_name}"
|
67
|
+
if File.directory?(log_dir)
|
68
|
+
puts "Directory already exists: #{log_dir}"
|
69
|
+
return
|
70
|
+
end
|
71
|
+
|
72
|
+
script_template = <<~SCRIPT
|
73
|
+
#!/bin/sh
|
74
|
+
exec svlogd -tt #{log_dir}/
|
75
|
+
SCRIPT
|
76
|
+
|
77
|
+
dir_path = "/etc/sv/harbr/#{container_name}"
|
78
|
+
FileUtils.mkdir_p(dir_path)
|
79
|
+
|
80
|
+
File.write("#{dir_path}/run", script_template)
|
81
|
+
FileUtils.chmod("+x", "#{dir_path}/run")
|
82
|
+
puts "Log script created and made executable for container: #{container_name}"
|
83
|
+
end
|
84
|
+
|
37
85
|
end
|
38
86
|
|
39
87
|
include Dddr::Entity
|