class Dip::Command

Public Class Methods

exec_program(*args, **kwargs) click to toggle source
# File lib/dip/command.rb, line 29
def exec_program(*args, **kwargs)
  run(ProgramRunner, *args, **kwargs)
end
exec_subprocess(*args, **kwargs) click to toggle source
# File lib/dip/command.rb, line 33
def exec_subprocess(*args, **kwargs)
  run(SubprocessRunner, *args, **kwargs)
end

Private Class Methods

run(runner, cmd, argv = [], shell: true, **options) click to toggle source
# File lib/dip/command.rb, line 39
def run(runner, cmd, argv = [], shell: true, **options)
  cmd = Dip.env.interpolate(cmd)
  argv = [argv] if argv.is_a?(String)
  argv = argv.map { |arg| Dip.env.interpolate(arg) }
  cmdline = [cmd, *argv].compact
  cmdline = cmdline.join(" ").strip if shell

  puts [Dip.env.vars, cmdline].inspect if Dip.debug?

  runner.call(cmdline, env: Dip.env.vars, **options)
end