Skip to content

Instantly share code, notes, and snippets.

@jtimberman
Forked from danielsdeleo/gist:2920702
Created December 23, 2012 20:55
Show Gist options
  • Star 8 You must be signed in to star a gist
  • Fork 4 You must be signed in to fork a gist
  • Save jtimberman/4366061 to your computer and use it in GitHub Desktop.
Save jtimberman/4366061 to your computer and use it in GitHub Desktop.
#!/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