lib/poolparty/pool/resources/gem_package.rb in auser-poolparty-0.2.37 vs lib/poolparty/pool/resources/gem_package.rb in auser-poolparty-0.2.38

- old
+ new

@@ -8,21 +8,26 @@ # the package details (version and name) # # TODO: Add it so that it tries to pull the gem off the master fileserver first... def loaded(opts={}, parent=self) if download_url + + execute_on_master do + has_exec(:name => "download-#{name}", :cwd => Base.remote_storage_path, :command => "wget #{download_url} -O #{name}.gem", :ifnot => "test -f #{Base.remote_storage_path}/#{name}.gem") + end - has_file(:name => "#{Base.remote_storage_path}/#{name}.gem", :source => "#{Base.fileserver_base}/#{name}.gem") - - execute_if("$hostname", "master") do - has_exec(:name => "download-#{name}", :cwd => Base.remote_storage_path, :command => "wget #{download_url} -O #{name}.gem", :ifnot => "test -f #{Base.remote_storage_path}/#{name}.gem", :notify => get_file("#{Base.remote_storage_path}/#{name}.gem")) - end - - has_exec(opts.merge({:name => "#{name}", :cwd =>"#{Base.remote_storage_path}", :path => "/bin:/usr/bin:/usr/local/bin:/sbin:/usr/sbin:/var/lib/gems/1.8/bin"})) do + has_file({ + :name => "#{Base.remote_storage_path}/#{name}.gem", + :source => "#{Base.fileserver_base}/#{name}.gem", + :requires => get_host("master") + }) + + has_exec(opts.merge({:name => "#{name}", :cwd =>"#{Base.remote_storage_path}"})) do command "gem install -y --no-ri --no-rdoc #{Base.remote_storage_path}/#{name}.gem" ifnot "gem list --local #{name} | grep #{name} #{"| grep #{version}" if version}" requires get_file("#{Base.remote_storage_path}/#{name}.gem") end + else has_exec(opts.merge({:name => "#{name}", :cwd => "/tmp", :path => "/bin:/usr/bin:/usr/local/bin:/sbin:/usr/sbin:/var/lib/gems/1.8/bin"})) do command "gem install -y --no-ri --no-rdoc #{"--version #{version}" if version} #{"--source #{source}" if source} #{name} <<heredoc 1 heredoc" \ No newline at end of file