class Chef::Provider::Execute

Public Instance Methods

define_resource_requirements() click to toggle source
# File lib/chef/provider/execute.rb, line 37
def define_resource_requirements
  if creates && creates_relative? && !cwd
    # FIXME? move this onto the resource?
    raise Chef::Exceptions::Execute, "Please either specify a full path for the creates property, or specify a cwd property to the #{new_resource} resource"
  end
end
load_current_resource() click to toggle source
# File lib/chef/provider/execute.rb, line 32
def load_current_resource
  current_resource = Chef::Resource::Execute.new(new_resource.name)
  current_resource
end

Private Instance Methods

creates_relative?() click to toggle source
# File lib/chef/provider/execute.rb, line 114
def creates_relative?
  Pathname(creates).relative?
end
description() click to toggle source
# File lib/chef/provider/execute.rb, line 110
def description
  sensitive? ? "sensitive resource" : command
end
live_stream?() click to toggle source
# File lib/chef/provider/execute.rb, line 75
def live_stream?
  Chef::Config[:stream_execute_output] || !!new_resource.live_stream
end
opts() click to toggle source
# File lib/chef/provider/execute.rb, line 83
def opts
  opts = {}
  opts[:timeout]     = timeout
  opts[:returns]     = returns if returns
  opts[:environment] = environment if environment
  opts[:user]        = user if user
  opts[:domain]      = domain if domain
  opts[:password]    = password if password
  opts[:group]       = group if group
  opts[:cwd]         = cwd if cwd
  opts[:umask]       = umask if umask
  opts[:input]       = input if input
  opts[:login]       = login if login
  opts[:default_env] = default_env
  opts[:log_level]   = :info
  opts[:log_tag]     = new_resource.to_s
  if (logger.info? || live_stream?) && !sensitive?
    if run_context.events.formatter?
      opts[:live_stream] = Chef::EventDispatch::EventsOutputStream.new(run_context.events, name: :execute)
    elsif stream_to_stdout?
      opts[:live_stream] = STDOUT
    end
  end
  opts[:elevated] = elevated if elevated
  opts
end
sensitive?() click to toggle source
# File lib/chef/provider/execute.rb, line 71
def sensitive?
  !!new_resource.sensitive
end
sentinel_file() click to toggle source
# File lib/chef/provider/execute.rb, line 118
def sentinel_file
  Pathname.new(Chef::Util::PathHelper.cleanpath(
    ( cwd && creates_relative? ) ? ::File.join(cwd, creates) : creates
  ))
end
stream_to_stdout?() click to toggle source
# File lib/chef/provider/execute.rb, line 79
def stream_to_stdout?
  STDOUT.tty? && !Chef::Config[:daemon]
end