babl 0.2.1 → 0.3.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/babl.gemspec +1 -1
- data/lib/babl.rb +18 -2
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: dad0780e3615faf400bb040e77a053f95d7370ea
|
4
|
+
data.tar.gz: 332493673f1010d1958eea612c533b84bf0ec406
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5432db3afa5357ff9cbc8bc8d22aeb0333e998c92910ac926e0ce283c5f08e982bcaa3213ac30b80c63b7d0434483c9b6fde949c3948ec57392d3d777b9b564b
|
7
|
+
data.tar.gz: 3cd23dcbd28df573c1e6c10c515d8897f4bb0962b740584682211808581b1f7e5c1aabfffa0c8428be599a284909e43d4ab7a50b02499ae87f31938aa71fd20b
|
data/babl.gemspec
CHANGED
data/lib/babl.rb
CHANGED
@@ -3,6 +3,16 @@ require 'base64'
|
|
3
3
|
|
4
4
|
|
5
5
|
module Babl
|
6
|
+
class ModuleError < StandardError
|
7
|
+
attr_reader :stdout, :stderr, :exitcode
|
8
|
+
|
9
|
+
def initialize opts = {}
|
10
|
+
@stdout = opts[:stdout]
|
11
|
+
@stderr = opts[:stderr]
|
12
|
+
@exitcode = opts[:exitcode]
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
6
16
|
def self.bin_path
|
7
17
|
system = `which babl-rpc`.strip
|
8
18
|
if system.empty?
|
@@ -24,7 +34,7 @@ module Babl
|
|
24
34
|
@client ||= Quartz::Client.new(bin_path: bin_path)
|
25
35
|
end
|
26
36
|
|
27
|
-
def self.module name, opts = {}
|
37
|
+
def self.module! name, opts = {}
|
28
38
|
params = {'Name' => name}
|
29
39
|
if opts[:in]
|
30
40
|
params['Stdin'] = Base64.encode64(opts[:in]).strip
|
@@ -33,6 +43,12 @@ module Babl
|
|
33
43
|
params['Env'] = opts[:env].inject({}) { |h, (k,v)| h[k.to_s] = v; h }
|
34
44
|
end
|
35
45
|
res = client[:babl].call('Module', params)
|
36
|
-
Base64.decode64(res["Stdout"])
|
46
|
+
stdout = Base64.decode64(res["Stdout"]).strip
|
47
|
+
exitcode = res['Exitcode']
|
48
|
+
if exitcode != 0
|
49
|
+
stderr = Base64.decode64(res["Stderr"]).strip
|
50
|
+
raise ModuleError.new(stdout: stdout, stderr: stderr, exitcode: exitcode), "Module execution failed with exitcode #{exitcode}"
|
51
|
+
end
|
52
|
+
stdout
|
37
53
|
end
|
38
54
|
end
|