regolith 0.1.28 → 0.1.30
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/lib/regolith/cli.rb +43 -11
- data/lib/regolith/version.rb +1 -1
- 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: 25e890947b62730f38bc5ad78253819f5c7a52d9c604d8ff6167347282d70ca0
|
4
|
+
data.tar.gz: 85d0b5420d0eb830438011f9a3640c498746525735abfcc761475796c33a52c2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 74e5f7521b2ce9fcd73217dcf29dfd5f0af7200116883624cd9e6514cd0ca388acb24476e47ca2b249b16ba7860f8d644a0fdc1aedf7dd9fb1d6c8fbfa3b2292
|
7
|
+
data.tar.gz: 2630ddbfdf6a2ba082552f77d82d211234ba37e6644898f85c3aa6b08f22385ab2b27f64c41e33f835e1f56de2cefbad2fbf7c0d97e5a86b018cd00154dc17b4
|
data/lib/regolith/cli.rb
CHANGED
@@ -61,7 +61,7 @@ module Regolith
|
|
61
61
|
'infrastructure' => {
|
62
62
|
'database' => {
|
63
63
|
'type' => 'postgresql',
|
64
|
-
'
|
64
|
+
'base_port' => 5432
|
65
65
|
}
|
66
66
|
}
|
67
67
|
}
|
@@ -87,6 +87,7 @@ module Regolith
|
|
87
87
|
puts "🔧 Creating service '#{service_name}'..."
|
88
88
|
config = load_regolith_config
|
89
89
|
port = find_available_port(config)
|
90
|
+
db_port = find_available_port_for_db(config)
|
90
91
|
service_dir = "services/#{service_name}_service"
|
91
92
|
|
92
93
|
puts " → Generating Rails API app..."
|
@@ -167,6 +168,7 @@ module Regolith
|
|
167
168
|
|
168
169
|
config['services'][service_name] = {
|
169
170
|
'port' => port,
|
171
|
+
'db_port' => db_port,
|
170
172
|
'root' => "./#{service_dir}"
|
171
173
|
}
|
172
174
|
save_regolith_config(config)
|
@@ -174,6 +176,7 @@ module Regolith
|
|
174
176
|
|
175
177
|
puts "✅ Created service '#{service_name}'"
|
176
178
|
puts "🚀 Service running on port #{port}"
|
179
|
+
puts "🗄️ Database running on port #{db_port}"
|
177
180
|
puts "→ Next: regolith generate service <another_service> or regolith server"
|
178
181
|
end
|
179
182
|
|
@@ -195,7 +198,7 @@ module Regolith
|
|
195
198
|
|
196
199
|
loop do
|
197
200
|
if !used_ports.include?(port) && port_available?(port)
|
198
|
-
puts "🔌 Assigned port #{port}"
|
201
|
+
puts "🔌 Assigned service port #{port}"
|
199
202
|
return port
|
200
203
|
end
|
201
204
|
|
@@ -215,6 +218,32 @@ module Regolith
|
|
215
218
|
end
|
216
219
|
end
|
217
220
|
|
221
|
+
def find_available_port_for_db(config, starting_port = 5432)
|
222
|
+
used_db_ports = config['services'].values.map { |s| s['db_port'] }.compact
|
223
|
+
port = starting_port
|
224
|
+
|
225
|
+
loop do
|
226
|
+
if !used_db_ports.include?(port) && port_available?(port)
|
227
|
+
puts "🗄️ Assigned database port #{port}"
|
228
|
+
return port
|
229
|
+
end
|
230
|
+
|
231
|
+
if used_db_ports.include?(port)
|
232
|
+
puts "⚠️ Database port #{port} already used by another Regolith service"
|
233
|
+
else
|
234
|
+
puts "⚠️ Database port #{port} already in use by system"
|
235
|
+
end
|
236
|
+
|
237
|
+
port += 1
|
238
|
+
|
239
|
+
# Safety check for database ports
|
240
|
+
if port > 5450
|
241
|
+
puts "❌ Error: No available database ports found in range #{starting_port}-5450"
|
242
|
+
exit 1
|
243
|
+
end
|
244
|
+
end
|
245
|
+
end
|
246
|
+
|
218
247
|
# --- Helper to make Bootsnap optional ---
|
219
248
|
def make_bootsnap_optional(service_dir)
|
220
249
|
boot_rb_path = File.join(service_dir, "config", "boot.rb")
|
@@ -281,6 +310,7 @@ module Regolith
|
|
281
310
|
|
282
311
|
config['services'].each do |name, service|
|
283
312
|
puts "🚀 #{name}_service running at http://localhost:#{service['port']}"
|
313
|
+
puts "🗄️ #{name}_database running on port #{service['db_port']}"
|
284
314
|
end
|
285
315
|
|
286
316
|
puts "🧭 Service registry loaded from config/regolith.yml"
|
@@ -328,35 +358,37 @@ module Regolith
|
|
328
358
|
version: '3.8'
|
329
359
|
|
330
360
|
services:
|
331
|
-
|
361
|
+
<% services.each do |name, service| %>
|
362
|
+
<%= name %>_db:
|
332
363
|
image: postgres:14
|
333
364
|
environment:
|
334
|
-
POSTGRES_DB:
|
365
|
+
POSTGRES_DB: <%= name %>_development
|
335
366
|
POSTGRES_USER: postgres
|
336
367
|
POSTGRES_PASSWORD: password
|
337
368
|
ports:
|
338
|
-
- "5432
|
369
|
+
- "<%= service['db_port'] %>:5432"
|
339
370
|
volumes:
|
340
|
-
-
|
371
|
+
- <%= name %>_postgres_data:/var/lib/postgresql/data
|
341
372
|
|
342
|
-
<% services.each do |name, service| %>
|
343
373
|
<%= name %>:
|
344
374
|
build: <%= service['root'] %>
|
345
375
|
ports:
|
346
376
|
- "<%= service['port'] %>:3000"
|
347
377
|
depends_on:
|
348
|
-
-
|
378
|
+
- <%= name %>_db
|
349
379
|
environment:
|
350
|
-
DATABASE_URL:
|
380
|
+
DATABASE_URL: postgresql://postgres:password@<%= name %>_db:5432/<%= name %>_development
|
351
381
|
REGOLITH_SERVICE_NAME: <%= name %>
|
352
382
|
REGOLITH_SERVICE_PORT: <%= service['port'] %>
|
353
383
|
volumes:
|
354
384
|
- <%= service['root'] %>:/app
|
355
385
|
command: bash -c "rm -f tmp/pids/server.pid && bundle install && rails server -b 0.0.0.0"
|
356
|
-
<% end %>
|
357
386
|
|
387
|
+
<% end %>
|
358
388
|
volumes:
|
359
|
-
|
389
|
+
<% services.each do |name, service| %>
|
390
|
+
<%= name %>_postgres_data:
|
391
|
+
<% end %>
|
360
392
|
YAML
|
361
393
|
|
362
394
|
ERB.new(template).result(binding)
|
data/lib/regolith/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: regolith
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.30
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Regolith Team
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2025-08-
|
11
|
+
date: 2025-08-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|