github.com/metux/go-metabuild@v0.0.0-20240118143255-d9ed5ab697f9/engine/packager/pkgall.go (about)

     1  package packager
     2  
     3  import (
     4  	"github.com/metux/go-metabuild/spec"
     5  	"github.com/metux/go-metabuild/spec/distro"
     6  	"github.com/metux/go-metabuild/util/jobs"
     7  )
     8  
     9  type PkgAllJob struct {
    10  	jobs.BaseJob
    11  	Global spec.Global
    12  }
    13  
    14  func (job PkgAllJob) JobSub() ([]jobs.Job, error) {
    15  	jobs := []jobs.Job{}
    16  	bc := job.Global.BuildConf()
    17  	for _, pkg := range bc.TargetDistro().Packages() {
    18  		if !pkg.Skipped() {
    19  			switch pkg.Distro.PackageFormat() {
    20  			case distro.PkgFormatDeb:
    21  				jobs = append(jobs, MakeDebPkgJob(bc, pkg))
    22  			default:
    23  				return jobs, distro.ErrPkgFormatUnsupported
    24  			}
    25  		}
    26  	}
    27  	return jobs, nil
    28  }
    29  
    30  func MakePkgAllJob(cf spec.Global) PkgAllJob {
    31  	return PkgAllJob{BaseJob: jobs.BaseJob{Id: "all-packages"}, Global: cf}
    32  }