lib/fdlcap/recipes/geminstaller.rb in fdlcap-0.3.29 vs lib/fdlcap/recipes/geminstaller.rb in fdlcap-0.3.30

- old
+ new

@@ -1,9 +1,10 @@ Capistrano::Configuration.instance(:must_exist).load do define_recipe :geminstaller do |*sources| - gem_sources = sources || ['http://gems.github.com', 'http://gemcutter.org'] - set :gem_sources, gem_sources.flatten unless exists?(:gem_sources) && !gem_sources.empty? + DEFAULT_GEM_SOURCES = ['http://gems.github.com', 'http://gemcutter.org'] + + set :gem_sources, (sources + DEFAULT_GEM_SOURCES).flatten unless exists?(:gem_sources) # # Tasks # namespace :geminstaller do @@ -43,21 +44,23 @@ add gem sources to server DESC task :source_gem_servers, :only => { :geminstaller => true } do as = fetch(:runner, "app") via = fetch(:run_method, :sudo) + + puts "Checking gem sources => #{gem_sources.inspect}" gem_sources.each do |source| puts source - unless check("gem source | grep '#{source}' = '#{source}'", :via => via, :as => as) - invoke_command "gem source -a #{source}", :via => via, :as => as + unless check("gem source | grep -q '#{source}'", :via => via, :as => as, :check_exit_code => true) + sudo "gem source -a #{source}" end end end # # Callbacks # - before "deploy:check", "geminstaller:add_remote_gem_dependencies" + before "deploy:check", "geminstaller:add_remote_gem_dependencies" after "deploy:setup", "geminstaller:install" after "geminstaller:install", "geminstaller:run" after "deploy:update", "geminstaller:run" before "geminstaller:install", "geminstaller:source_gem_servers"