Skip to content

Instantly share code, notes, and snippets.

@bleything
Created August 26, 2010 18:25
Show Gist options
  • Save bleything/551906 to your computer and use it in GitHub Desktop.
Save bleything/551906 to your computer and use it in GitHub Desktop.
require 'json'
namespace :databags do
desc "Update databags on server from disk"
task :push do
Dir[ 'data_bags/**/*json' ].each do |file|
bag = file.split('/')[1]
sh "knife data bag from file #{bag} #{file}"
end
end
desc "Update databags on disk from server"
task :pull do
databags = JSON.parse( `knife data bag list` )
databags.each do |db|
mkdir_p "data_bags/#{db}"
puts "** fetching data bag '#{db}'..."
items = JSON.parse( `knife data bag show #{db}` )
items.each do |item|
puts "*** fetching data bag item #{db}:#{item}"
File.open( "data_bags/#{db}/#{item}.json", 'w' ) do |f|
f.puts `knife data bag show #{db} #{item}`
end
end
end
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment