class Npmfed::RpmPackage
Attributes
name[RW]
npm_package[RW]
scl[RW]
Public Class Methods
new(name, npm_package, scl=false)
click to toggle source
# File lib/npmfed/rpm_package.rb, line 5 def initialize name, npm_package, scl=false @name = "nodejs-#{name}" @npm_package = npm_package @scl = scl end
Public Instance Methods
_provides(version)
click to toggle source
helper for provides
# File lib/npmfed/rpm_package.rb, line 92 def _provides version prv = Array.new v = version.split "." until v.empty? do prv << "npm(#{self.npmname}@#{v.join('.')})" v.pop end prv end
add_source(name)
click to toggle source
# File lib/npmfed/rpm_package.rb, line 76 def add_source name @sources << name end
binfiles()
click to toggle source
# File lib/npmfed/rpm_package.rb, line 87 def binfiles @npm_package.npm_data["bin"] end
build()
click to toggle source
# File lib/npmfed/rpm_package.rb, line 130 def build @npm_package.npm_data["scripts"].nil? ? '#nothing to do' : @npm_package.npm_data["scripts"]["build"] end
build_requires()
click to toggle source
# File lib/npmfed/rpm_package.rb, line 118 def build_requires dependencies @npm_package.npm_data["devDependencies"] end
dependencies(deps)
click to toggle source
# File lib/npmfed/rpm_package.rb, line 16 def dependencies deps result = Array.new deps ||= Hash.new deps.each do |name, version| result << "npm(#{name})" =begin case version # "~1.2.3" when /^~?(\d+(\.\d+)*)(-\d)?([a-z]+)?$/ result << "npm(#{name}@#{$1})" # "^1.2.3" when /^\^(\d+(\.\d+)*)(-\d)?([a-z]+)?$/ result << "npm(#{name}@#{$1})" # "1.2.0-1.2.3" when /^(\d+(\.\d+)*)-([\d\.]+)$/ result << "npm(#{name}@#{$2})" # "1.2.x" when /^([^xY]+)(\.[xX])(.*)$/ result << "npm(#{name}@#{$1})" # "1.2.x", "=0.7.x" when /^~?<?>?=?([^xY]+)(\.[xX])(.*)$/ result << "npm(#{name}) >= #{$1}" # ">= 1.0.0 < 1.2.0" when /^\>=?\s*(\d+(\.\d+)+)(\s+\<\s*([\d\.]+))?$/ result << "npm(#{name}) >= #{$1}" result << "npm(#{name}) < #{$3}" if $2 # "*" # "" when "*", "" result << "npm(#{name})" when /\w+/ result << "npm(#{name}@#{version})" else raise "Unrecognized dependency #{name.inspect}: #{version.inspect}" end =end end result end
description()
click to toggle source
# File lib/npmfed/rpm_package.rb, line 68 def description @npm_package.npm_data["description"] end
dir()
click to toggle source
# File lib/npmfed/rpm_package.rb, line 80 def dir # Find out the top-level directory from tarball # The upstreams often use very weird ones `tar tzf #{@local_source}` =~ /([^\/]+)/ $1 end
homepage()
click to toggle source
# File lib/npmfed/rpm_package.rb, line 72 def homepage @npm_package.npm_data["homepage"] || @npm_package.tarball || abort('FIXME: No homepage found') end
licenses()
click to toggle source
# File lib/npmfed/rpm_package.rb, line 56 def licenses if @npm_package.licenses.nil? [ "Unknown" ] else [@npm_package.licenses] end end
npmname()
click to toggle source
# File lib/npmfed/rpm_package.rb, line 11 def npmname @npm_package.name end
provides()
click to toggle source
# File lib/npmfed/rpm_package.rb, line 102 def provides prv = Array.new prv << "npm(#{self.npmname}) = %{version}" minversion, maxversion = self.srcversion.split "-" if maxversion prv.concat( _provides maxversion ) end prv.concat( _provides minversion ).uniq end
requires()
click to toggle source
# File lib/npmfed/rpm_package.rb, line 112 def requires req = dependencies(@npm_package.npm_data["dependencies"]) req += dependencies(@npm_package.npm_data["peerDependencies"]) req end
summary()
click to toggle source
# File lib/npmfed/rpm_package.rb, line 64 def summary @npm_package.npm_data["description"] end
tests()
click to toggle source
# File lib/npmfed/rpm_package.rb, line 126 def tests @npm_package.npm_data["test"] end
version()
click to toggle source
# File lib/npmfed/rpm_package.rb, line 122 def version @npm_package.version end
write(path = nil)
click to toggle source
# File lib/npmfed/rpm_package.rb, line 134 def write path = nil require 'erb' template_name = File.expand_path(File.join(File.dirname(__FILE__), "..", "..", "templates", "nodejs-fedora.spec.erb")) template = File.read(template_name) # -: omit blank lines ending in -%> erb = ERB.new(template, nil, "-") File.open("#{path unless path.nil?}" + "#{@name}/#{@name}.spec", "w+") do |f| spec = self f.puts(erb.result(binding())) end `rpmdev-bumpspec -c "Initial build" "#{path unless path.nil?}#{@name}/#{@name}.spec"` `spec2scl -i "#{path unless path.nil?}#{@name}/#{@name}.spec"` if @scl command = "cd #{path unless path.nil?}#{@name}/ && fedpkg --dist=f24 srpm" `#{command}` end