Create a gist now

Instantly share code, notes, and snippets.

#!/usr/bin/env ruby
recipe_path = ARGV[0]
if recipe_path.nil?
STDERR.puts "usage: chef-apply RECIPE_FILE"
exit 1
end
recipe_path = File.expand_path(recipe_path)
if !File.exist?(recipe_path)
STDERR.puts "No file #{recipe_path}"
exit 1
end
require 'rubygems'
require 'chef/client'
require 'chef/providers'
require 'chef/resources'
Chef::Log.level = :info
class Chef::Client
attr_reader :events
end
# expedient.
Chef::Config[:solo] = true
client = Chef::Client.new
client.run_ohai
client.load_node
client.build_node
run_context = if client.events.nil?
Chef::RunContext.new(client.node, {})
else
Chef::RunContext.new(client.node, {}, client.events)
end
recipe = Chef::Recipe.new("(chef-apply cookbook)", "(chef-apply recipe)", run_context)
recipe.from_file(recipe_path)
runner = Chef::Runner.new(run_context)
runner.converge
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment