Sha256: 9a9d15f1ff8bd07fafd345f9bcab0feee948c8e60c89a22bd044cbae2f8aeb25

Contents?: true

Size: 563 Bytes

Versions: 77

Compression:

Stored size: 563 Bytes

Contents

require "open3"

module J1
  module Utils
    module Exec
      extend self

      # Runs a program in a sub-shell.
      #
      # *args - a list of strings containing the program name and arguments
      #
      # Returns a Process::Status and a String of output in an array in
      # that order.
      def run(*args)
        stdin, stdout, stderr, process = Open3.popen3(*args)
        out = stdout.read.strip
        err = stderr.read.strip

        [stdin, stdout, stderr].each(&:close)
        [process.value, out + ';' + err]
      end

    end
  end
end

Version data entries

77 entries across 77 versions & 1 rubygems

Version Path
j1-template-2022.0.16 lib/j1/utils/exec.rb
j1-template-2022.0.15 lib/j1/utils/exec.rb
j1-template-2022.0.14 lib/j1/utils/exec.rb
j1-template-2022.0.13 lib/j1/utils/exec.rb
j1-template-2022.0.12 lib/j1/utils/exec.rb
j1-template-2022.0.11 lib/j1/utils/exec.rb
j1-template-2022.0.10 lib/j1/utils/exec.rb
j1-template-2022.0.9 lib/j1/utils/exec.rb
j1-template-2022.0.8 lib/j1/utils/exec.rb
j1-template-2022.0.7 lib/j1/utils/exec.rb
j1-template-2022.0.6 lib/j1/utils/exec.rb
j1-template-2022.0.5 lib/j1/utils/exec.rb
j1-template-2022.0.4 lib/j1/utils/exec.rb
j1-template-2022.0.3 lib/j1/utils/exec.rb
j1-template-2022.0.2 lib/j1/utils/exec.rb
j1-template-2022.0.1 lib/j1/utils/exec.rb
j1-template-2022.0.0 lib/j1/utils/exec.rb
j1-template-2021.3.2 lib/j1/utils/exec.rb
j1-template-2021.3.1 lib/j1/utils/exec.rb
j1-template-2021.3.0 lib/j1/utils/exec.rb