harbr 0.0.77 → 0.0.78
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.
- checksums.yaml +4 -4
- data/exe/harbr +5 -6
- data/lib/harbr/version.rb +1 -1
- data/lib/harbr.rb +2 -79
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3cfbe8ee63ba9673159a4cbe99bff5508886e603274bdfe7eca373e4fad1cf1d
|
4
|
+
data.tar.gz: 27e468bb49b774ecb556fa6553e9b2134a98a06c7e3bd3a312cb45c848ddfc5d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 53e4d7f9397d59ecfd496c717b1fb983f29cd6b1c2a81ba9225cae566c8c1f09d8f99ab1e3c3bb5ed3c4897eee7f738f76a65b79b6b2216ad4d6fc1521c75783
|
7
|
+
data.tar.gz: 1dca696d45363ca0645f94b8b6813d9f8c6e1e3d4b86e734a8f585c0371cd86867c1e06dc0fb817bde2c3bc9fbe92b2cbd1c39c1d3480323d6f7fb9d8f65b3b3
|
data/exe/harbr
CHANGED
@@ -43,7 +43,7 @@ class HarbrCLI < Thor
|
|
43
43
|
end
|
44
44
|
|
45
45
|
def scan_for_containers
|
46
|
-
Dir.glob("/var/harbr/*").each_with_object({}) do |container_path, hash|
|
46
|
+
Dir.glob("/var/harbr/containers/*").each_with_object({}) do |container_path, hash|
|
47
47
|
next unless File.directory?(container_path)
|
48
48
|
container_name = File.basename(container_path)
|
49
49
|
versions = Dir.glob("#{container_path}/versions/*").select { |path| File.directory?(path) }
|
@@ -76,7 +76,6 @@ class HarbrCLI < Thor
|
|
76
76
|
else
|
77
77
|
Harbr::Next::Job.perform_async(container, version)
|
78
78
|
puts "deploy next version #{version} of #{container}"
|
79
|
-
|
80
79
|
end
|
81
80
|
end
|
82
81
|
|
@@ -154,7 +153,7 @@ class HarbrCLI < Thor
|
|
154
153
|
desc "setup", "Set up Harbr environment"
|
155
154
|
def setup
|
156
155
|
# Check and create /var/harbr directory
|
157
|
-
check_and_create_directory("/var/harbr")
|
156
|
+
check_and_create_directory("/var/harbr/containers")
|
158
157
|
|
159
158
|
# Check for Ruby, Traefik, and runit, and install if necessary
|
160
159
|
install_with_snap("ruby") unless command_exists?("ruby")
|
@@ -170,14 +169,14 @@ class HarbrCLI < Thor
|
|
170
169
|
display_containers_table(container_repo.all)
|
171
170
|
end
|
172
171
|
|
173
|
-
desc "monitor", "Monitor /var/harbr for new container versions"
|
172
|
+
desc "monitor", "Monitor /var/harbr/comtainers for new container versions"
|
174
173
|
def monitor
|
175
|
-
puts "Monitoring /var/harbr for new container versions..."
|
174
|
+
puts "Monitoring /var/harbr/containers for new container versions..."
|
176
175
|
last_known_state = {}
|
177
176
|
|
178
177
|
loop do
|
179
178
|
current_state = scan_for_containers
|
180
|
-
new_versions = current_state.keys - last_known_state.
|
179
|
+
new_versions = current_state.keys - last_known_state.keysß
|
181
180
|
|
182
181
|
new_versions.each do |container_version|
|
183
182
|
container, version = container_version.split("/versions/")
|
data/lib/harbr/version.rb
CHANGED
data/lib/harbr.rb
CHANGED
@@ -14,7 +14,7 @@ require_relative "harbr/next/job"
|
|
14
14
|
|
15
15
|
# Harbr module for managing containers, jobs, ports, and 2s
|
16
16
|
module Harbr
|
17
|
-
DEFAULT_DIRECTORY = "/var/harbr"
|
17
|
+
DEFAULT_DIRECTORY = "/var/harbr/containers"
|
18
18
|
DEFAULT_DIRECTORY_DATA_DIR = "#{DEFAULT_DIRECTORY}/.data"
|
19
19
|
class Error < StandardError; end
|
20
20
|
|
@@ -22,84 +22,7 @@ module Harbr
|
|
22
22
|
directories = Dir.glob("#{path}/*").select { |entry| File.directory?(entry) }
|
23
23
|
directories.max_by { |entry| entry[/\d+/].to_i }
|
24
24
|
end
|
25
|
-
|
26
|
-
module Runit
|
27
|
-
class Run
|
28
|
-
def initialize(container, port)
|
29
|
-
@container_name = container
|
30
|
-
@port = port
|
31
|
-
end
|
32
|
-
|
33
|
-
def to_s
|
34
|
-
<<~SCRIPT
|
35
|
-
#!/bin/sh
|
36
|
-
exec 2>&1
|
37
|
-
cd /var/harbr/#{@container_name}/current
|
38
|
-
exec ./exe/run #{@port}
|
39
|
-
SCRIPT
|
40
|
-
end
|
41
|
-
|
42
|
-
def link
|
43
|
-
"ln -s /etc/sv/harbr/#{@container_name} /etc/service/#{@container_name}"
|
44
|
-
end
|
45
|
-
end
|
46
|
-
|
47
|
-
class Log
|
48
|
-
def initialize(container, port)
|
49
|
-
@container_name = container
|
50
|
-
end
|
51
|
-
|
52
|
-
def to_s
|
53
|
-
<<~SCRIPT
|
54
|
-
#!/bin/sh
|
55
|
-
exec svlogd -tt /var/log/harbr/#{@container_name}/next/
|
56
|
-
SCRIPT
|
57
|
-
end
|
58
|
-
|
59
|
-
def link
|
60
|
-
"ln -s /etc/sv/harbr/#{@container_name}/log /etc/service/#{@container_name}/log"
|
61
|
-
end
|
62
|
-
end
|
63
|
-
|
64
|
-
module Next
|
65
|
-
class Run
|
66
|
-
def initialize(container, port)
|
67
|
-
@container_name = container
|
68
|
-
@port = port
|
69
|
-
end
|
70
|
-
|
71
|
-
def to_s
|
72
|
-
<<~SCRIPT
|
73
|
-
#!/bin/sh
|
74
|
-
exec 2>&1
|
75
|
-
cd /var/harbr/#{@container_name}/next
|
76
|
-
exec ./exe/run #{@port}
|
77
|
-
SCRIPT
|
78
|
-
end
|
79
|
-
|
80
|
-
def link
|
81
|
-
"ln -s /etc/sv/harbr/#{@container_name}/next /etc/service/next.#{@container_name}"
|
82
|
-
end
|
83
|
-
end
|
84
|
-
|
85
|
-
class Log
|
86
|
-
def initialize(container, port)
|
87
|
-
@container_name = container
|
88
|
-
end
|
89
|
-
|
90
|
-
def to_s
|
91
|
-
<<~SCRIPT
|
92
|
-
#!/bin/sh
|
93
|
-
exec svlogd -tt /var/log/harbr/#{@container_name}/next/
|
94
|
-
SCRIPT
|
95
|
-
end
|
96
|
-
|
97
|
-
def link
|
98
|
-
"ln -s /etc/sv/harbr/#{container_name}/next/log/ /etc/service/next.#{container_name}/log"
|
99
|
-
end
|
100
|
-
end
|
101
|
-
end
|
102
|
-
end
|
25
|
+
|
103
26
|
end
|
104
27
|
|
105
28
|
Dddr.configure do |config|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: harbr
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.78
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Delaney Kuldvee Burke
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-12-
|
11
|
+
date: 2023-12-14 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: listen
|