Sha256: 3a0c87f805cbfb46524be220f9c9fc986dab332d582f2f14f75c845455907dbe

Contents?: true

Size: 1.12 KB

Versions: 2

Compression:

Stored size: 1.12 KB

Contents

use_inline_resources

def whyrun_supported?
  true
end

action :set do
  if @current_resource.exists
    Chef::Log.info "#{@new_resource} already exists - nothing to do."
  else
    execute "#{config_cmd} #{new_resource.key} \"#{new_resource.value}\"" do
      cwd new_resource.path
      user new_resource.user
      group new_resource.user
      environment cmd_env
      Chef::Log.info "#{@new_resource} created."
    end
  end
end

def initialize(*args)
  super

  @run_context.include_recipe 'git'
end

def load_current_resource
  @current_resource = Chef::Resource::GitConfig.new(@new_resource.name)
  @current_resource.exists = true if config == new_resource.value
end

def config_cmd
  "git config --#{new_resource.scope}"
end

def cmd_env
  new_resource.user ? { 'USER' => new_resource.user, 'HOME' => ::Dir.home(new_resource.user) } : nil
end

def config
  cmd = [config_cmd, new_resource.key].join(' ')
  git_config = Mixlib::ShellOut.new(cmd, user: new_resource.user, group: new_resource.user, cwd: new_resource.path, env: cmd_env)
  Chef::Log.debug("Current config cmd: #{git_config.inspect}")
  git_config.run_command.stdout.chomp
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
chef-12.11.18-universal-mingw32 acceptance/top-cookbooks/test_run/git/providers/config.rb
chef-12.11.18 acceptance/top-cookbooks/test_run/git/providers/config.rb