Package::Backends are provided a context when called.
parent
77632f59ab
commit
6fc56f3034
|
@ -18,12 +18,12 @@ end
|
||||||
class Package::Backend::Packaging
|
class Package::Backend::Packaging
|
||||||
getter name : String
|
getter name : String
|
||||||
|
|
||||||
def initialize(@name, &block : Proc(Package, Bool))
|
def initialize(@name, &block : Proc(Context, Package, Bool))
|
||||||
@callback = block
|
@callback = block
|
||||||
end
|
end
|
||||||
|
|
||||||
def package(package : Package)
|
def package(context : Context, package : Package)
|
||||||
@callback.call package
|
@callback.call context, package
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -40,14 +40,14 @@ class Package::Context
|
||||||
property architecture = "x86_64"
|
property architecture = "x86_64"
|
||||||
|
|
||||||
def initialize
|
def initialize
|
||||||
@packaging_backends << Backend::Packaging.new "pkgutils" do |package|
|
@packaging_backends << Backend::Packaging.new "pkgutils" do |context, package|
|
||||||
puts "#{package.fake_root_directory} -> #{packages_directory}/#{package.name}##{package.version}-#{package.release}.pkg.tar.xz"
|
puts "#{package.fake_root_directory} -> #{packages_directory}/#{package.name}##{package.version}-#{package.release}.pkg.tar.xz"
|
||||||
pp! r = run package.fake_root_directory, "tar", ["cJf", "#{packages_directory}/#{package.name}##{package.version}.pkg.tar.xz", "."]
|
pp! r = run package.fake_root_directory, "tar", ["cJf", "#{packages_directory}/#{package.name}##{package.version}.pkg.tar.xz", "."]
|
||||||
|
|
||||||
r.exit_status == 0
|
r.exit_status == 0
|
||||||
end
|
end
|
||||||
|
|
||||||
@packaging_backends << Backend::Packaging.new "apk" do |package|
|
@packaging_backends << Backend::Packaging.new "apk" do |context, package|
|
||||||
# FIXME: This needs to have access to architecture (from Context?)
|
# FIXME: This needs to have access to architecture (from Context?)
|
||||||
# to work properly.
|
# to work properly.
|
||||||
old_cwd = Dir.current
|
old_cwd = Dir.current
|
||||||
|
@ -59,8 +59,11 @@ class Package::Context
|
||||||
puts pkginfo package
|
puts pkginfo package
|
||||||
File.write "#{package.fake_root_directory}/.PKGINFO", pkginfo package
|
File.write "#{package.fake_root_directory}/.PKGINFO", pkginfo package
|
||||||
|
|
||||||
|
|
||||||
# Create data.tar.gz here.
|
# Create data.tar.gz here.
|
||||||
package_target = "#{packages_directory}/#{package.name}-#{package.version}-r#{package.release}.apk"
|
package_target = "#{packages_directory}/#{context.architecture}/#{package.name}-#{package.version}-r#{package.release}.apk"
|
||||||
|
Dir.mkdir_p File.dirname package_target
|
||||||
|
|
||||||
# FIXME: This shouldn’t have to be in users’ PATH. libexec?
|
# FIXME: This shouldn’t have to be in users’ PATH. libexec?
|
||||||
r = run package.fake_root_directory, "assemble-apk.sh", [
|
r = run package.fake_root_directory, "assemble-apk.sh", [
|
||||||
package_target
|
package_target
|
||||||
|
@ -141,7 +144,7 @@ class Package::Context
|
||||||
end
|
end
|
||||||
|
|
||||||
def package(package : Package) : Bool
|
def package(package : Package) : Bool
|
||||||
@selected_packaging_backend.package package
|
@selected_packaging_backend.package self, package
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
Reference in New Issue