harbr 0.1.80 → 0.1.82

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: e5bae4f7152798fe858e6e289a4926f104c30c8af4aff5d75690ac0a88d5bfc2
4
- data.tar.gz: de87394363bc31c641a36622760f134bbea83d27564e1fc079a1a641a1f7203d
3
+ metadata.gz: '028ba5825b5e4969fb9652aa83c380c31c25666f618da2c86a5d93613b209bc4'
4
+ data.tar.gz: 2f02b269e41fd999bc16ad0520d76f9ea772d7de1f256e0628da66c4f73e45a2
5
5
  SHA512:
6
- metadata.gz: badfc4d8ded68caddd793f5e1e957da3f30e8cf1f7d1d907e961a8c130ef0c8a55a2488d9a40aff962fe480ecf5fbc6a1de20b3c3c3fd63bafb6a44aae11c4d9
7
- data.tar.gz: e6d645f4bbdf4e7acdd7da6e7bd5765b088364f0031fc16b25b84aeaeb96e6ae1f4a9760e9e28e90a2b7456a5b047cd32ce91dcb4771fa1d1170b29895c7f81c
6
+ metadata.gz: d9bb90fa673d5001a2ae395791c7a8ca2384a1ab90fb70b0ca8cf70a80ab0edd9b937459f68b5d3b7f1aac60dd2b72e8c083ecf3455c17763d1b86e136204db2
7
+ data.tar.gz: 55bc8fb8f271de72d974e7e2f45f66b7fd937652a5fc5c1018adcdc85c9a640b8092027005b41e3145adceb1264f51e886fb4844f6458e3edfde6c991ed8cb7f
data/exe/harbr CHANGED
@@ -134,7 +134,6 @@ class HarbrCLI < Thor
134
134
  container_repo = Harbr::Container::Repository.new
135
135
 
136
136
  [name, "next.#{name}"].each do |container_name|
137
-
138
137
  container_repo.get_by_name(container_name).each do |container|
139
138
  `port release #{container.port}`
140
139
  puts "released port #{container.port} successfully."
@@ -189,18 +188,18 @@ class HarbrCLI < Thor
189
188
  SCRIPT
190
189
 
191
190
  log_script = <<~SCRIPT
192
- #!/bin/sh
193
- exec svlogd -tt /var/log/harbr/
194
- SCRIPT
195
-
191
+ #!/bin/sh
192
+ exec svlogd -tt /var/log/harbr/
193
+ SCRIPT
194
+
196
195
  write_to_file("/etc/sv/harbr/run", run_script)
197
196
  write_to_file("/etc/sv/harbr/log/run", log_script)
198
-
197
+
199
198
  `chmod +x /etc/sv/harbr/run`
200
199
  `chmod +x /etc/sv/harbr/log/run`
201
200
  `mkdir -p /var/log/harbr`
202
201
  `ln -sf /etc/sv/harbr /etc/service/harbr`
203
- `sv start harbr`
202
+ `sv start harbr`
204
203
  puts "Harbr service started successfully."
205
204
 
206
205
  puts "Setup completed successfully."
@@ -214,20 +213,18 @@ class HarbrCLI < Thor
214
213
 
215
214
  desc "deploy", "deploy a container to production"
216
215
  def deploy(name)
217
- /versions\/(?<version>\d*)/.match(`ls -l /var/harbr/containers/#{name}/next`)
216
+ /versions\/(?<version>\d*)/ =~ `ls -l /var/harbr/containers/#{name}/next`
218
217
  version = $1
219
218
  raise "Ooops! next version not found!" if version.nil?
220
-
221
- /versions\/(?<version>\d*)/.match(`ls -l /var/harbr/containers/#{name}/current`)
219
+
220
+ /versions\/(?<version>\d*)/ =~ `ls -l /var/harbr/containers/#{name}/current`
222
221
  `ln -sf /var/harbr/containers/#{name}/version/#{$1} /var/harbr/containers/#{name}/rollback`
223
222
 
224
223
  Harbr::Job.perform_async(name, version, "current")
225
224
 
226
225
  puts "deploy current version #{version} of #{name}"
227
-
228
226
  end
229
227
 
230
-
231
228
  desc "rollback", "rollback last deploy"
232
229
  def rollback(name)
233
230
  Dir.chdir("/var/harbr/containers/#{name}") do
@@ -11,6 +11,7 @@ module Harbr
11
11
  def find_by_name(name)
12
12
  all.find { |container| container.name.downcase == name.downcase }
13
13
  end
14
+
14
15
  def get_by_name(name)
15
16
  all.select { |container| container.name.downcase.include? name.downcase }
16
17
  end
data/lib/harbr/job.rb CHANGED
@@ -70,7 +70,6 @@ module Harbr
70
70
  containers.all
71
71
  end
72
72
 
73
-
74
73
  def write_to_file(path, contents)
75
74
  dirname = File.dirname(path)
76
75
  FileUtils.mkdir_p(dirname) unless File.directory?(dirname)
@@ -87,10 +86,10 @@ module Harbr
87
86
  end
88
87
 
89
88
  def perform(name, version, env)
90
- Harbr.notifiable(name, version,env) do
89
+ Harbr.notifiable(name, version, env) do
91
90
  manifest = load_manifest(name, version)
92
91
  port = `port assign #{env}.#{manifest.port}`.strip
93
- process_container(name,version,port,env,manifest)
92
+ process_container(name, version, port, env, manifest)
94
93
  end
95
94
  end
96
95
 
@@ -131,7 +130,6 @@ module Harbr
131
130
  end
132
131
 
133
132
  def process_container(name, version, port, env, manifest)
134
-
135
133
  version_path = "/var/harbr/containers/#{name}/versions/#{version}"
136
134
 
137
135
  bundle_install_if_needed(version_path)
@@ -140,21 +138,18 @@ module Harbr
140
138
  link_directories(name, version, env)
141
139
  sync_live_data_if_next(name) if env == "next"
142
140
 
143
- containers = collate_containers("#{name}", "#{manifest.host}", port,manifest.host_aliases) if env == "current"
144
- containers = collate_containers("#{env}.#{name}", "#{env}.#{manifest.host}", port,manifest.host_aliases&.map{|host| "#{env}.#{host}" }) if env == "next"
141
+ containers = collate_containers("#{name}", "#{manifest.host}", port, manifest.host_aliases) if env == "current"
142
+ containers = collate_containers("#{env}.#{name}", "#{env}.#{manifest.host}", port, manifest.host_aliases&.map { |host| "#{env}.#{host}" }) if env == "next"
145
143
 
146
144
  create_traefik_config(containers)
147
145
 
148
146
  system "sv restart #{env}.#{name}" if env == "next"
149
147
  system "sv restart #{name}" if env == "current"
150
148
 
151
-
152
-
153
149
  puts "harbr: #{version} of #{name} in #{env} environment"
154
150
  end
155
151
 
156
152
  def bundle_install_if_needed(path)
157
-
158
153
  check_dir_exists(path)
159
154
 
160
155
  Dir.chdir(path) do
@@ -190,8 +185,6 @@ module Harbr
190
185
  `mkdir -p /var/log/harbr/#{name}`
191
186
 
192
187
  end
193
-
194
-
195
188
  end
196
189
 
197
190
  def link_directories(name, version, env)
@@ -210,7 +203,6 @@ module Harbr
210
203
  `ln -sf /var/harbr/containers/#{name}/versions/#{version} /var/harbr/containers/#{name}/current`
211
204
  `ln -sf /etc/sv/harbr/#{name} /etc/service/#{name}`
212
205
  end
213
-
214
206
  end
215
207
 
216
208
  def sync_live_data_if_next(name)
@@ -229,27 +221,28 @@ module Harbr
229
221
 
230
222
  def run_script
231
223
  <<~SCRIPT
232
- #!/bin/sh
233
- exec 2>&1
234
- cd /var/harbr/containers/#{@container_name}/#{@env}
235
- exec ./exe/run #{@port} #{@env}
236
- echo "started #{@container_name} on port #{@port}"
224
+ #!/bin/sh
225
+ exec 2>&1
226
+ cd /var/harbr/containers/#{@container_name}/#{@env}
227
+ exec ./exe/run #{@port} #{@env}
228
+ echo "started #{@container_name} on port #{@port}"
237
229
  SCRIPT
238
230
  end
239
231
 
240
232
  def finish_script
241
233
  <<~SCRIPT
242
- #!/bin/sh
243
- lsof -i :#{@port} | awk 'NR!=1 {print $2}' | xargs kill
244
- echo "killed #{@container_name} on port #{@port}"
234
+ #!/bin/sh
235
+ lsof -i :#{@port} | awk 'NR!=1 {print $2}' | xargs kill
236
+ echo "killed #{@container_name} on port #{@port}"
245
237
  SCRIPT
246
238
  end
247
239
 
248
240
  def log_script
241
+ @env = env == 'current' ? nil : env
249
242
  <<~SCRIPT
250
- #!/bin/sh
251
- echo "starting log for #{@container_name} on port #{@port}"
252
- exec svlogd -tt /var/log/harbr/#{@container_name}/#{@env}/
243
+ #!/bin/sh
244
+ echo "starting log for #{@container_name} on port #{@port}"
245
+ exec svlogd -tt /var/log/harbr/#{@container_name}/#{@env}
253
246
  SCRIPT
254
247
  end
255
248
  end
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.80"
4
+ VERSION = "0.1.82"
5
5
  end
data/lib/harbr.rb CHANGED
@@ -39,15 +39,15 @@ module Harbr
39
39
  puts "Error sending notification: #{e.message}"
40
40
  end
41
41
 
42
- def self.notifiable(name, version,env)
42
+ def self.notifiable(name, version, env)
43
43
  yield if block_given?
44
44
  env = "live" if env == "current"
45
45
  send_notification("Harbr: #{name} deployed to #{env} successfully", "<p>harbr: #{version} of #{name} deployed to #{env} successfully</p>")
46
46
  rescue => e
47
47
  html_content = <<~HTML
48
- <p>Error: #{e.message}</p>
49
- <p>#{e.backtrace.join("<br>")}</p>
50
- <p>harbr: #{version} of #{env} #{name} failed to deploy</p>
48
+ <p>Error: #{e.message}</p>
49
+ <p>#{e.backtrace.join("<br>")}</p>
50
+ <p>harbr: #{version} of #{env} #{name} failed to deploy</p>
51
51
  HTML
52
52
 
53
53
  send_notification("Harbr: #{name} failed to deploy", html_content)
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.80
4
+ version: 0.1.82
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: 2024-01-03 00:00:00.000000000 Z
11
+ date: 2024-01-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: listen