diff --git a/lib/foreman_maintain/utils/command_runner.rb b/lib/foreman_maintain/utils/command_runner.rb index 27a8ae19b..10ed2f041 100644 --- a/lib/foreman_maintain/utils/command_runner.rb +++ b/lib/foreman_maintain/utils/command_runner.rb @@ -8,8 +8,10 @@ class CommandRunner attr_reader :logger, :command def initialize(logger, command, options) - options.validate_options!(:stdin, :hidden_patterns, :interactive, :valid_exit_statuses) + options.validate_options!(:stdin, :hidden_patterns, :interactive, :valid_exit_statuses, + :env) options[:valid_exit_statuses] ||= [0] + options[:env] ||= {} @logger = logger @command = command @stdin = options[:stdin] @@ -17,6 +19,7 @@ def initialize(logger, command, options) @interactive = options[:interactive] @options = options @valid_exit_statuses = options[:valid_exit_statuses] + @env = options[:env] raise ArgumentError, 'Can not pass stdin for interactive command' if @interactive && @stdin end @@ -81,7 +84,7 @@ def run_interactively end def run_non_interactively - IO.popen(full_command, 'r+') do |f| + IO.popen(@env, full_command, 'r+') do |f| if @stdin f.puts(@stdin) f.close_write