pipa 0.1.1 → 0.2.0
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/bin/pipa +1 -1
- data/lib/pipa.rb +25 -8
- metadata +29 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 739e80022d97ef80911bf04e812d0c62d83ce610
|
4
|
+
data.tar.gz: c597038968f7cc7089f79bf974e0b48a2687c331
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: fc7c054e93523e26813e58e94e6953170c814c6738b2faa0fbe8499fa5c489eb3f28ddb3c6474fb9f1922ab640d05eea7772388b27e16caa98e7786de098175a
|
7
|
+
data.tar.gz: 304bfc233259407a08d984b3db52c6f617e243bacb0e4a35b8c0fd9e151192165ed7c18c872aeca7db0a9973179c9cae45fa5d2177300be877ce93eff4707794
|
data/bin/pipa
CHANGED
data/lib/pipa.rb
CHANGED
@@ -60,6 +60,8 @@ class Pipa
|
|
60
60
|
end
|
61
61
|
|
62
62
|
def execute_stage(stage)
|
63
|
+
log_info "Executing #{stage}."
|
64
|
+
|
63
65
|
@threads << Thread.new do
|
64
66
|
t = Time.now
|
65
67
|
|
@@ -76,8 +78,9 @@ class Pipa
|
|
76
78
|
|
77
79
|
Open3.popen2e("bash", "-e", "-c", #{@stages[stage][mode].dump}) do |stdin, stdout_err, wait_thr|
|
78
80
|
ret = ""
|
79
|
-
while line = stdout_err.
|
81
|
+
while line = stdout_err.readpartial(4096) rescue nil
|
80
82
|
print line
|
83
|
+
$stdout.flush
|
81
84
|
ret += line
|
82
85
|
end
|
83
86
|
|
@@ -93,9 +96,14 @@ class Pipa
|
|
93
96
|
when "ruby"
|
94
97
|
["ruby", "-e", %Q(
|
95
98
|
require 'json'
|
99
|
+
def ___deserialize(val)
|
100
|
+
JSON.parse("[\#{val}]")[0]
|
101
|
+
end
|
96
102
|
#{@stages[stage][mode]};
|
97
|
-
|
98
|
-
|
103
|
+
___n_args = method(:main).arity
|
104
|
+
___input = [#{input}]
|
105
|
+
___input = ___input.take(___n_args) if ___n_args >= 0
|
106
|
+
___ret = main(*___input)
|
99
107
|
___ret_fd = IO.open(3, 'w')
|
100
108
|
___ret_fd.write(___ret.to_json);
|
101
109
|
___ret_fd.close
|
@@ -122,16 +130,25 @@ class Pipa
|
|
122
130
|
@ret[stage] = ""
|
123
131
|
|
124
132
|
Open3.popen2e(*cmd, 3 => writer.fileno) do |stdin, stdout_err, wait_thr|
|
125
|
-
|
126
|
-
|
133
|
+
ret_thread = Thread.new do
|
134
|
+
while line = reader.readpartial(4096) rescue nil
|
135
|
+
@ret[stage] << line
|
136
|
+
end
|
137
|
+
reader.close
|
138
|
+
end
|
139
|
+
|
140
|
+
while line = stdout_err.readpartial(4096) rescue nil
|
141
|
+
print line
|
127
142
|
@log[stage] << line
|
128
143
|
end
|
129
144
|
|
145
|
+
exit_status = wait_thr.value
|
146
|
+
|
147
|
+
writer.close
|
148
|
+
ret_thread.join
|
149
|
+
|
130
150
|
exit_status = wait_thr.value
|
131
151
|
if exit_status.success?
|
132
|
-
writer.close
|
133
|
-
@ret[stage] = reader.read
|
134
|
-
reader.close
|
135
152
|
@executed.add(stage)
|
136
153
|
log_info "Stage '#{stage}' took #{Time.now - t}s."
|
137
154
|
else
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: pipa
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Miguel Cantón Cortés
|
@@ -24,6 +24,34 @@ dependencies:
|
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: 0.8.1
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: httpclient
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: 2.8.3
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: 2.8.3
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: json
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: 2.1.0
|
48
|
+
type: :runtime
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: 2.1.0
|
27
55
|
description: Define and execute pipelines
|
28
56
|
email: miwelc@gmail.com
|
29
57
|
executables:
|