harbr 0.1.32 → 0.1.34

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 74be5b198005311fab95e570ef40ea3b8c8951cae8685e51a505109ec8778efd
4
- data.tar.gz: bd9062554967c6b79c7736031a432836e4488ca5126c297a6bcf5ac0c0bda1c3
3
+ metadata.gz: 3d18bb11eb763f6b9ebd02f4cf707e798b1614362a718e2fc5d4aa3a8714dacc
4
+ data.tar.gz: 4d393921baddbee40f815d4821f81822d5282bf0d6aa6147c68394c88642a017
5
5
  SHA512:
6
- metadata.gz: 60f3b2377e0b1d17429f94924061074569e0a866987744dc76500a5a1b68a05532ec3479a64524d675797a9f94ff75122d868c4cd9fe438ef4fd5f2222033c82
7
- data.tar.gz: 3c211d61a277f0bd87e895bbb5b692dae59ffb75fd5aab4d8067f0d350f7d04786e2961c098304368a4da5f7e3bfbd5a2fc45ffa1b3470c067c0c32a62db559c
6
+ metadata.gz: 2f0d979c6328591abad69510944e6b8f76403cec48e14049f030ee550e675bec8e7a721e62acaa3d94c8aea3feeff55afb04f716217b32fef6bb91bcb5e9c739
7
+ data.tar.gz: ae098eff09b1a4df3b058ecad33ad8c74f472ef927589b36de65d2113a2b66b717541ee13af09042d283975dcc59c03db5e1a7c5610c0b18fac5981bedeaeb4c
data/lib/harbr/job.rb CHANGED
@@ -76,10 +76,10 @@ module Harbr
76
76
 
77
77
  def to_s
78
78
  <<~SCRIPT
79
- #!/bin/sh
80
- exec 2>&1
81
- cd /var/harbr/containers/#{@container_name}/current
82
- exec ./exe/run #{@port} live
79
+ #!/bin/sh
80
+ exec 2>&1
81
+ cd /var/harbr/containers/#{@container_name}/current
82
+ exec ./exe/run #{@port} live
83
83
  SCRIPT
84
84
  end
85
85
 
@@ -95,9 +95,9 @@ module Harbr
95
95
 
96
96
  def to_s
97
97
  <<~SCRIPT
98
- #!/bin/sh
99
- sleep 3
100
- `lsof -i :#{@port} | awk 'NR!=1 {print $2}' | xargs kill`
98
+ #!/bin/sh
99
+ sleep 3
100
+ `lsof -i :#{@port} | awk 'NR!=1 {print $2}' | xargs kill`
101
101
  SCRIPT
102
102
  end
103
103
  end
@@ -109,8 +109,8 @@ module Harbr
109
109
 
110
110
  def to_s
111
111
  <<~SCRIPT
112
- #!/bin/sh
113
- exec svlogd -tt /var/log/harbr/#{@container_name}
112
+ #!/bin/sh
113
+ exec svlogd -tt /var/log/harbr/#{@container_name}
114
114
  SCRIPT
115
115
  end
116
116
  end
@@ -128,33 +128,38 @@ module Harbr
128
128
  end
129
129
 
130
130
  def perform(name, version)
131
- Dir.chdir "/var/harbr/containers/#{name}/versions/#{version}" do
132
- manifest = load_manifest(name, version)
133
- port = `port assign #{manifest.port}`.strip
134
- system "sv stop #{name}" if File.exist?("/etc/service/#{name}")
135
- if File.exist?("Gemfile")
136
- `bundle config set --local path 'vendor/bundle'`
137
- system "bundle install"
138
- end
139
131
 
140
- `mkdir -p /etc/sv/harbr/#{name}`
141
- `mkdir -p /etc/sv/harbr/#{name}/log`
142
- `mkdir -p /var/log/harbr/#{name}`
132
+ Harbr.notifiable(name,version) do
133
+
134
+ Dir.chdir "/var/harbr/containers/#{name}/versions/#{version}" do
135
+ manifest = load_manifest(name, version)
136
+ port = `port assign #{manifest.port}`.strip
137
+ system "sv stop #{name}" if File.exist?("/etc/service/#{name}")
138
+ if File.exist?("Gemfile")
139
+ `bundle config set --local path 'vendor/bundle'`
140
+ system "bundle install"
141
+ end
142
+
143
+ `mkdir -p /etc/sv/harbr/#{name}`
144
+ `mkdir -p /etc/sv/harbr/#{name}/log`
145
+ `mkdir -p /var/log/harbr/#{name}`
143
146
 
144
- write_to_file "/etc/sv/harbr/#{name}/run", Runit::Run.new(name, port).to_s
145
- write_to_file "/etc/sv/harbr/#{name}/finish", Runit::Finish.new(port).to_s
146
- write_to_file "/etc/sv/harbr/#{name}/log/run", Runit::Log.new(name).to_s
147
+ write_to_file "/etc/sv/harbr/#{name}/run", Runit::Run.new(name, port).to_s
148
+ write_to_file "/etc/sv/harbr/#{name}/finish", Runit::Finish.new(port).to_s
149
+ write_to_file "/etc/sv/harbr/#{name}/log/run", Runit::Log.new(name).to_s
147
150
 
148
- `chmod +x /etc/sv/harbr/#{name}/run`
149
- `chmod +x /etc/sv/harbr/#{name}/log/run`
150
- `chmod +x /etc/sv/harbr/#{name}/finish`
151
+ `chmod +x /etc/sv/harbr/#{name}/run`
152
+ `chmod +x /etc/sv/harbr/#{name}/log/run`
153
+ `chmod +x /etc/sv/harbr/#{name}/finish`
151
154
 
152
- system "ln -sf /var/harbr/containers/#{name}/versions/#{version} /var/harbr/containers/#{name}/current"
153
- system "ln -sf /etc/sv/harbr/#{name} /etc/service/#{name}"
155
+ system "ln -sf /var/harbr/containers/#{name}/versions/#{version} /var/harbr/containers/#{name}/current"
156
+ system "ln -sf /etc/sv/harbr/#{name} /etc/service/#{name}"
157
+
158
+ containers = collate_containers(name, manifest.host, port)
159
+ create_traefik_config(containers)
160
+ puts "process #{version} of #{name}"
161
+ end
154
162
 
155
- containers = collate_containers(name, manifest.host, port)
156
- create_traefik_config(containers)
157
- puts "process #{version} of #{name}"
158
163
  end
159
164
  end
160
165
  end
@@ -165,7 +165,7 @@ module Harbr
165
165
 
166
166
  def perform(name, version)
167
167
 
168
- Harbr.notifiable do
168
+ Harbr.notifiable(name,version) do
169
169
  manifest = load_manifest(name, version)
170
170
  current_path = "/var/harbr/containers/#{name}/versions/#{version}"
171
171
 
data/lib/harbr/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Harbr
4
- VERSION = "0.1.32"
4
+ VERSION = "0.1.34"
5
5
  end
data/lib/harbr.rb CHANGED
@@ -19,21 +19,11 @@ module Harbr
19
19
  DEFAULT_DIRECTORY_DATA_DIR = "#{DEFAULT_DIRECTORY}/.data"
20
20
  class Error < StandardError; end
21
21
 
22
- def self.notifiable
23
- begin
24
- yield if block_given?
25
- send_notification("Harbr: #{name} deployed successfully","<p>harbr: #{version} of #{name} deployed successfully</p>")
26
- rescue => e
27
- html_content = "<p>Error: #{e.message}</p>
28
- <p>#{e.backtrace.join('<br>')}</p>
29
- <p>harbr: #{version} of #{name} failed to deploy</p>"
30
- Harbr.send_notification("Harbr: #{name} failed to deploy",html_content)
31
- end
32
- end
33
-
34
22
  def self.send_notification(subject, body)
35
23
  begin
24
+
36
25
  Resend.api_key = ENV['RESEND_API_KEY']
26
+
37
27
  params = {
38
28
  from: ENV['RESEND_FROM'],
39
29
  to: ENV['RESEND_TO'],
@@ -44,11 +34,22 @@ module Harbr
44
34
  Resend::Emails.send(params)
45
35
  rescue => e
46
36
  puts "Error sending notification: #{e.message}"
47
- return
48
37
  end
49
38
 
50
39
  end
51
40
 
41
+ def self.notifiable(name,version)
42
+ begin
43
+ yield if block_given?
44
+ send_notification("Harbr: #{name} deployed successfully","<p>harbr: #{version} of #{name} deployed successfully</p>")
45
+ rescue => e
46
+ html_content = "<p>Error: #{e.message}</p>
47
+ <p>#{e.backtrace.join('<br>')}</p>
48
+ <p>harbr: #{version} of #{name} failed to deploy</p>"
49
+ send_notification("Harbr: #{name} failed to deploy",html_content)
50
+ end
51
+ end
52
+
52
53
  end
53
54
 
54
55
  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.1.32
4
+ version: 0.1.34
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-29 00:00:00.000000000 Z
11
+ date: 2023-12-31 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: listen
@@ -174,7 +174,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
174
174
  - !ruby/object:Gem::Version
175
175
  version: '0'
176
176
  requirements: []
177
- rubygems_version: 3.4.21
177
+ rubygems_version: 3.5.3
178
178
  signing_key:
179
179
  specification_version: 4
180
180
  summary: A server-side tool for managing and deploying Rack applications.