prick 0.20.18 → 0.20.19

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: 69e1bed1482431efd5f5e449ba9d2b3d5cccfef223398e51879aeda7374fd6e1
4
- data.tar.gz: 99984a969cb456c6efbf4943f56433d1c207246dfc615956fbd550511c30bfee
3
+ metadata.gz: 523f3f63b46850833fd679103f6a2ed389fee673376be4ffd54ab85ed76e9dfb
4
+ data.tar.gz: 58d881d1e9a5ebaea7b16caf35fc7d34670a6fa7f1a404357463f3dbbb73e81c
5
5
  SHA512:
6
- metadata.gz: 7359ccc4a5da931531579431375e94007d7b7c66dc128c1a15c26fce5aa8b206b2ed89b33e9d15054c49f4dc64b61a31ea5647e387c219f5fdd1f0a7eed1fe25
7
- data.tar.gz: 3713cb328f4aea15e7ac67d0e40dd7d1ae07e31528368aaf24d634fcd6ffbb91c2b512764a2c82cd01abe7c9aa191c784332196ba9b0f8232c5f4fe5a2b56fff
6
+ metadata.gz: c5f95a314a5dbaddef93d4e184ed5c10c35118b6e29f8ac8111589e4e79031dc83f254345853da84591edb9b511c5eab299dfa6716dc8db91b70361fe56ada12
7
+ data.tar.gz: '08eef7aaeea483bd45956898d290d69bb2859d41caafcc2ea64ce45bd9c2edd348a0cb003ba76054192e078fae3cf325c009ddb271d5d9e863915eb8eed95fe7'
@@ -76,31 +76,39 @@ module Prick
76
76
  unit
77
77
  end
78
78
 
79
+ def parse_file_entry(dir, entry)
80
+ name = entry.dup
81
+ name.sub!(/\$ENVIRONMENT/, Prick.state.environment.to_s)
82
+ name.sub!(/\/$/, "")
83
+ if name =~ /^(\S+)\s+(.*)$/ # exe
84
+ file = $1
85
+ args = $2
86
+ else
87
+ file = name
88
+ end
89
+ path = "#{dir}/#{file}"
90
+ [path, name, file, args]
91
+ end
92
+
79
93
  def parse_entry(unit, phase, dir, entry)
80
94
  if entry.is_a?(Hash)
81
95
  entry.size == 1 or raise Error, "sql and module are single-line values"
82
96
  key, value = entry.first
83
97
  case key
84
98
  when "sql"; InlineNode.new(unit, phase, unit.path, value)
85
- when "call";
99
+ when "call"
86
100
  args = value.split(/\s+/)
87
101
  args.size >= 3 or raise "Illegal number of arguments: #{value}"
88
102
  file, klass, command, args = *args
89
103
  ModuleNode.new(unit, phase, "#{dir}/#{file}", klass, command, args)
104
+ when "exec"
105
+ path, name, file, args = parse_file_entry(dir, value)
106
+ ExeNode.new(unit, phase, path, args)
90
107
  else
91
108
  raise Error, "Illegal key: #{key}"
92
109
  end
93
110
  else
94
- name = entry
95
- name.sub!(/\$ENVIRONMENT/, Prick.state.environment.to_s)
96
- name.sub!(/\/$/, "")
97
- if name =~ /^(\S+)\s+(.*)$/ # exe
98
- file = $1
99
- args = $2
100
- else
101
- file = name
102
- end
103
- path = "#{dir}/#{file}"
111
+ path, name, file, args = parse_file_entry(dir, entry)
104
112
  if File.directory? path
105
113
  parse_directory(unit, path)
106
114
  elsif File.executable? path
data/lib/prick/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Prick
4
- VERSION = "0.20.18"
4
+ VERSION = "0.20.19"
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: prick
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.20.18
4
+ version: 0.20.19
5
5
  platform: ruby
6
6
  authors:
7
7
  - Claus Rasmussen