lbhrr 1.0.23 → 1.0.26

Sign up to get free protection for your applications and to get access to all the features.
Files changed (4) hide show
  1. checksums.yaml +4 -4
  2. data/exe/lbhrr +106 -57
  3. data/lib/lbhrr/version.rb +1 -1
  4. metadata +1 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 97455904c9513fd9f6a8c594c5747b85195c9c0e253e2c99d16ca2bc106304d8
4
- data.tar.gz: 6b375eef27e9101c046ba628724df7a9ab467a511bc82123adedf3df7fa04881
3
+ metadata.gz: 6cf67c16657d7441eb1afe1cbe45d92b091582d0909860277bba699fba9409c7
4
+ data.tar.gz: d3c9bed0e42a7081a639ca0e6341f8fa783e4f848a125125a35d7ed2971d6053
5
5
  SHA512:
6
- metadata.gz: e07cc919f47975a307d68c1f95ccd09a41114bdbfaf9d480f80c359e66729fdae0476eab46461bb6d306ea437b09d96c0ed97ddb51120e2ba6104e83764b5059
7
- data.tar.gz: 2129dee935ff5dd79bebd2e068d75d1bf440c52faf176f9fbf418c7f90e62a543e7b1db30e9d8a9ddbbbb417174e262638fe82574a836a985520e6d6edceff13
6
+ metadata.gz: bd05fb0380b15ba715342597d558c7477c85719da51e5f2f8b17e77b89bb900613417465d2230209b6a3c8a80702eba2c5d51e6da76d30d9427e5f3e93f9a46d
7
+ data.tar.gz: c20241b685a9f0a03dd859a1781a2e22053c9a529a3da52013e514e9bf0a6e0ba88eb9a792f15a6ead66827fc860cce56699a0ef53c060e9d62d0b41fb4aa387
data/exe/lbhrr CHANGED
@@ -5,7 +5,7 @@ class LbhrrCLI < Thor
5
5
  no_commands do
6
6
 
7
7
  def manifest?
8
- File.join(Dir.pwd, "config","manifest.yml")
8
+ File.exist? File.join(Dir.pwd, "config","manifest.yml")
9
9
  end
10
10
 
11
11
  def package
@@ -32,8 +32,7 @@ class LbhrrCLI < Thor
32
32
  system("git add .") or raise "Failed to add changes to Git"
33
33
  system("git commit -m 'packaged #{version}'") or raise "Failed to commit changes to Git"
34
34
  puts "Packaging completed successfully."
35
- rescue => e
36
- puts "Packaging error: #{e.message}"
35
+
37
36
  end
38
37
 
39
38
  def amend_last_commit(new_message)
@@ -101,24 +100,64 @@ class LbhrrCLI < Thor
101
100
  YAML.dump(example_global_config)
102
101
  end
103
102
 
104
- def create_run_file
105
- run_file_path = File.join(Dir.pwd, "exe", "run")
106
- run_file_content = "#!/bin/sh\n HARBR_ENV=$2 bundle exec puma -p $1"
107
- exe_directory = File.join(Dir.pwd, "exe")
103
+ def create_run_file(type)
104
+
105
+ service_content = <<-RUBY
106
+ #!/usr/bin/env ruby
107
+ require 'bundler/inline'
108
+
109
+ gemfile do
110
+ source 'https://rubygems.org'
111
+ #gem 'kafkr', require: true
112
+ end
113
+
114
+ puts 'Gems installed and loaded!'
115
+
116
+ loop do
117
+ puts 'ok!'
118
+ sleep 1
119
+ end
120
+
121
+ RUBY
122
+
123
+ if type == "web"
124
+ run_file_path = File.join(Dir.pwd, "exe", "run")
125
+ web_run_file_content = "#!/bin/sh\n HARBR_ENV=$2 bundle exec puma -p $1"
126
+ exe_directory = File.join(Dir.pwd, "exe")
127
+
128
+ Dir.mkdir(exe_directory) unless Dir.exist?(exe_directory)
129
+ File.write(run_file_path, web_run_file_content)
130
+ File.chmod(0o755, run_file_path) # Set executable permission
131
+ puts "Created ./exe/run file."
132
+ end
133
+
134
+ if type == "service"
135
+ run_file_path = File.join(Dir.pwd, "exe", "run")
136
+ service_run_file_content = "#!/bin/sh\n HARBR_ENV=$2 ruby service"
137
+ exe_directory = File.join(Dir.pwd, "exe")
138
+
139
+ Dir.mkdir(exe_directory) unless Dir.exist?(exe_directory)
140
+ File.write(run_file_path, service_run_file_content)
141
+ File.chmod(0o755, run_file_path) # Set executable permission
142
+ puts "Created ./exe/run file."
143
+
144
+ File.write("service", service_content)
145
+ File.chmod(0o755, "service") # Set executable permission
146
+ puts "Created ./service file."
147
+
148
+ end
108
149
 
109
- Dir.mkdir(exe_directory) unless Dir.exist?(exe_directory)
110
- File.write(run_file_path, run_file_content)
111
- File.chmod(0o755, run_file_path) # Set executable permission
150
+
112
151
 
113
- puts "Created ./exe/run file."
114
152
  rescue => e
115
153
  puts "Error creating ./exe/run file: #{e.message}"
116
154
  end
117
155
 
118
- def create_example_local_config
156
+ def create_example_local_config(type)
119
157
  example_local_config = {
120
158
  "name" => File.basename(Dir.pwd),
121
159
  "version" => "0",
160
+ "type" => type,
122
161
  "port" => "#{File.basename(Dir.pwd)}.app",
123
162
  "host" => "#{File.basename(Dir.pwd)}.harbr.zero2one.ee"
124
163
  }
@@ -163,17 +202,19 @@ class LbhrrCLI < Thor
163
202
  end
164
203
 
165
204
  desc "init", "Initialize project with .gitignore"
205
+ method_option :type, type: :string, enum: ['web', 'service'], default: 'web', desc: "Specify the type of process"
166
206
  def init
167
207
  local_config_path = File.join(Dir.pwd, "config", "manifest.yml")
168
208
 
169
209
  unless File.exist?(local_config_path)
170
210
  FileUtils.mkdir_p(File.dirname(local_config_path)) unless Dir.exist?(File.dirname(local_config_path))
171
- File.write(local_config_path, create_example_local_config)
211
+ File.write(local_config_path, create_example_local_config(options[:type]))
172
212
  end
173
213
  # Load and merge configurations
174
214
  local_config = YAML.load_file(local_config_path) || {}
175
215
  create_gitignore
176
- create_run_file
216
+ create_run_file(options[:type])
217
+
177
218
 
178
219
 
179
220
  # Include other initialization tasks if necessary
@@ -194,7 +235,13 @@ class LbhrrCLI < Thor
194
235
  user = config["user"]
195
236
 
196
237
  if name.nil?
197
- name = File.basename(Dir.pwd)
238
+
239
+ unless manifest?
240
+ puts "no manifest found!"
241
+ return
242
+ end
243
+
244
+ name = config["name"]
198
245
  end
199
246
 
200
247
  puts "Destroying app: #{name}"
@@ -205,50 +252,51 @@ class LbhrrCLI < Thor
205
252
 
206
253
  desc "raise", "Deploy an application using the configuration from config/manifest.yml to staging"
207
254
  def raise
208
- unless manifest?
255
+ if manifest?
256
+
257
+ package
258
+
259
+
260
+ config = load_configuration
261
+ host = config["host"]
262
+ user = config["user"]
263
+ raise "Host configuration missing" unless host
264
+
265
+ local_manifest_path = File.join(Dir.pwd, "config", "manifest.yml")
266
+ raise "Local manifest file not found at #{local_manifest_path}" unless File.exist?(local_manifest_path)
267
+
268
+ local_config = YAML.load_file(local_manifest_path) || {}
269
+ version = local_config["version"].to_i
270
+ raise "Version not specified in manifest.yml" unless version
271
+
272
+ basename = File.basename(Dir.pwd)
273
+ base_directory = "/var/harbr/containers/#{basename}"
274
+ versions_directory = "#{base_directory}/versions"
275
+ data_directory = "/var/dddr/#{basename}/"
276
+ destination_path = "#{versions_directory}/#{version}"
277
+ # Prepare the rsync exclude option using .gitignore
278
+ gitignore_path = File.join(Dir.pwd, ".gitignore")
279
+ exclude_option = File.exist?(gitignore_path) ? "--exclude='.git' --exclude-from='#{gitignore_path}'" : ""
280
+
281
+
282
+ # Check and create the versions directory on the server
283
+ `ssh #{user}@#{host} 'mkdir -p #{versions_directory}'`
284
+ `ssh #{user}@#{host} 'mkdir -p #{data_directory}'`
285
+
286
+ # Rsync files to the new version directory, excluding files as per .gitignore
287
+ rsync_command = "rsync -avz #{exclude_option} ./ #{user}@#{host}:#{destination_path}"
288
+
289
+ if `#{rsync_command}`
290
+ puts "Successfully deployed application version #{version} to #{host}"
291
+ deployed(local_manifest_path, version)
292
+ else
293
+ puts "Failed to deploy application version #{version} to #{host}"
294
+ end
295
+
296
+ else
209
297
  puts "no manifest found!"
210
- return
211
298
  end
212
299
 
213
- package
214
-
215
- config = load_configuration
216
- host = config["host"]
217
- user = config["user"]
218
- raise "Host configuration missing" unless host
219
-
220
- local_manifest_path = File.join(Dir.pwd, "config", "manifest.yml")
221
- raise "Local manifest file not found at #{local_manifest_path}" unless File.exist?(local_manifest_path)
222
-
223
- local_config = YAML.load_file(local_manifest_path) || {}
224
- version = local_config["version"].to_i
225
- raise "Version not specified in manifest.yml" unless version
226
-
227
- basename = File.basename(Dir.pwd)
228
- base_directory = "/var/harbr/containers/#{basename}"
229
- versions_directory = "#{base_directory}/versions"
230
- data_directory = "/var/dddr/#{basename}/"
231
- destination_path = "#{versions_directory}/#{version}"
232
- # Prepare the rsync exclude option using .gitignore
233
- gitignore_path = File.join(Dir.pwd, ".gitignore")
234
- exclude_option = File.exist?(gitignore_path) ? "--exclude='.git' --exclude-from='#{gitignore_path}'" : ""
235
-
236
-
237
- # Check and create the versions directory on the server
238
- `ssh #{user}@#{host} 'mkdir -p #{versions_directory}'`
239
- `ssh #{user}@#{host} 'mkdir -p #{data_directory}'`
240
-
241
- # Rsync files to the new version directory, excluding files as per .gitignore
242
- rsync_command = "rsync -avz #{exclude_option} ./ #{user}@#{host}:#{destination_path}"
243
-
244
- if `#{rsync_command}`
245
- puts "Successfully deployed application version #{version} to #{host}"
246
- deployed(local_manifest_path, version)
247
- else
248
- puts "Failed to deploy application version #{version} to #{host}"
249
- end
250
- rescue => e
251
- puts "Deployment error: #{e.message}"
252
300
  end
253
301
 
254
302
  desc "logs", "Show logs for a container"
@@ -265,7 +313,8 @@ class LbhrrCLI < Thor
265
313
  return
266
314
  end
267
315
 
268
- container_name = File.basename(Dir.pwd)
316
+ container_name = config["name"]
317
+
269
318
  else
270
319
  container_name = name
271
320
  end
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.23"
4
+ VERSION = "1.0.26"
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lbhrr
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.23
4
+ version: 1.0.26
5
5
  platform: ruby
6
6
  authors:
7
7
  - Delaney Kuldvee Burke