Skip to content

Instantly share code, notes, and snippets.

@acdimalev
Created March 25, 2010 10:56
Show Gist options
  • Save acdimalev/343420 to your computer and use it in GitHub Desktop.
Save acdimalev/343420 to your computer and use it in GitHub Desktop.
#!/bin/sh
# Usage: gemcopy [user@]hostname
ruby << LOCAL_RB | sudo sh
require 'rubygems'
specs = Gem.source_index.search ""
local_spec_tuples = specs.map do |spec|
[spec.name, spec.version.to_s]
end
remote_spec_tuples = `
ssh $1 ruby << REMOTE_RB
require 'rubygems'
dep = Gem::Dependency.new '', Gem::Requirement.default
specs = Gem.source_index.search dep
lines = []
specs.each do |spec|
lines.push("[\"#{spec.name}\", \"#{spec.version}\"]")
end
print "["+lines.join(', ')+"]"
REMOTE_RB
`
spec_tuples = remote_spec_tuples - local_spec_tuples
spec_tuples.each do |spec_tuple|
print "gem install --no-ri --no-rdoc #{spec_tuple[0]} -v #{spec_tuple[1]}\n"
end
LOCAL_RB
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment