Sha256: b32a1a56d24709fcfc321b301b81646d8f79b0a6feaa83bf0fdad94e3938e2f8

Contents?: true

Size: 712 Bytes

Versions: 3

Compression:

Stored size: 712 Bytes

Contents

module Nixenvironment
  class CmdExecutor
    @binary_name         = nil

    @last_cmd_success    = nil
    @last_cmd_exitstatus = nil

    def self.last_cmd_success?
      @last_cmd_success
    end

    def self.last_cmd_exitstatus
      @last_cmd_exitstatus
    end

    def self.execute(cmd, opts = [], silent = false)
      input  = "set -euo pipefail; #{@binary_name}"
      input << " #{cmd}" if cmd.present?
      input << " #{opts.join(' ')}" if opts.present?
      output = ''

      IO.popen(input).each do |line|
        puts line unless silent
        output << line
      end.close

      @last_cmd_success    = $?.success?
      @last_cmd_exitstatus = $?.exitstatus

      output
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
nixenvironment-0.0.144 lib/nixenvironment/cmd_executor.rb
nixenvironment-0.0.143 lib/nixenvironment/cmd_executor.rb
nixenvironment-0.0.142 lib/nixenvironment/cmd_executor.rb