harbr 0.0.15 → 0.0.17
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: 21f10444ff1d34a8a27e85f3b3a1aebc4b22f11202ec822dd338597a0dc78b62
|
4
|
+
data.tar.gz: e0145b823c4df04b963866cdc37ec9b1fbee5dc88931f180148ab6c85dffe895
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b3ae3db94409585cf1a0acd8527f8a134577b2510b2983b03d443e585d25ab816dea30e3156cb32edbee7dff532e114996c5dcf3ab3ce5b95d40fc83ab1027eb
|
7
|
+
data.tar.gz: ddd48ac27c10f772e29ef067247ef367f4ec3cf8c98370ab361a0543cceed84ac9c2f171831597f7895777db602386bd1a7fd837406da4492a217bda6e31a96f
|
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?(service_dir)
|
46
|
+
puts "Directory already exists: #{service_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
|