runtime_command 1.0.2 → 1.0.3

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
  SHA1:
3
- metadata.gz: 4acfdf8648af8a1fca15a5d77e385db6c3c734af
4
- data.tar.gz: 41113e55413d7a6878b57045e2d846f52e94ab5b
3
+ metadata.gz: f8e242795477317ba019e209a85a6ab44af589ae
4
+ data.tar.gz: 3a0fcbcd6a519ee5f15c38860b6b8dc0bc1db1ac
5
5
  SHA512:
6
- metadata.gz: 17afa77baaacc6e4e9e962f78fee8fef7a2c93dc48c9a72957a062e7da2c65383a8210cc211acc13379e49799da6e36949a126c2745292ed9826353c3a200369
7
- data.tar.gz: a8bc40057ee9bce2c4c4d53ed645ac78427786ddcbd375b96715a0a8e68579089de4ac85408f538568927ef457c4747fb976dfa3855591a6688bd2d20dcbf644
6
+ metadata.gz: b0189a198f5d1f0adef08e7b776427d445a33bb30b2919fdd8d1c99fe9d1f2dba3f3fe8f4e7d2d956883cbb008a7dc6bbd1b925d59bb68b0dcd50d022c200f98
7
+ data.tar.gz: 7320be85b803f7124d623745b8903555fd1eafe28c00025ecc3ad5e3b938379a25559e2bc3ca3a3322bcf2cc0d12534044ca7a8701a2240997dafe5129c5d03b
@@ -25,7 +25,7 @@ module RuntimeCommand
25
25
  logger = Logger.new(@output, @colors)
26
26
  logger.stdin(@stdin_prefix + ' ' + command)
27
27
 
28
- begin
28
+ invoke_command(logger) do
29
29
  Open3.popen3(command, chdir: chdir) do |stdin, stdout, stderr|
30
30
  stdin.close
31
31
 
@@ -37,13 +37,28 @@ module RuntimeCommand
37
37
  logger.stderr(message)
38
38
  end
39
39
  end
40
+ end
40
41
 
41
- rescue Interrupt
42
- logger.stderr('Interrupt error')
43
- rescue => e
44
- logger.stderr(e.to_s)
45
- ensure
46
- @buffered_log << logger.buffered_log
42
+ logger
43
+ end
44
+
45
+ # @param [String] command
46
+ # @param [String] chdir
47
+ # @return [RuntimeCommand::Logger]
48
+ def exec_capture(command, chdir = nil)
49
+ chdir ||= @base_dir
50
+
51
+ logger = Logger.new(@output, @colors)
52
+ invoke_command(logger) do
53
+ stdout, stderr = Open3.capture3(command, chdir: chdir)
54
+
55
+ unless stdout.empty?
56
+ logger.stdout(stdout)
57
+ end
58
+
59
+ unless stderr.empty?
60
+ logger.stderr(stderr)
61
+ end
47
62
  end
48
63
 
49
64
  logger
@@ -68,5 +83,22 @@ module RuntimeCommand
68
83
  @buffered_log << logger.buffered_log + "\n"
69
84
  logger
70
85
  end
86
+
87
+ private
88
+
89
+ # @param [RuntimeCommand::Logger] logger
90
+ def invoke_command(logger)
91
+ begin
92
+ yield
93
+ rescue Interrupt
94
+ logger.stderr('Interrupt error')
95
+ rescue => e
96
+ logger.stderr(e.to_s)
97
+ ensure
98
+ @buffered_log << logger.buffered_log
99
+ end
100
+
101
+ nil
102
+ end
71
103
  end
72
104
  end
@@ -1,3 +1,3 @@
1
1
  module RuntimeCommand
2
- VERSION = '1.0.2'.freeze
2
+ VERSION = '1.0.3'.freeze
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: runtime_command
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.2
4
+ version: 1.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - naomichi-y
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-03-23 00:00:00.000000000 Z
11
+ date: 2017-03-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: highline