mirror of
https://gitlab.alpinelinux.org/alpine/abuild.git
synced 2025-01-09 16:19:48 +00:00
apkbuild-gem-resolver: option for updating APKBUILD files
This commit is contained in:
parent
8704797efe
commit
feca037655
@ -46,6 +46,10 @@ class Package
|
|||||||
pkg
|
pkg
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def self.save
|
||||||
|
fail unless @@augeas.save
|
||||||
|
end
|
||||||
|
|
||||||
def initialize name
|
def initialize name
|
||||||
@name = name
|
@name = name
|
||||||
@depends = []
|
@depends = []
|
||||||
@ -61,10 +65,13 @@ class Package
|
|||||||
|
|
||||||
def depends
|
def depends
|
||||||
for dep in @depends
|
for dep in @depends
|
||||||
unless @@packages.has_key? dep
|
# ruby-gems: workaround for v2.6
|
||||||
raise "Dependency for #{@name} does not exist: #{dep}"
|
if dep.start_with?('ruby-') && dep != 'ruby-gems'
|
||||||
|
unless @@packages.has_key? dep
|
||||||
|
raise "Dependency for #{@name} does not exist: #{dep}"
|
||||||
|
end
|
||||||
|
yield @@packages[dep]
|
||||||
end
|
end
|
||||||
yield @@packages[dep]
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -85,8 +92,7 @@ class Aport < Package
|
|||||||
@path = path + '/APKBUILD/'
|
@path = path + '/APKBUILD/'
|
||||||
|
|
||||||
for dep in `echo #{get_param 'depends'}`.split
|
for dep in `echo #{get_param 'depends'}`.split
|
||||||
# ruby-gems: workaround for v2.6
|
add_dependency dep
|
||||||
add_dependency dep if dep.start_with?('ruby-') && dep != 'ruby-gems'
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -98,6 +104,16 @@ class Aport < Package
|
|||||||
get_param 'pkgver'
|
get_param 'pkgver'
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def version= version
|
||||||
|
set_param 'pkgver', version
|
||||||
|
set_param 'pkgrel', '0'
|
||||||
|
end
|
||||||
|
|
||||||
|
def del_dependency name
|
||||||
|
@depends.delete name
|
||||||
|
set_param 'depends', "\"#{@depends.join ' '}\""
|
||||||
|
end
|
||||||
|
|
||||||
private
|
private
|
||||||
|
|
||||||
def get_param name
|
def get_param name
|
||||||
@ -105,6 +121,10 @@ class Aport < Package
|
|||||||
raise name + ' not defined for ' + @name unless value
|
raise name + ' not defined for ' + @name unless value
|
||||||
value
|
value
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def set_param name, value
|
||||||
|
@@augeas.set(@path + name, value)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
class Subpackage < Package
|
class Subpackage < Package
|
||||||
@ -306,10 +326,14 @@ end
|
|||||||
|
|
||||||
|
|
||||||
testing = false
|
testing = false
|
||||||
|
update = false
|
||||||
OptionParser.new do |opts|
|
OptionParser.new do |opts|
|
||||||
opts.on('-t', '--testing') do |t|
|
opts.on('-t', '--testing') do |t|
|
||||||
testing = t
|
testing = t
|
||||||
end
|
end
|
||||||
|
opts.on('-u', '--update') do |u|
|
||||||
|
update = u
|
||||||
|
end
|
||||||
end.parse! ARGV
|
end.parse! ARGV
|
||||||
Package.initialize testing
|
Package.initialize testing
|
||||||
|
|
||||||
@ -330,8 +354,21 @@ end
|
|||||||
update.resolve
|
update.resolve
|
||||||
|
|
||||||
for pkg in update
|
for pkg in update
|
||||||
obs = pkg[:obsolete_deps]
|
obsolete = pkg[:obsolete_deps]
|
||||||
obs = obs.empty? ? nil : " (obsolete dependencies: #{obs.join ', '})"
|
|
||||||
|
|
||||||
|
obs = obsolete.empty? ?
|
||||||
|
nil : " (obsolete dependencies: #{obsolete.join ', '})"
|
||||||
puts "#{pkg[:name]}-#{pkg[:version]}#{obs}"
|
puts "#{pkg[:name]}-#{pkg[:version]}#{obs}"
|
||||||
|
|
||||||
|
if update
|
||||||
|
package = Package.get(pkg[:name])
|
||||||
|
package.version = pkg[:version]
|
||||||
|
for dep in obsolete
|
||||||
|
package.del_dependency dep
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
if update
|
||||||
|
Package.save
|
||||||
end
|
end
|
||||||
|
Loading…
Reference in New Issue
Block a user