prick 0.36.0 → 0.37.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/exe/prick +20 -0
- data/lib/prick/builder/node.rb +0 -2
- data/lib/prick/builder/parser.rb +9 -5
- data/lib/prick/constants.rb +6 -0
- data/lib/prick/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: aa15e8c866ef97ee0ba04de08ca05ea38b5cf47d6cb156e09be24d3e10a0c8d5
|
4
|
+
data.tar.gz: 550a8f65c73c1148fa8f9359dbfb7299d0ae2ca4c8acfc3aea7c82f7254c399f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0b6ccea7c28cb6068597899dc8f740629fc7e3d26d7457a06c7c0e76abca1987cf63e422f2be482300c8b44474e0cda941510c1e97653ec4af064c57bb79eea4
|
7
|
+
data.tar.gz: 2e2685d9b25938dc291204eaa7735a167cbd7014219678dddb86ed6e02aa90c960de3aaf8e79fbe64becfff198d435c5ad05aa1657856ce1e1ea5bacee1de9d2
|
data/exe/prick
CHANGED
@@ -157,6 +157,9 @@ SPEC = %(
|
|
157
157
|
used by 'drop data' to reset data to the point in time of the snapshot.
|
158
158
|
Only one snapshot can be created at a time
|
159
159
|
|
160
|
+
reset!
|
161
|
+
Restore database to the last snapshot. TODO
|
162
|
+
|
160
163
|
version!
|
161
164
|
Print project version
|
162
165
|
|
@@ -229,6 +232,10 @@ def require_db(database = Prick.state&.database, exist: true)
|
|
229
232
|
end
|
230
233
|
end
|
231
234
|
|
235
|
+
def clean_pg_meta_cache
|
236
|
+
FileUtils.rm_f(PG_META_STATE_PATH)
|
237
|
+
end
|
238
|
+
|
232
239
|
def parse_database_args(state, args)
|
233
240
|
arg, environment = args.expect(0..2)
|
234
241
|
if arg
|
@@ -308,6 +315,7 @@ begin
|
|
308
315
|
puts "#{Prick.state.name}-#{Prick.state.version}"
|
309
316
|
|
310
317
|
when :setup!
|
318
|
+
clean_pg_meta_cache
|
311
319
|
state.project_loaded? or Prick.error "No #{project_file} found"
|
312
320
|
username, database, environment = parse_database_args(state, args)
|
313
321
|
require_db(database, exist: false)
|
@@ -315,6 +323,7 @@ begin
|
|
315
323
|
|
316
324
|
# FIXME Ensure that we never drop the current user
|
317
325
|
when :teardown!
|
326
|
+
clean_pg_meta_cache
|
318
327
|
if args.empty?
|
319
328
|
Prick::SubCommand.teardown(database, remove_state_file: true)
|
320
329
|
else
|
@@ -331,11 +340,13 @@ begin
|
|
331
340
|
end
|
332
341
|
|
333
342
|
when :set!
|
343
|
+
clean_pg_meta_cache
|
334
344
|
variable, *args = args.expect(1..3)
|
335
345
|
require_db(database) if variable == "duration"
|
336
346
|
Prick::SubCommand.set(variable, *args) or error "Illegal variable name '#{variable}'"
|
337
347
|
|
338
348
|
when :clean!
|
349
|
+
clean_pg_meta_cache
|
339
350
|
database = args.expect(0..1) || database
|
340
351
|
require_db(database)
|
341
352
|
Prick::SubCommand.clean(database)
|
@@ -344,10 +355,12 @@ begin
|
|
344
355
|
create_command = opts.create! # Because we need easy access to subcommand options
|
345
356
|
case create_command.subcommand
|
346
357
|
when :database!
|
358
|
+
clean_pg_meta_cache
|
347
359
|
database, username, environment = parse_database_args(state, args)
|
348
360
|
require_db(database, exist: false)
|
349
361
|
Prick::SubCommand.create_database(database, username, environment)
|
350
362
|
when :migration!
|
363
|
+
# clean_pg_meta_cache # FIXME ?
|
351
364
|
require_db
|
352
365
|
arg = args.expect(1)
|
353
366
|
version = PrickVersion.try(arg) or Prick.error "Illegal version: #{arg}"
|
@@ -363,6 +376,7 @@ begin
|
|
363
376
|
|
364
377
|
when :build!
|
365
378
|
require_db
|
379
|
+
clean_pg_meta_cache
|
366
380
|
dump = cmd.dump? ? cmd.dump("batches")&.to_sym || :batches : nil
|
367
381
|
# exclude = cmd.exclude? ? cmd.exclude.split(",") : []
|
368
382
|
Prick::SubCommand.build(
|
@@ -371,6 +385,7 @@ begin
|
|
371
385
|
|
372
386
|
when :make!
|
373
387
|
require_db
|
388
|
+
clean_pg_meta_cache
|
374
389
|
dump = cmd.dump? ? cmd.dump("batches")&.to_sym || :batches : nil
|
375
390
|
Prick::SubCommand.make(
|
376
391
|
database, username, args.expect(0..1),
|
@@ -378,6 +393,7 @@ begin
|
|
378
393
|
|
379
394
|
when :run!
|
380
395
|
require_db
|
396
|
+
clean_pg_meta_cache
|
381
397
|
dump = cmd.dump? ? cmd.dump("batches")&.to_sym || :batches : nil
|
382
398
|
Prick::SubCommand.run(
|
383
399
|
database, username, args.expect(1),
|
@@ -385,6 +401,7 @@ begin
|
|
385
401
|
|
386
402
|
when :bash!
|
387
403
|
args.expect(0)
|
404
|
+
clean_pg_meta_cache
|
388
405
|
Prick::SubCommand.bash(main: cmd.main?)
|
389
406
|
|
390
407
|
when :fox!
|
@@ -408,6 +425,7 @@ begin
|
|
408
425
|
owner = args.expect(0..1) || username
|
409
426
|
Prick::SubCommand.drop_owner(owner)
|
410
427
|
when :database!
|
428
|
+
clean_pg_meta_cache
|
411
429
|
database = args.expect(0..1) || database
|
412
430
|
Prick::SubCommand.drop_database(database)
|
413
431
|
when :data!
|
@@ -416,6 +434,7 @@ begin
|
|
416
434
|
Prick::SubCommand.drop_data(database)
|
417
435
|
when :schema!
|
418
436
|
require_db
|
437
|
+
clean_pg_meta_cache
|
419
438
|
schemas = args.to_a
|
420
439
|
Prick::SubCommand.drop_schema(database, schemas)
|
421
440
|
else
|
@@ -430,6 +449,7 @@ begin
|
|
430
449
|
|
431
450
|
when :migrate!
|
432
451
|
require_db
|
452
|
+
# clean_pg_meta_cache # FIXME ?
|
433
453
|
args.expect(0)
|
434
454
|
Prick::SubCommand.migrate(database, username, file: cmd.file)
|
435
455
|
|
data/lib/prick/builder/node.rb
CHANGED
data/lib/prick/builder/parser.rb
CHANGED
@@ -98,6 +98,7 @@ module Prick
|
|
98
98
|
# value is returned
|
99
99
|
def parse_file_entry(unit, dir, entry)
|
100
100
|
entry = entry.sub(/\/$/, "")
|
101
|
+
# puts "#parse_file_entry(#{unit.path.inspect}, #{dir.inspect}, #{entry.inspect})"
|
101
102
|
if entry =~ /^(\S+?)(\?)?(?:\s+(.+))?\s*$/
|
102
103
|
command = $1
|
103
104
|
optional = !$2.nil?
|
@@ -141,7 +142,7 @@ module Prick
|
|
141
142
|
(path, args = parse_file_entry(unit, dir, entry)) or return nil
|
142
143
|
if File.directory? path
|
143
144
|
parse_directory(unit, path)
|
144
|
-
elsif File.executable?
|
145
|
+
elsif File.executable?(path)
|
145
146
|
ExecNode.new(unit, phase, path, args)
|
146
147
|
elsif File.file? path
|
147
148
|
case path
|
@@ -166,10 +167,13 @@ module Prick
|
|
166
167
|
#
|
167
168
|
# Note that "." is ignored in the search path
|
168
169
|
def find_executable(filename) # ChatGPT
|
169
|
-
|
170
|
-
|
171
|
-
|
172
|
-
|
170
|
+
# puts "#find_executable(#{filename.inspect})"
|
171
|
+
if !Prick.state.environments.key?(filename) # Environment names are reserved
|
172
|
+
Prick.state.executable_search_path.split(File::PATH_SEPARATOR).each do |directory|
|
173
|
+
next if directory == "."
|
174
|
+
path = File.join(directory, filename)
|
175
|
+
return path if File.file?(path) && File.executable?(path)
|
176
|
+
end
|
173
177
|
end
|
174
178
|
nil
|
175
179
|
end
|
data/lib/prick/constants.rb
CHANGED
@@ -40,6 +40,8 @@ module Prick
|
|
40
40
|
PRICK_ENVIRONMENT_FILE = "prick.environment.yml"
|
41
41
|
PRICK_ENVIRONMENT_PATH = PRICK_ENVIRONMENT_FILE
|
42
42
|
|
43
|
+
# TODO: Move to var/cache
|
44
|
+
|
43
45
|
# State file
|
44
46
|
PRICK_STATE_FILE = ".prick.state.yml"
|
45
47
|
PRICK_STATE_PATH = PRICK_STATE_FILE
|
@@ -48,6 +50,10 @@ module Prick
|
|
48
50
|
FOX_STATE_FILE = ".fox-state.yml"
|
49
51
|
FOX_STATE_PATH = FOX_STATE_FILE
|
50
52
|
|
53
|
+
# PgMeta snapshot. Is deleted at the start of each build
|
54
|
+
PG_META_STATE_FILE = ".pg_meta-state.yml"
|
55
|
+
PG_META_STATE_PATH = PG_META_STATE_FILE
|
56
|
+
|
51
57
|
# Reflections file
|
52
58
|
REFLECTIONS_FILE = "reflections.yml"
|
53
59
|
REFLECTIONS_PATH = File.join(SCHEMA_DIR, REFLECTIONS_FILE)
|
data/lib/prick/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: prick
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.37.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Claus Rasmussen
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-05-
|
11
|
+
date: 2024-05-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: semantic
|