class Pkgman::Executor
Public Class Methods
new()
click to toggle source
# File lib/pkgman/executor.rb, line 13 def initialize @runtime = Runtime.new end
Public Instance Methods
execute(descriptor)
click to toggle source
# File lib/pkgman/executor.rb, line 17 def execute(descriptor) descriptor['builds'].each do |build| build['targets'].each do |target| target = Target.new(@runtime, target) case build['from'] when 'source' strategy = Builds::Source.new(build, target) strategy.start else puts "Unknown build strategy #{build['from']}" end target.target['package'].each do |package| case package['type'] when 'rpm' pkg = Packages::Rpm.new(strategy, package, target) pkg.start package['push'].each do |push| repository = descriptor['repositories'][push] case repository['type'] when 'local' repo = Pkgman::Repositories::Local.new(target, repository, pkg) repo.execute when 'packagecloud' repo = Pkgman::Repositories::PackageCloud.new(target, repository, pkg) repo.execute when 'cloudsmith' repo = Pkgman::Repositories::CloudSmith.new(target, repository, pkg) repo.execute end end else puts "Unknown package strategy #{package['type']}" end end target.destroy end end end