lbhrr 1.0.27 → 1.1.1

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.
Files changed (4) hide show
  1. checksums.yaml +4 -4
  2. data/exe/lbhrr +38 -36
  3. data/lib/lbhrr/version.rb +1 -1
  4. metadata +3 -3
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: d9316b3555eea12d2403c4b53f2294a09652458267b803938f725667b27b1ac4
4
- data.tar.gz: aecf3fa3443f1ee16c92e59ae8936631e4e6d489194edad83fdfe316240c40ae
3
+ metadata.gz: d227165ee1807a1d93fa79f40934df7b04738dd33ee5d1e052e15570862218af
4
+ data.tar.gz: 31ff59aadaa7d98b6a8e1e6a52496f444902bb87910a9f818d713efc8b7bfda4
5
5
  SHA512:
6
- metadata.gz: 032ad826d862ae97d42e9ab573ce72ff00d985c3492931513b3de411e431ed08e5a6e0ea7e63d555c85c0d338b13c78907c584835ef9e9ed961f7141682a03e3
7
- data.tar.gz: 6be6169070b182d3f54d254c81aa53391f49bee00d45e3d9a0c6fca6b08e0299c84ae714635793366dbfe93b4a5703ccf78271fe1450de66cd84b84a041ded21
6
+ metadata.gz: d7b52bdd9bfb3b0c0c492b621119a613407c5b5266289aa06246e1a86a2cf30f12eefb15693d718e1e0ccc5654f3235cd9aadfa63a7567c33b8a23ef916fd08f
7
+ data.tar.gz: 942c57b8f351cadff9ff01366122c53ab30e827b6ac00847fcfac498dbffc2d43e2195491265ccd4276dbade8c9172c98c50b153723299187575551e613ce5a9
data/exe/lbhrr CHANGED
@@ -15,22 +15,23 @@ class LbhrrCLI < Thor
15
15
  user = config["user"]
16
16
  port = config["port"]
17
17
  version = config["version"].to_i
18
- raise "Configuration error: Host, User, or Version missing" unless host && port && user && version > 0
19
18
 
20
19
  # Check for a git repository
21
20
  unless `git rev-parse --is-inside-work-tree > /dev/null 2>&1`
22
21
  raise "No Git repository found in the current directory"
23
22
  end
24
23
 
25
- # Delete vendor directory if it exists
26
- vendor_path = File.join(Dir.pwd, "vendor")
27
- FileUtils.rm_rf(vendor_path) if Dir.exist?(vendor_path)
28
- `bundle config set --local path 'vendor/bundle'`
29
- system "bundle install" or raise "Bundle install failed"
24
+ if File.exist? "Gemfile"
25
+ vendor_path = File.join(Dir.pwd, "vendor")
26
+ FileUtils.rm_rf(vendor_path) if Dir.exist?(vendor_path)
27
+ `bundle config set --local path 'vendor/bundle'`
28
+ system "bundle install" or raise "Bundle install failed"
29
+ end
30
+
30
31
  # Check if the repository is clean
31
32
  puts "Git repository is dirty, committing changes..."
32
33
  system("git add .") or raise "Failed to add changes to Git"
33
- system("git commit -m 'packaged #{version}'") or raise "Failed to commit changes to Git"
34
+ system("git commit -m 'packaged #{version}'")
34
35
  puts "Packaging completed successfully."
35
36
 
36
37
  end
@@ -103,22 +104,22 @@ class LbhrrCLI < Thor
103
104
  def create_run_file(type)
104
105
 
105
106
  service_content = <<-RUBY
106
- #!/usr/bin/env ruby
107
- require 'bundler/inline'
107
+ #!/usr/bin/env ruby
108
108
 
109
- gemfile do
110
- source 'https://rubygems.org'
111
- #gem 'kafkr', require: true
112
- end
109
+ require 'bundler/inline'
113
110
 
114
- puts 'Gems installed and loaded!'
111
+ gemfile do
112
+ source 'https://rubygems.org'
113
+ #gem 'kafkr', require: true
114
+ end
115
115
 
116
- loop do
117
- puts 'ok!'
118
- sleep 1
119
- end
116
+ puts 'Gems installed and loaded!'
120
117
 
121
- RUBY
118
+ loop do
119
+ puts 'ok!'
120
+ sleep 1
121
+ end
122
+ RUBY
122
123
 
123
124
  if type == "web"
124
125
  run_file_path = File.join(Dir.pwd, "exe", "run")
@@ -135,7 +136,7 @@ class LbhrrCLI < Thor
135
136
  run_file_path = File.join(Dir.pwd, "exe", "run")
136
137
  service_run_file_content = "#!/bin/sh\n HARBR_ENV=$2 ruby service"
137
138
  exe_directory = File.join(Dir.pwd, "exe")
138
-
139
+
139
140
  Dir.mkdir(exe_directory) unless Dir.exist?(exe_directory)
140
141
  File.write(run_file_path, service_run_file_content)
141
142
  File.chmod(0o755, run_file_path) # Set executable permission
@@ -144,10 +145,10 @@ class LbhrrCLI < Thor
144
145
  File.write("service", service_content)
145
146
  File.chmod(0o755, "service") # Set executable permission
146
147
  puts "Created ./service file."
147
-
148
+
148
149
  end
149
150
 
150
-
151
+
151
152
 
152
153
  rescue => e
153
154
  puts "Error creating ./exe/run file: #{e.message}"
@@ -159,7 +160,8 @@ class LbhrrCLI < Thor
159
160
  "version" => "0",
160
161
  "type" => type,
161
162
  "port" => "#{File.basename(Dir.pwd)}.app",
162
- "host" => "#{File.basename(Dir.pwd)}.harbr.zero2one.ee"
163
+ "host" => "#{File.basename(Dir.pwd)}.harbr.zero2one.ee",
164
+ "host_aliases" => []
163
165
  }
164
166
 
165
167
  YAML.dump(example_local_config)
@@ -167,7 +169,7 @@ class LbhrrCLI < Thor
167
169
 
168
170
  def load_configuration
169
171
  global_config_dir = File.expand_path("~/.config/harbr")
170
- global_config_path = File.join(global_config_dir, "harbr.manifest.yml")
172
+ global_config_path = File.join(global_config_dir, "manifest.yml")
171
173
  local_config_path = File.join(Dir.pwd, "config", "manifest.yml")
172
174
 
173
175
  # Ensure global configuration exists
@@ -185,7 +187,7 @@ class LbhrrCLI < Thor
185
187
 
186
188
  if File.exist? local_config_path
187
189
  local_config = YAML.load_file(local_config_path) || {}
188
- global_config.merge(local_config)
190
+ global_config.merge!(local_config)
189
191
  end
190
192
 
191
193
  global_config
@@ -253,22 +255,22 @@ class LbhrrCLI < Thor
253
255
  desc "lift", "Deploy an application using the configuration from config/manifest.yml to next"
254
256
  def lift
255
257
  if manifest?
256
-
258
+
257
259
  package
258
-
260
+
259
261
 
260
262
  config = load_configuration
261
263
  host = config["host"]
262
264
  user = config["user"]
263
265
  raise "Host configuration missing" unless host
264
-
266
+
265
267
  local_manifest_path = File.join(Dir.pwd, "config", "manifest.yml")
266
268
  raise "Local manifest file not found at #{local_manifest_path}" unless File.exist?(local_manifest_path)
267
-
269
+
268
270
  local_config = YAML.load_file(local_manifest_path) || {}
269
271
  version = local_config["version"].to_i
270
272
  raise "Version not specified in manifest.yml" unless version
271
-
273
+
272
274
  basename = File.basename(Dir.pwd)
273
275
  base_directory = "/var/harbr/containers/#{basename}"
274
276
  versions_directory = "#{base_directory}/versions"
@@ -277,22 +279,22 @@ class LbhrrCLI < Thor
277
279
  # Prepare the rsync exclude option using .gitignore
278
280
  gitignore_path = File.join(Dir.pwd, ".gitignore")
279
281
  exclude_option = File.exist?(gitignore_path) ? "--exclude='.git' --exclude-from='#{gitignore_path}'" : ""
280
-
281
-
282
+
283
+
282
284
  # Check and create the versions directory on the server
283
285
  `ssh #{user}@#{host} 'mkdir -p #{versions_directory}'`
284
286
  `ssh #{user}@#{host} 'mkdir -p #{data_directory}'`
285
-
287
+
286
288
  # Rsync files to the new version directory, excluding files as per .gitignore
287
289
  rsync_command = "rsync -avz #{exclude_option} ./ #{user}@#{host}:#{destination_path}"
288
-
290
+
289
291
  if `#{rsync_command}`
290
292
  puts "Successfully deployed application version #{version} to #{host}"
291
293
  deployed(local_manifest_path, version)
292
294
  else
293
295
  puts "Failed to deploy application version #{version} to #{host}"
294
296
  end
295
-
297
+
296
298
  else
297
299
  puts "no manifest found!"
298
300
  end
@@ -355,7 +357,7 @@ class LbhrrCLI < Thor
355
357
 
356
358
  desc "rollback", "rollback an application using the configuration from config/manifest.yml"
357
359
  def rollback(name=nil)
358
-
360
+
359
361
  config = load_configuration
360
362
  host = config["host"]
361
363
  user = config["user"]
data/lib/lbhrr/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Lbhrr
4
- VERSION = "1.0.27"
4
+ VERSION = "1.1.1"
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lbhrr
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.27
4
+ version: 1.1.1
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-23 00:00:00.000000000 Z
11
+ date: 2024-01-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: net-ssh
@@ -76,7 +76,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
76
76
  - !ruby/object:Gem::Version
77
77
  version: '0'
78
78
  requirements: []
79
- rubygems_version: 3.4.21
79
+ rubygems_version: 3.5.3
80
80
  signing_key:
81
81
  specification_version: 4
82
82
  summary: A CLI tool for deploying and managing Rack applications.