Module: Jekyll::LastModifiedAt::Executor

Extended by:
POSIX::Spawn
Defined in:
lib/jekyll-last-modified-at/executor.rb

Class Method Summary collapse

Class Method Details

.sh(*args) ⇒ Object


10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# File 'lib/jekyll-last-modified-at/executor.rb', line 10

def self.sh(*args)
  r, w = IO.pipe
  e, eo = IO.pipe
  pid = spawn(*args,
              :out => w, r => :close,
              :err => eo, e => :close)

  if pid.positive?
    w.close
    eo.close
    out = r.read
    err = e.read
    ::Process.waitpid(pid)
    "#{out} #{err}".strip if out
  end
ensure
  [r, w, e, eo].each do |io|
    begin
                             io.close
    rescue StandardError
      nil
                           end
  end
end