module Gem2Rpm
Constants
- TEMPLATE
- VERSION
Public Class Methods
convert(fname, template=TEMPLATE, out=$stdout, nongem=true, local=false, doc_subpackage = true)
click to toggle source
# File lib/gem2rpm.rb, line 33 def Gem2Rpm.convert(fname, template=TEMPLATE, out=$stdout, nongem=true, local=false, doc_subpackage = true) package = Gem2Rpm::Package.new(fname) # Deprecate, kept just for backward compatibility. format = Gem2Rpm::Format.new(package) spec = Gem2Rpm::Specification.new(package.spec) spec.description ||= spec.summary download_path = "" unless local begin download_path = find_download_url(spec.name, spec.version) rescue DownloadUrlError => e $stderr.puts "Warning: Could not retrieve full URL for #{spec.name}\nWarning: Edit the specfile and enter the full download URL as 'Source0' manually" $stderr.puts e.inspect end end template = ERB.new(template, 0, '-') out.puts template.result(binding) rescue Gem::Exception => e puts e end
find_download_url(name, version)
click to toggle source
# File lib/gem2rpm.rb, line 15 def self.find_download_url(name, version) dep = Gem::Dependency.new(name, "=#{version}") fetcher = Gem2Rpm::SpecFetcher.new(Gem::SpecFetcher.fetcher) spec_and_source, errors = fetcher.spec_for_dependency(dep, false) raise DownloadUrlError.new(errors.first.error.message) unless errors.empty? spec, source = spec_and_source.first if source && source.uri download_path = source.uri.to_s download_path += "gems/" end download_path end
packager()
click to toggle source
Returns the email address of the packager (i.e., the person running gem2spec). Taken from RPM macros if present, constructed from system username and hostname otherwise.
# File lib/gem2rpm.rb, line 58 def Gem2Rpm.packager() packager = %xrpmdev-packager`.chomp rescue '' if packager.empty? packager = %xrpm --eval '%{packager}'`.chomp rescue '' end if packager.empty? or packager == '%{packager}' passwd_entry = Etc::getpwnam(Etc::getlogin) packager = "#{(passwd_entry && passwd_entry.gecos) || Etc::getlogin } <#{Etc::getlogin}@#{Socket::gethostname}>" end packager end
template_dir()
click to toggle source
# File lib/gem2rpm.rb, line 73 def Gem2Rpm.template_dir File.join(File.dirname(__FILE__), '..', 'templates') end