Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- @gems_installed_list = `sudo gem list`
- begin
- @gems_to_install_list = File.open(ARGV.first)
- rescue
- puts "usage: ruby sync_gems.rb your_file_with_gems_list"
- exit 1
- end
- def gem_versions(gem_string)
- if(releases = gem_string.match(/\((.*)\)/)[1])
- releases.split(",").each {|r| r.strip!}
- end
- end
- def gem_name(gem_string)
- gem_string.match(/(.*)\s\(/)[1]
- end
- def gem_exist?(name, version)
- @gems_installed_list.each do |gem_string|
- return true if gem_name(gem_string) == name && gem_versions(gem_string).include?(version)
- end
- false
- end
- # begin
- @gems_to_install_list.each do |gem_string|
- gem_versions(gem_string).each do |version|
- name = gem_name(gem_string)
- if !gem_exist?(name, version)
- puts "Installing: #{name} version #{version}"
- puts `sudo gem install #{name} -v=#{version} --no-rdoc --no-ri`
- else
- puts "skipping #{name} version #{version}, because it is already installed"
- end
- end
- end
Add Comment
Please, Sign In to add comment